|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel: D( E J& R' ~! N9 G; ?
5 l0 R0 ~; _6 F! N
Mover.h
- l" p1 i# z# k) Y) n代码:
8 |# m C1 g$ n找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. c6 B; g- E; P F9 B r
% c# {6 l ~0 |9 M. K2 D$ e下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. r& N- O: x3 E* S% A+ A
) z- u- C- c; D) S+ M0 U6 @然后你去mover.cpp添加) s& G. k9 J& l6 S8 q& y
( w0 i8 O5 l f, X6 \代码:
* g9 P, v' A8 {4 }' ]* a! V9 _void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# j& r& l+ k' K: Q{5 g; a# u3 s9 v- T% Y3 h3 @. Q1 p
#ifdef __WORLDSERVER/ N; F2 T& E6 o6 a9 ~7 x. d9 ^! ?
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! s% `" f4 s8 p MoverProp* pProp = GetProp();: c+ @' C3 g+ a# ^
if( pProp )
5 K) q# u) }+ D6 G+ l$ o8 g3 ~5 g+ @: ? {( b, y8 E1 d' u" L+ ?' Z3 U/ k& m" T
if( nJob > 0 && nJob < MAX_LEGEND_HERO )( i# o$ ~9 u+ |8 \! ], C
{4 |3 C5 Z% ^5 o. A3 x$ {' r
AddChangeJob( nJob );
8 e$ W& N3 g1 c' W: w) `# [ }else{
7 ^1 B/ m$ ]/ _1 X( h0 K return;6 `; w% |- ^' u" ]& ]
}
5 e6 r) L4 G3 O, q* ^1 B* ^ int nPoint = 0;4 J" ]' U9 b. S# [# T
if( m_nJob == JOB_MERCENARY )
, d7 { \2 h% s! F. i* O" i% c nPoint += 40;- a, W$ `: p F5 a; y9 z b7 F# s
else if( m_nJob == JOB_ACROBAT )- o9 U0 K3 U& K
nPoint += 50;- m' a5 f- u8 x8 g2 O
else if( m_nJob == JOB_ASSIST )$ O! [; K( w' g9 \
nPoint += 60; e( c' S- U% y/ Q- Y
else if( m_nJob == JOB_MAGICIAN )) V" m4 G- X9 e& R* n; Y$ T
nPoint += 90;5 [# Q; X& k% |& Z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ r7 m. u- H$ {3 `( J; y# Q# [
nPoint += 120;
4 X; x1 y- [" J9 a2 }* W else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )8 w( n- ]2 f w" j( b% q
nPoint += 150;2 S" j/ q3 Q& D" M
else if( m_nJob == JOB_RINGMASTER )
$ o* C$ K6 h d, j: }. |4 Q% W nPoint += 160;
: J7 s l( S8 g else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" z- t" E F+ d" q
nPoint += 180;3 U5 n9 ?6 `" o/ E2 \# r
else if( m_nJob == JOB_ELEMENTOR )
8 W2 i$ x& g* g- X! G* L' | nPoint += 390;* B! Y% I5 G6 J/ A& O8 O
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )# W# H3 Y% x2 s9 v3 _
nPoint += 120;: X6 Q" f9 A4 h
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% X3 o! K; ^ e, w! a) o3 t0 i2 v% S
nPoint += 150;$ d2 w7 R6 a* W) U$ y6 I8 a9 ?
else if( nJob == JOB_FLORIST_HERO )0 F6 p. X# c- q; k! [4 Q+ _
nPoint += 160;+ o* o7 q: J9 ^. C5 Z+ J" W, {1 B
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 }* G# C9 b# v3 j4 j) }" f0 X) D nPoint += 180;$ Z0 }9 k$ Q# R+ C4 \& E- x' N* }
else if( nJob == JOB_ELEMENTORLORD_HERO )! C1 q* F$ s3 t6 ] C
nPoint += 390;
' }# {9 Z+ T) }7 n# Z/ ^% y% g; G+ z8 w* H$ U+ P6 _$ F# W3 z
AddSkillPoint( nPoint );
! Z l( A! `% k; R( B* L+ n m_nLevel = nLevel;
1 e7 H6 Z0 A; w5 `
9 y% T8 j+ x" z& s, d SetJobLevel( nLevel, nJob );
5 n. i2 y* t* O3 U, b9 m m_nDeathLevel = nLevel;# V9 }0 q" n" @* q1 Y u, D
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 H+ Z/ z' H: a( ~
if(IsMaster())0 f. {" j! y! \: m. Y8 o2 X
{+ B( Y& ~3 @1 {9 E
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108& j' G7 H4 z9 Z. A+ E
if( nLevel > 59 && nLevel < 72 )
. g S: G2 R: e, ^* s8 m dwTmpSkLevel = 1;/ D* V1 z2 Q" E. V1 _1 [( a
else if( nLevel > 71 && nLevel < 84 )+ x5 K, Q8 I3 g5 O; K6 N9 I6 ~. ]5 u1 Z
dwTmpSkLevel = 2;5 K# O& c1 z) S0 h' j
else if( nLevel > 83 && nLevel < 96 )
- `3 B4 X1 J) L3 c/ {/ y @) n dwTmpSkLevel = 3;
, ]! t! ]4 R% N else if( nLevel > 95 && nLevel < 108 )
8 M1 a/ k; N* x I dwTmpSkLevel = 4;
8 }( U/ t$ M* k else if( nLevel > 107 && nLevel < 120 )9 O" R% C' z% _+ D# A0 i" k
dwTmpSkLevel = 5;' t6 G- Z7 i* e% L- O
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + y- f! }8 l0 r" d2 @8 Y: t
{ $ H! `. j ?+ X% l8 O# {9 Y: n
LPSKILL lpSkill = &(m_aJobSkill);
7 D+ w y; l: R% F7 I if( lpSkill && lpSkill->dwSkill != NULL_ID )9 |5 j" {* O9 ]0 r" U) U! z4 Y& F
{
; f3 P" p$ G3 G% y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : ^. J! L L" W( Q
if( pSkillProp == NULL )
& W) u& b; q8 h$ D% E: L* Z7 d continue;7 Z. Q' T# _' [3 h8 ]. W5 |* J* P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ o6 |( I" M5 _& c) g+ @ continue;
" i7 U8 Y' }3 f: D+ q8 D1 a+ C( J( Q lpSkill->dwLevel = dwTmpSkLevel;1 P9 P6 K- Q: _) ?+ T- N
}4 J9 E! {+ L+ [2 U! y
}& N+ o6 S* c8 O
}
0 t/ K7 d# z- M0 P else if(IsHero()) u4 i% _) ^8 y
{2 u5 [5 [, W Z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 y# V8 G( s, o% Z9 h2 j { , @4 A. z, \1 n$ b' K. d# z) b
LPSKILL lpSkill = &(m_aJobSkill);
1 u4 `9 n4 O b8 M# ~2 J if( lpSkill && lpSkill->dwSkill != NULL_ID )
" K8 _" d+ E1 ]6 }* K {2 }2 {% G( v& T* a N; D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 _' d6 [5 h; [( Q5 J+ q! W$ j4 D if( pSkillProp == NULL )( S7 v3 O4 _- h# y: e! a) m5 A5 {
continue;7 d6 X0 X& g0 d+ M# X1 O. J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) I- j$ f' `$ g3 W6 _ continue;( c& T `2 A' l4 w/ \4 `
lpSkill->dwLevel = 5;
3 u. D& ]. o, k" ? }0 ` h1 M* p. d( g7 }& n4 P& v" M
}
( W! r7 g" Z; e8 _9 V1 _6 f- e }. f+ C7 Q9 X( C
else if(IsLegendHero())
1 |$ ~ y) \$ N& k {
0 m1 V& A0 L4 D# N# ` for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 {( V7 j; s' I7 w2 x
{
# d+ p: ~ X$ `, X( o; u LPSKILL lpSkill = &(m_aJobSkill);, ?7 S- q8 P; C" g7 [
if( lpSkill && lpSkill->dwSkill != NULL_ID )* W G9 Z! a, O8 s! b m
{
, y) x, z2 V, |+ f2 _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- R! |+ m3 H" j# | if( pSkillProp == NULL )
' `# P2 Q) x% t: y continue;
- |, M) R8 Z+ o6 @( `3 Y% C if( pSkillProp->dwItemKind1 != JTYPE_MASTER): e: H E3 n" Y5 ^8 D* q* V% ]
continue;, o- U. Q" w" M; s
lpSkill->dwLevel = 5;
# t. u% k% @7 j4 d5 N+ m/ E7 i }
1 U$ U# m- _- Z" J: c: @/ g }$ Y6 Y; a! s8 }
}/ C6 q6 [) `# v6 s# x
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- U- ~/ V# Q% `! v$ s# @9 M- H if( bGamma )
& v$ t( x( l9 J {1 d9 `( K3 l: a4 I
m_nExp1 = 0;
% u" `4 I, u& a' q8 B }
9 `. @9 z( K8 n9 K) Z( F8 ?8 \3 s# c& L
( (CUser*)this )->AddSetChangeJob( nJob );( {8 H2 _5 ^6 u
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 k& M$ [! p8 g/ C2 |8 _7 g2 b2 s" [8 A7 u2 D+ I' A9 y! Y( l% S
: [ {0 H |- r3 h' @0 O, E#if __VER >= 11 // __SYS_PLAYER_DATA
5 T/ Q5 P8 j# G4 v1 ] h g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- t0 b2 o7 [- m9 w# [: g#else // __SYS_PLAYER_DATA
8 y+ _- y5 |, K0 S. J& [" } g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
d, u. `# ?$ A, R2 k# j g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' n6 u9 \# I4 o* G) g2 _! f, E
if( m_idGuild != 0 )# e3 t% `$ i) C
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# t P5 [; N( V5 M3 R' e; j
#endif // __SYS_PLAYER_DATA2 o7 ?0 b" Q% ]! a. @
SetHitPoint( GetMaxHitPoint() );
; D* N. W2 O9 Q2 w. a SetManaPoint( GetMaxManaPoint() );
m1 `* U1 _6 p" ~* |" C, S SetFatiguePoint( GetMaxFatiguePoint() );
' }/ N3 @: @: V3 \1 U if( nJob >= 1 && nJob <= 4 )
# N& ~8 D, v% J5 R" C {
4 F% r* N J* b; i9 v. h m_nStr = m_nSta = m_nDex = m_nInt = 15;' U3 z% `+ E' h; C9 H
m_nRemainGP = 28;
* }& _, z. P" y7 G, _ S+ Z" N }, C& V. I: m/ y4 \* s# U
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 W/ k+ ]) E4 ], f$ T3 u {* V- c; ]: J% K; h6 V5 H9 x* F
m_nRemainGP = 118;
4 J4 t2 V0 i) l6 |: S //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 g- b9 E. ^- y7 s2 U3 V/ \8 ~
m_nStr = m_nSta = m_nDex = m_nInt = 15;. h& g/ L. H- Q0 n
}2 t8 h( }! ]: [' e; t
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# A5 \2 W- x% y9 ~. t4 E {
4 G2 i* t9 S/ \4 |1 ] CItemElem itemelem;
& e8 t! s2 b$ g/ x' E; y" ~ itemelem.m_nItemNum = 1;
$ W, D! z& z) h4 }+ Y itemelem.m_bCharged = TRUE;: Z$ P/ e# F4 }0 G
BYTE nID;" X) O+ C% i( c9 [* [( y/ s
z* N0 K' `0 G: z1 u
if( nJob == JOB_MENTALIST_HERO )! c' D+ y3 z( Y9 [9 o* V9 ~
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
: ~+ D! t( l/ ]$ U u, O0 \/ C6 V if( nJob == JOB_FORCEMASTER_HERO )
; Z9 m1 z! M; V: z/ s itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;9 t z+ @7 L$ }. g* W
& l$ ?( U J( `- U; @
( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 l; k8 y; x% k5 A3 y1 d }
, X' B, l [- } g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% ]3 H8 T7 u. P7 ^/ L' ?, p ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );( u, {# C+ R6 [$ N& z- K
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );7 D: H) N0 y2 x6 D1 ^$ S
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; d/ o% Y3 p4 `+ {" \" B- [- s+ R ( (CUser*)this )->AddTaskBar();*/! I8 \# |! A# x: U7 ~% C
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );) P; B2 d! K* N& N- ]/ x
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& p% n9 u7 e7 Y ((CUser*)this)->CheckHonorStat();
2 H) X$ @$ [- y* W3 H. e9 k ((CUser*)this)->AddHonorListAck();
0 W8 ~ e& g, y3 O7 ?. X g_UserMng.AddHonorTitleChange( this, m_nHonor);
. {/ y. m A% m: L. c#endif // __HONORABLE_TITLE // ′Tà?! i, ` t& k' U& Z7 F
}
: N* ~5 m: N9 O#endif // __WORLDSERVER
+ b1 r: A8 I- f. p1 }! v}
1 v3 X4 Y8 k; `9 g+ i
) N% w' _7 ~5 X! U9 h然后你进入functextcmd.cpp并添加以下
" l8 I8 W+ w& f, U: Q! m& ?$ b5 F3 `3 K6 c$ {( G& Q
代码:
: t/ d5 `' v' h; p4 v+ VON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 c/ r, v! O+ t
下面插入
* u' z, u4 B U& v7 nON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) k+ l7 E1 G- L& ]- }4 w8 I8 r3 e
" V3 k' a: t* S( G然后你去
( ]( t. G+ E' Y1 O+ W
) g6 m: l) i# d7 U& u. @代码:2 q _1 g8 D2 \8 ]. x. D9 v
代码
+ R5 W% v- z, v0 p% RBOOL TextCmd_ClearPropose( CScanner & s )' [5 B8 i+ ]. G3 {
{
* ?" z* h+ P$ n- ?) G) c P( w#ifdef __WORLDSERVER5 `( z3 q/ {7 E$ |& y' K
CUser* pUser = (CUser*)s.dwValue;
# e/ g( V U+ i7 j; s g_dpDBClient.SendClearPropose();; A6 H- M+ i9 V4 K( c1 b
#endif // __WORLDSERVER6 O: o# s6 ~% Q, s3 V5 {
return TRUE;! R, \2 D4 N/ M# O/ U3 c
}
, q( H; f% F% U下面插入* ]+ Y- c2 w% m) _8 t; l
BOOL TextCmd_rebirth( CScanner& scanner ) G8 n1 K S+ v7 K& \% J7 o& h. \
{& y+ a6 d# Z0 ?* ?8 x7 h
#ifdef __WORLDSERVER
6 E* [4 K& G# L/ l; mCUser *pUser;
% K* [1 O4 _; o8 a, rpUser = (CUser*)scanner.dwValue;7 Z ]! ?/ h2 w) ~% o0 T5 e r q. v
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 r7 c/ Q) `; V d* G+ w; H5 C
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
8 f& i/ s2 g# welse
) c7 H- M- A8 w8 @# @pUser->AddText("你还未达到重生条件!");! x0 ]% W- y! B' Z
#endif- O1 b! h+ P$ z7 ~9 Z
return TRUE;, Y! f4 C" [; X( K' C* i# r
} . z. u" G, @8 y, I) @3 f! n$ d
2 V ~7 `6 f" C; C
7 I- @5 }) ?4 R) \) Y8 C
- s! j0 W1 ]! M2 P/ ?
8 J# p+ N( D" M! f( w6 t2 ~ |
|