|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel" W* S7 G" b% t1 C! q) N
1 b; n1 \% P( A& E) |* X; @ f
Mover.h
/ Z2 t- |- Y- D代码:* r0 V+ d) G4 Y# M7 D( s+ |4 B
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
/ [; q9 T" W% `, g1 F$ J# Z
" e1 O6 U7 b; l( B下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 B4 u' R ~: e X1 w- j0 S
9 z8 a' C' B. }: r4 @& X! H: b然后你去mover.cpp添加8 o8 s7 @2 d2 \: ]3 E9 w7 \
/ z- I- ~- j, l7 `( F+ S9 \" Y
代码:5 }- X# G; U/ |* [; N7 P: a$ ]
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- e2 ^* Q( F' _5 `0 p' s{! O. c+ l0 o, }1 q! t2 Q
#ifdef __WORLDSERVER \, T) U) \8 }( p
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( B7 I6 z& J( ]: e
MoverProp* pProp = GetProp();: R2 J9 k& i+ |) P1 W. ]0 K% y4 C
if( pProp )
) y0 p& l5 X4 \1 ]# y {
) s" g2 Y! U# J& _6 t8 `% _2 W if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 ^' F/ `/ U0 Q5 p7 ]2 @! W4 I
{
# q7 P5 o1 V+ s7 t7 ?; ?9 ? AddChangeJob( nJob );- t( u0 b; e6 j: e: f$ D
}else{7 j( c' F% n6 F# H+ a
return;
% z7 w% y8 y+ Q& D& e7 ] }
6 ~& E+ o# M1 M8 J5 n0 e int nPoint = 0;
( X+ J0 s1 c: Y# z0 a8 n if( m_nJob == JOB_MERCENARY )
7 r. ?* `* G& l. k! C+ e/ I3 l nPoint += 40;
+ m, ]4 N- J* x! ` else if( m_nJob == JOB_ACROBAT )" C* z' f6 J' b- l( d$ i
nPoint += 50;
+ q" Q6 G. z8 y+ y: w3 s) ` else if( m_nJob == JOB_ASSIST )- N0 f% `5 M; {) [
nPoint += 60;: J! M3 f8 r- h% W6 ?0 i% K7 R# Y+ f
else if( m_nJob == JOB_MAGICIAN )
' F( F" l: B, W nPoint += 90;: S' S! R! a7 Q5 B- M
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ X$ b3 W/ y3 P+ p nPoint += 120;
) _8 t- q. P( @2 j else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' J8 c/ k+ b* A$ L
nPoint += 150;
! V) o, Z% e7 x else if( m_nJob == JOB_RINGMASTER )2 L% ` C! @ p) e# T; P
nPoint += 160;& {* Q4 O. _* Y V, d% A5 x) G6 W
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ), S, v7 {- a7 e! E
nPoint += 180;! X1 I8 o R# ^
else if( m_nJob == JOB_ELEMENTOR )
8 J6 y+ t3 k: L: [ nPoint += 390;
( m" C. j* G: f5 E else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 }4 L3 Q1 Y4 g. W
nPoint += 120;& p% t. Y( ?3 V& m6 {1 U- z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* v6 E; a( o% `3 g3 h3 {" w nPoint += 150;
1 i. o$ b0 o5 E/ u5 x. _ else if( nJob == JOB_FLORIST_HERO )
. b& T8 {( Y2 T' @/ k* H nPoint += 160;" F$ _7 R( ~& } |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 ?5 \+ t. K Q9 }, _/ p7 U nPoint += 180;
7 B7 k7 K! D# m9 E" T- t else if( nJob == JOB_ELEMENTORLORD_HERO )- K# C, N$ d7 I% `+ B
nPoint += 390;
: ]- ~: h" N! {, w# m
5 \2 b! Q m( T U0 g1 Y1 ?1 g0 a AddSkillPoint( nPoint );5 r8 p2 Z6 Y0 V- U# u' u) t$ {1 U" L
m_nLevel = nLevel;
/ M/ u7 ~9 j' W# u
' W: x) s1 g1 _6 b; ~ SetJobLevel( nLevel, nJob ); M, C6 b" f! b8 u1 m s
m_nDeathLevel = nLevel;9 X' M/ i9 D' v3 m" }! _
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; K; X& K6 ?! N if(IsMaster())
2 \0 }- @& l. \3 c5 @9 J' k! ^! I {1 o: k; |' }) a/ D! Y# H
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 F5 w" V6 g h6 B0 r) T
if( nLevel > 59 && nLevel < 72 )9 P) O/ [$ w# T' J" k' }9 v4 U
dwTmpSkLevel = 1;, L: Z4 g& F1 a; c, t7 D$ d
else if( nLevel > 71 && nLevel < 84 )$ w% c) a/ j, d- I& V; p6 g, I! M
dwTmpSkLevel = 2;
' F5 L8 \7 o' t5 ~6 F+ J else if( nLevel > 83 && nLevel < 96 )
. P7 h+ e8 ?; O dwTmpSkLevel = 3;. s, ]1 F X8 A
else if( nLevel > 95 && nLevel < 108 )
6 d! | M4 S8 V% e# L0 v dwTmpSkLevel = 4;
, y9 H( i; X0 g2 ]: q, S3 }, o else if( nLevel > 107 && nLevel < 120 )
( S& a2 O7 Z( e dwTmpSkLevel = 5;6 L+ Q) ^' F' L* E/ x% t
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 K; W" P% K- A- j* B! [$ M- p* {8 J* k2 L {
: i8 _8 {; ?1 f! H c v. z2 a LPSKILL lpSkill = &(m_aJobSkill);. {6 ^' r# z/ X( ]" o4 N) S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 @, ?* Y# j3 }. n3 e' @ { r) P2 ]" M8 F; `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 } u/ i$ [' h2 L2 i" E2 J+ V
if( pSkillProp == NULL )
. j6 K( T5 k, Y: ~" Q+ Z continue;. K+ d' W, b* d: C6 K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- n! L5 U2 h. v% a: w
continue;* t' }& C# o* S# Z# z! K$ f/ i
lpSkill->dwLevel = dwTmpSkLevel;
. w, K- A' c! l/ Y& ~$ S }. P: j* F0 j2 p7 P5 F
}
4 F2 b+ q3 @3 ~ }- {. L5 m3 B4 \0 N! D/ g
else if(IsHero())2 D0 n9 X9 o. o. T; Y6 N
{9 T$ P- j" @8 H$ e
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 ?( Y/ M w& l# }: q2 j
{
3 j& b% ?, w* L% L1 a LPSKILL lpSkill = &(m_aJobSkill);7 K3 t- m% m2 x% l9 f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 B! T+ H" N0 [$ `! x8 a2 T {
5 l+ @ k2 n: w1 v ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* R8 s) O1 S* v if( pSkillProp == NULL )
4 H) k' T; k* u, H1 p# r continue;6 Z) I( q0 O, {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" A+ l( n, d* x- g
continue;
" ?3 [5 r+ d# R, { lpSkill->dwLevel = 5;
+ J X3 F+ v A {4 r4 e( z }8 Y |3 i& l; L3 P% J5 r6 A, I) i
}( N' n* `9 a, S* X( O
}
+ g# ^( _5 ]) |3 P6 `7 N else if(IsLegendHero())0 ~$ W3 j+ Q g3 }% ^3 f# L" l
{) T ]; Y% y6 A5 t! }* ]; O6 b
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 x0 X5 P% ^; V9 N& E
{ t& C2 N7 J$ E, e) D" C( z4 B
LPSKILL lpSkill = &(m_aJobSkill);
K" x% j1 ~: u if( lpSkill && lpSkill->dwSkill != NULL_ID )% n" \" R. m! H
{$ Y; l5 G6 x2 o/ Y$ }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 @. z& N& ?* |* P. _( y; k; I/ ~
if( pSkillProp == NULL )! V; F3 Z7 z" l* v, K$ M
continue;2 Y' f% B k3 L+ n9 O- G5 N7 _3 L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) W" Q- t3 d" L& f5 A: v4 |. T continue;
4 T0 w1 e$ V: P- u2 M lpSkill->dwLevel = 5;
! P# @# L0 }: H4 n4 U! h }
: [) l/ M" l' \* t }
! `% I% ~# G! H* C; h; c& [ }
9 |+ i0 R5 t9 L5 j2 X. i0 i; k#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" O- F. z$ O6 [1 @/ M* R+ z4 E! t if( bGamma )& l6 {: ]6 P( n. x6 H
{& x6 ^0 C' W( @& c' y/ U3 b
m_nExp1 = 0;, z# @0 j* r: R- C L$ P
}" @0 A# k5 ], h/ I
2 W1 q; J2 l( l+ ]; W6 U+ ~ ( (CUser*)this )->AddSetChangeJob( nJob );- A* J+ }$ J1 D3 v; D: J
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 k. E, _3 {1 L. \; @* t
! ~% K) T8 [) E4 S' g" c
& N8 f. W% Z7 g6 Y. L#if __VER >= 11 // __SYS_PLAYER_DATA
+ c2 X- H8 E5 ?9 {- g g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' |1 v6 x7 l& l2 I( X* r7 j" e#else // __SYS_PLAYER_DATA Q- S! M6 r7 `1 i& l% Y) \# x
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. @1 A/ H% _6 n6 j( u g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- F* f; W9 v4 u. u: P4 z) l+ E. b if( m_idGuild != 0 )" ]4 n- h* B0 z, M* J7 x
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' y( O8 f V. n0 m/ {4 Y
#endif // __SYS_PLAYER_DATA X7 w. J2 l- q/ q5 ~! G2 t
SetHitPoint( GetMaxHitPoint() );8 A! O+ x1 R% Y
SetManaPoint( GetMaxManaPoint() );2 a8 l$ W0 g8 n- m# m7 e( Y
SetFatiguePoint( GetMaxFatiguePoint() );
$ G" F8 A" ~+ C' u+ G3 g8 t if( nJob >= 1 && nJob <= 4 )
4 }7 r' q6 d( N$ {. R% E/ C4 w {
' A9 U2 d3 s4 h4 o m_nStr = m_nSta = m_nDex = m_nInt = 15;& ?3 h( f8 A- ~/ ~ w
m_nRemainGP = 28;4 W" J: u3 M& W) f
}( U$ w- J1 a+ N) \; l9 O" K
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. z" K/ }2 Q7 c0 m1 N {+ g) E% d* ^5 K5 @: X0 c+ v
m_nRemainGP = 118;& O( v+ B7 S- g% i7 o1 {% }4 T6 ?
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& `# M. Q) ?; Z) b. H; ?0 r2 F m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ \; L& k; z/ C) M4 S) v* Y }
4 c: d1 ]( o/ }3 k" z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )% y* H4 Q% w9 C
{
' [- Z, q- z5 x7 Y) Q, @. t CItemElem itemelem;7 g& t* p; k; C# G3 {# I) R0 O
itemelem.m_nItemNum = 1;
2 `" F9 S; Z- L9 |. V7 X7 I; P# e itemelem.m_bCharged = TRUE;
- `# C/ R; k* Z: } BYTE nID;
+ z% |0 |6 T' V
5 G: I" A: x+ F B/ e if( nJob == JOB_MENTALIST_HERO ), {, P% X' t" I8 a) w
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 Q0 K6 ?4 J6 K" v if( nJob == JOB_FORCEMASTER_HERO ); u5 G+ o$ s. w# S. f' F
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
6 J n+ \/ G) e* e
; R/ E5 p& ~/ T ( ( CUser*)this)->CreateItem( &itemelem, &nID );" L0 Z5 p4 q( p6 L6 V$ i
}
% _4 @2 Z2 }* Y; \& g5 Q# B% g g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 C; N I) L( v- {
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 l! [8 V& L" N8 o. e- x2 R
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! i+ `7 t: F% g) f /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
( Y( W+ i9 c% b* u% Q B+ \ ( (CUser*)this )->AddTaskBar();*/8 Q5 v* _6 W4 D" F4 W
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
7 s0 F5 O4 L, O- k( H- z. _; k$ b#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 t2 E8 ^0 _& I4 M& g f- p
((CUser*)this)->CheckHonorStat();4 X0 {: P4 A# s$ b* S6 s
((CUser*)this)->AddHonorListAck();8 m& L# l/ J2 P5 E' v3 J0 G5 `
g_UserMng.AddHonorTitleChange( this, m_nHonor);. @3 n: p0 J) U
#endif // __HONORABLE_TITLE // ′Tà?! u3 N2 f9 c. \' K
}& I3 }0 i. b. F' Y4 p2 V8 C1 T
#endif // __WORLDSERVER
0 h2 m# }3 z' ^$ P; r} ( f r P; ^+ r$ q* ~& G
" P, N8 ~% M* x# h然后你进入functextcmd.cpp并添加以下1 @6 d2 s9 W0 j0 Z$ o+ q
, I5 S! T* W; j) x代码:
9 Y* P# ]7 I r1 D; E5 jON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' N2 A, Z9 t* d: r! e' W0 |# b, Q. e下面插入' Y) l. e2 @( Q3 H% k9 C" p
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) D/ w) @0 a' H/ ]/ {. E5 P8 g
5 B7 l. v% i5 A. H/ I: O然后你去1 S) C+ W! M/ A
& R. [' R* b- n
代码:7 v7 t: O# |/ S$ W+ z9 b! Z6 k
代码5 [9 }* [" b, E7 z0 l2 l, ]
BOOL TextCmd_ClearPropose( CScanner & s )
( V- ~+ O5 ~0 d{- O8 F& x1 X) R0 ~7 e3 P6 D
#ifdef __WORLDSERVER
% P" f' i: z( i& Z+ K+ c CUser* pUser = (CUser*)s.dwValue;$ X" K3 g9 d( l6 x
g_dpDBClient.SendClearPropose();
5 G" m" e* d; b1 _# |/ ?#endif // __WORLDSERVER2 o4 q5 n @0 J" P1 z
return TRUE;: _2 k; o2 W) G+ q; h* q+ h& Y9 j
}
" D% n' E4 p0 B* \下面插入) C$ p5 x D5 Y) H, ~
BOOL TextCmd_rebirth( CScanner& scanner )
N% x# @) i; l3 P6 h. ~1 @{) c+ U8 v Q( }" r( y) V B
#ifdef __WORLDSERVER m7 x: X7 V4 m$ W8 d. U
CUser *pUser; M J5 D2 b- a8 L* X; O7 J! z
pUser = (CUser*)scanner.dwValue;3 a! C8 h, `7 q" Q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())+ \8 l% `( i: P! R& z! g) K! q3 V
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
/ Z+ C( q$ D( L/ Celse* u+ i$ l1 L# {/ o/ D8 U, w
pUser->AddText("你还未达到重生条件!");
: S6 P. z: o$ j/ h* n A#endif
1 _5 ~, m' ?& A H4 @return TRUE;* |* X8 L9 m: {$ W5 t5 z0 I) E
}
6 Q6 L* B6 \& M# E: l i
+ ?5 [5 Y P* g
0 V: A& X! B+ k1 V' h+ A+ d* U& |% S* Y2 W: D, \# b0 K) }& G7 y
( t% d" \" L4 I3 S6 @( }1 i; s( M2 c
|
|