|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' Q: y7 y9 j- p- {/ t1 v
; o9 U1 O/ E! K9 h1 |" t4 V: s2 |
Mover.h0 O1 Z4 w+ C, l9 ]. d4 S
代码:
( e0 ~7 o+ }$ `" Y5 ?找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü P4 p. k+ c% x
, Z! H2 H$ `# s' H, ^2 H
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 p r2 U6 y& B
$ l/ C7 _6 B/ A; f2 r- F然后你去mover.cpp添加
9 h' v3 n" h5 e c7 o9 Z; S% g# j+ c( n3 n3 ]
代码:
; u2 v) Z u3 u+ rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 [+ ]0 l7 U/ Z5 e' l" j{3 P0 E) }4 L( u+ V* @
#ifdef __WORLDSERVER
$ A3 B+ z: L: w' u( q3 k9 R! P // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, T- z/ }0 ]$ e$ @; @ MoverProp* pProp = GetProp();
" O& E6 m& E/ H s) `# r8 P if( pProp )+ ? d% o: T W2 J- b
{ x. w/ R3 C$ `7 l9 Z
if( nJob > 0 && nJob < MAX_LEGEND_HERO ); a6 V/ c+ c9 ]. l8 C4 D
{* o& `* y% O: o& ?% T# }8 [% c5 v
AddChangeJob( nJob );# H3 a" u1 D& s, i F+ h
}else{+ {, K0 U8 m& _1 J9 I* w2 X
return;' a1 p: p; Z8 n# y
}* ~9 Z" _$ u6 s! P
int nPoint = 0;, r: y* @7 H, n0 u# i
if( m_nJob == JOB_MERCENARY )" F/ v) B& e1 ]2 w# W
nPoint += 40;
, Z5 H( ^% S) x( l, i/ ` else if( m_nJob == JOB_ACROBAT )
" D. }, w/ Y1 Q7 i+ s nPoint += 50;7 k) ]+ E8 m; W: \
else if( m_nJob == JOB_ASSIST )0 H2 S1 F. n; D3 T
nPoint += 60;
7 X8 O/ G/ d) t* i6 X/ G; s else if( m_nJob == JOB_MAGICIAN )
& c% ? ?- Z* z* l! U nPoint += 90;
3 H% ~! S6 R% R2 d# O, C) R: X! p& z else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ); t3 L7 z3 |2 B4 e: J+ ?3 a* t9 L
nPoint += 120;
$ v0 m3 ]( w1 j9 F3 D else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )7 J4 y, N: [! [ x
nPoint += 150;$ y; n2 Y) r! c$ p* W' A H
else if( m_nJob == JOB_RINGMASTER )1 g# U% m5 f% t \) O
nPoint += 160; l- h d" g) r
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
d7 W; G( Y% J nPoint += 180;& C: Q4 u( q5 y, |9 b2 G
else if( m_nJob == JOB_ELEMENTOR ): \0 g+ x" I! ^
nPoint += 390;
) ]4 F4 ^ F2 i' e+ D) _$ v+ c else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )+ ^1 l9 D; O# q1 T. G
nPoint += 120;
8 {6 n: A, H' j! Z0 I& I: Y) ~8 S else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
N! ], M3 F4 S; w7 L, u" ] nPoint += 150;
% x4 Z1 S! i: a* x% N! K! }# J else if( nJob == JOB_FLORIST_HERO )
$ c1 r* K9 m5 C6 X& ~5 K5 ] nPoint += 160;
) y6 S, b3 W, n6 Z% [% @ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )1 ^2 {; t3 q$ v" ~7 s9 ^; d/ [
nPoint += 180;! u% C+ z) m# ]5 C% M; D
else if( nJob == JOB_ELEMENTORLORD_HERO )8 }' B) L" h) q0 _. l$ S R8 v
nPoint += 390;
7 f3 S K: Y" t8 x- T+ w
. T8 G) S- `3 K. \, e2 i' o AddSkillPoint( nPoint );& {! a0 R6 u' d8 ?1 S) P7 v+ z, E
m_nLevel = nLevel;
+ {: j) a4 V& v& O9 A# ~& P$ N' ^0 ^2 L2 w
SetJobLevel( nLevel, nJob );
: a2 C/ K1 Y) }0 g7 u. i m_nDeathLevel = nLevel;
+ g; A3 W* k* U% g5 W5 K5 z4 T#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ F; _! V5 S2 o' E3 b' z2 D
if(IsMaster())
3 @7 O9 W" T0 w$ Y9 @ {* B/ g* A6 f9 ^( u$ d$ H/ ^
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ D% {* y/ e6 p. Q: h9 Q# c- x- b if( nLevel > 59 && nLevel < 72 )! o9 h$ Y8 i. f" T2 a0 D: P
dwTmpSkLevel = 1;
6 T6 S. u0 L1 V% E& a else if( nLevel > 71 && nLevel < 84 )' ?8 C! r. ]9 F5 _
dwTmpSkLevel = 2;& k5 N2 w% `6 L, i" y u2 |4 H
else if( nLevel > 83 && nLevel < 96 )8 ~5 o! L1 b& L* a
dwTmpSkLevel = 3;, j; k: s& p" O6 D3 y
else if( nLevel > 95 && nLevel < 108 )
1 i/ K' P |; c) X6 y" W dwTmpSkLevel = 4;! L6 R& t2 \2 {; {! s: I
else if( nLevel > 107 && nLevel < 120 )
# Y1 L. w& l4 v# i dwTmpSkLevel = 5;0 l, \7 V9 k4 F, m" M1 N3 q7 @
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , P' U; G$ U! T0 A
{ 8 R. T4 f' s, |4 `, I" ]
LPSKILL lpSkill = &(m_aJobSkill);# K4 N5 M& K; n8 `- f/ y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 ^; X% p5 ~( ` { x; n! j; H) A# c. u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 R8 T2 c' r W X4 _ if( pSkillProp == NULL )
: ]! w# N x! d; C2 _0 u, U continue;% Q" B, q: ~$ o' T9 ?! X) N z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 h& _9 [: K! ]+ q8 T continue;
2 I7 p" @5 O7 r lpSkill->dwLevel = dwTmpSkLevel;. @" S) ?5 ^- e, U/ ]
}" _1 R: C8 r: e4 [' t! Y; u
}
0 R5 @/ q- r; S h" @ }
# a, m7 \9 H4 ?1 p( h else if(IsHero())
) D* p2 K! O8 [' j6 `, }4 X {6 |: C1 M; V" S
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 Q8 u% E5 U% K9 `* O {
; O6 G+ w. m* D4 R0 j; L! V LPSKILL lpSkill = &(m_aJobSkill);
( u- ?# B! J! c if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 {" S1 O/ B, E# } {
7 k. F& |9 `: r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( E/ } O' g+ `6 l
if( pSkillProp == NULL )3 a0 N; H* A4 Z1 R6 b/ Z
continue;5 o/ X" `2 J! N3 y/ y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: Z# H5 Y! n; r/ p3 w continue;2 r: N* d, s1 C9 p; X3 m
lpSkill->dwLevel = 5;( _. k+ o* Y( B8 ]
}
* Y- P! S( {4 ], | }
5 R* b7 l3 \9 J }" u6 l9 G5 F1 j7 j
else if(IsLegendHero()): q2 t; ]$ x+ ]# ?/ l' G% R; R
{
0 d3 S4 v- M; `8 e) z1 u3 b0 h# S4 F" @ for( int i = 0; i < MAX_SKILL_JOB; i++ ) " h& j t& u; x: }2 M: X. w
{ / V) ~% w: L, K' A
LPSKILL lpSkill = &(m_aJobSkill);
* ]* ^3 ?& }; p2 _ if( lpSkill && lpSkill->dwSkill != NULL_ID )7 T) c9 |3 X: F; l3 q$ i3 [) ^
{6 B( q; b2 Q7 I7 K7 T g$ ~2 Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ n$ \0 I' F* B9 Q& T: c, J3 u: |; u if( pSkillProp == NULL )* Z3 q; w" B o3 i
continue;* }+ B* O+ {8 ^- x- C( g' n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ p: y6 J9 p1 Q2 ] continue;: n9 F H( T- b7 M3 B
lpSkill->dwLevel = 5;& H) X8 D. v# O1 s. A( ^; V( D
}
8 X- z6 N- X+ @0 ]. ]% S }
. A5 ? ~9 Q2 t5 @/ w }
1 M' `" t/ F+ |$ d2 H# _. }" P9 s#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 b: K4 _! o: J if( bGamma )
' `% r2 y5 `5 N {
7 T ` H1 X) R7 e+ R m_nExp1 = 0;
! Y' R& c; b1 o7 {$ T3 O }: k7 Z7 |; I3 p W
6 \- E3 F1 M2 p% U
( (CUser*)this )->AddSetChangeJob( nJob );* n/ z) M9 L: e1 ?" z \
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' e8 B2 B: B. b. L9 c6 O
& t+ N$ d9 B( g! ]3 ]: a
# ~: H- N W& C( \& a+ q9 C
#if __VER >= 11 // __SYS_PLAYER_DATA
- b( E1 X6 {$ Y0 S0 A g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
5 v# z9 U7 l: i#else // __SYS_PLAYER_DATA
, |8 D# s1 v- {) L0 m- ]- l g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 q2 E+ I+ |" H) m g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% l+ L' ]4 h: G- _5 t. R @4 W
if( m_idGuild != 0 ): T6 j* J8 B. y$ S* D
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
. f+ k0 k. ~7 G! s Y- A#endif // __SYS_PLAYER_DATA
) j& O1 I; G4 m' ] SetHitPoint( GetMaxHitPoint() );6 i6 a( N6 X: a ~* T" {, v
SetManaPoint( GetMaxManaPoint() );! U T0 M! v. S! i7 M
SetFatiguePoint( GetMaxFatiguePoint() );/ ^. C" q8 [. G9 i, ^: d
if( nJob >= 1 && nJob <= 4 )3 k' z4 t* e& R5 ~0 e2 ^% W
{2 N9 ? _9 u. H7 ~- Y6 c5 `5 T% q0 I
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ {6 u u+ ~ Q" Y8 w4 Y- h; X
m_nRemainGP = 28;+ t2 }" ~$ `- W, K3 \" g3 X
}8 Z: K8 \. @5 r p( O; m
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
$ _1 ^* p3 k6 P6 s( E' R% c {/ C& X7 ^# P# X
m_nRemainGP = 118;# b: g! @8 P1 n( n4 o2 K& E
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ D" }( n. |5 R1 w+ S! v+ N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: K$ _; D* v2 h! d9 j }
( |& L p+ [# _1 E6 }/ k! u if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 y+ r- r( C* c {
* H& G3 r8 a, w3 X* x! ]( X CItemElem itemelem;+ `# W q# E5 t: P
itemelem.m_nItemNum = 1;3 S5 b4 U0 B) _
itemelem.m_bCharged = TRUE;
% U, p5 o q$ u4 C" k BYTE nID;& U0 | u5 n3 C& n( \) I, z* ^3 V
) _( B: ^* ^$ s; ^* z% R" K* \ if( nJob == JOB_MENTALIST_HERO ); Y" `+ G8 L! u# g0 }2 r: t
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
- Y( {8 W- V9 r$ a5 B/ m, A if( nJob == JOB_FORCEMASTER_HERO )
7 k* h* c- E. K! Q# |1 F itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' z+ J8 E/ G9 G2 r- |
( f! j9 X Z7 r( g" o: P ( ( CUser*)this)->CreateItem( &itemelem, &nID );9 d5 j8 a7 C' g; j0 O
}
( [9 b, M2 v; i5 f/ E g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 G& r, i- K/ c1 ^/ j
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 N! b) v8 [7 S0 v1 X6 A
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );! `. \/ P2 w+ y' ], d" j
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );8 P# x+ _8 X! {; C4 W' e+ E
( (CUser*)this )->AddTaskBar();*/
4 R1 \- Q/ V; C* i9 d) {& w ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ |& {3 c6 w3 s0 |
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ a2 A' ~& D( `& m3 N
((CUser*)this)->CheckHonorStat();8 e! m* |6 \) q( Z# ^' s& i
((CUser*)this)->AddHonorListAck();
! Z. l& f5 e4 l$ U4 q g_UserMng.AddHonorTitleChange( this, m_nHonor);! K' h# f* n+ Q+ N" w7 C
#endif // __HONORABLE_TITLE // ′Tà?
4 ^2 Y, K/ [' N6 ^/ {4 i7 V }$ w" l Y/ O, G8 Z3 b4 f
#endif // __WORLDSERVER
* X/ a) t0 U' t( t( Y2 [/ ?} 3 ]) s- r3 w; ^* r$ S5 Q- V. z2 x
7 W/ G# ~ @" _& l9 j然后你进入functextcmd.cpp并添加以下
0 K0 G, M8 p4 q1 c+ W+ P
- X9 B+ P% Y! v7 F9 }" n代码:2 A$ S0 g5 k6 w2 i7 [6 V" S
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 W7 u6 D/ b, u& N' e) E
下面插入
* `# \3 u1 V9 M# f2 y; aON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
?3 G8 @% M! N- p' S; H/ z
0 y V0 \ _ j然后你去- S( l3 j" P! t( L* B
& u3 [5 [$ s; X9 n9 g# k# {
代码:
8 A, u* ^5 S" D' z5 p代码
# X0 A7 ?8 E2 s5 r* ]. mBOOL TextCmd_ClearPropose( CScanner & s )
4 j% V& R# N2 ~, c7 f{0 m g; ^& B6 T) [7 X) U5 n" @
#ifdef __WORLDSERVER. X% o2 h0 [4 @4 b
CUser* pUser = (CUser*)s.dwValue;
; L, ~% y7 \9 `& a7 C2 Q g_dpDBClient.SendClearPropose();
: z* h# ~, x0 n3 [6 A4 O#endif // __WORLDSERVER/ l! I- x) _& l# O$ K
return TRUE;# q/ }( u; L5 D* P
}
$ D$ D. Y/ }! ] i6 W下面插入, V2 d5 P2 z7 C
BOOL TextCmd_rebirth( CScanner& scanner )
( W+ w# H& h# e$ y! O+ e{7 F- W5 k4 J: ?
#ifdef __WORLDSERVER+ G1 P G6 p$ @% o1 N3 F
CUser *pUser;
+ B/ j. A3 r6 w3 W7 `pUser = (CUser*)scanner.dwValue;) V: G f, A: ^# }, Z& ^
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
9 A- C& K- u) I$ u6 d! _pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
8 ~6 T. I3 S6 f* A+ q& Telse
0 |# k# k4 h5 X/ Y, X. MpUser->AddText("你还未达到重生条件!");
' _( ?, p4 ^9 i. B6 M5 w#endif
9 ^( L6 d; D- S% }& Areturn TRUE;
! n$ w/ R' r$ K% b}
2 J. K9 t0 G$ w) W8 ?
4 e7 W# D' ^& d
8 e8 b) G; o" w& d4 F. J* V ~" D9 C n
' ^1 i+ Y5 w1 O9 _ t4 G |
|