|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( R5 E- I8 L# O7 u
# R0 a5 m, g# T6 b& W' x' M
Mover.h; c$ Y! B. c. V. |2 ^' ^4 m
代码:
# v3 d* V: {1 J% o$ }找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( Q( e( `2 G( a S: y0 a( o4 F
. u# L$ u( k0 _7 y4 J; F% x
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 a. I( S/ p. g# H7 ?( E& w7 _. l, z: V
然后你去mover.cpp添加) }- A1 c2 |3 B- B' J; \- x
?* O& e8 y' o3 k
代码:
- k* Y5 i4 r, F2 evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
/ k- B# R5 P, U) X. E: v1 |; H{0 r% w, I' g: J$ B" E" k
#ifdef __WORLDSERVER
. I* x* u: m6 D3 u // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( X8 J L( G' A% w7 k9 v/ A
MoverProp* pProp = GetProp();
5 t) _1 X& W# x `' i' G$ D- v if( pProp )0 d; Z/ ^4 Z5 O0 e
{
) V& e0 M" L* x if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' s: l. F* q4 ^0 c; U( }3 o {% ^: M# ^. e |. K. H
AddChangeJob( nJob );
3 \' [- A5 ?' o# E$ a }else{, ?1 Y) x; J* V. K. s( D" U
return;
2 M$ ]- g; U$ [) B1 p }
9 x& J7 m+ o! @" A6 @% I3 G D int nPoint = 0;
' F- H2 ?& c6 b if( m_nJob == JOB_MERCENARY )
9 A$ E h8 B# t nPoint += 40;9 `2 X3 P, x6 c2 r3 F5 k
else if( m_nJob == JOB_ACROBAT )( R- `* t+ n* I8 G" [
nPoint += 50;7 @6 L/ `) m: j, w( p8 ~7 r
else if( m_nJob == JOB_ASSIST )
1 [6 _$ B" v& d nPoint += 60;
F1 u# y( l6 n9 U) X9 @8 t8 R else if( m_nJob == JOB_MAGICIAN )
) U3 R% w2 } T' S2 @ nPoint += 90;4 i) t4 _' i8 a. K# t; Z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ), c, `* [) U5 R% T, ~; f" m
nPoint += 120;. O2 u: E9 C' f$ W6 j
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
' N# L7 y3 v. a2 ]; n* ] nPoint += 150;
3 q: w: f- S* l4 S: q else if( m_nJob == JOB_RINGMASTER )% u% \) ?% [9 E" ], F( E, H+ \6 s
nPoint += 160;/ Z( ] g' A4 l: m
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" H) G& T h5 U/ Y* u6 V+ D nPoint += 180;
8 _ p$ m# `/ j/ A else if( m_nJob == JOB_ELEMENTOR ): i) G4 {1 T- O+ B. ^ `$ A2 K
nPoint += 390;
9 \1 L C4 o" t6 f. Z7 S; j2 g else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
% D2 X' r b* _6 h) v2 S4 T, [ nPoint += 120;! ^" B/ S5 }+ g" `; g
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 U; \. l- Q' ?0 e$ H1 x nPoint += 150;: J1 e1 y( H' B
else if( nJob == JOB_FLORIST_HERO )
/ C' |5 D$ `. q$ Z2 Q, @% U! B nPoint += 160;5 j6 a8 s) M- K: \1 K* b
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- O' J+ V, n; P$ M) ] nPoint += 180;
$ N# w4 D, |1 T' G2 w0 [" F else if( nJob == JOB_ELEMENTORLORD_HERO )* o8 t; R0 O8 T' e+ V% h9 j
nPoint += 390;
. F1 F" u! I& E/ g" q7 O% l E' u! X; _2 w9 [- Y$ p
AddSkillPoint( nPoint );
6 s- r1 p; C2 P# _6 c m_nLevel = nLevel;
' C; B0 t$ g/ e9 \2 D. n- @. Q* U. j/ a
SetJobLevel( nLevel, nJob );4 C( X: W( T; v, ]3 f% Z% l
m_nDeathLevel = nLevel;
5 u; c% v* d8 ~2 L" T#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& n9 P$ X' N' h p* e& a if(IsMaster())5 }$ ^$ d7 \- P; f
{
6 h- C. P4 Q5 [/ F) b8 L int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& M" ~$ p4 k7 J/ v if( nLevel > 59 && nLevel < 72 )
Y, a* U$ c6 ]4 a) } dwTmpSkLevel = 1;# D3 l" `: S7 L6 ]
else if( nLevel > 71 && nLevel < 84 )4 y! ]! B: T' y/ O- n/ C% S
dwTmpSkLevel = 2;/ k( v! U# B4 y
else if( nLevel > 83 && nLevel < 96 )
6 O' r; j5 X: w3 G8 V dwTmpSkLevel = 3;7 j0 G# {: _3 y& k
else if( nLevel > 95 && nLevel < 108 )
) G3 R% P; o$ S! V& z dwTmpSkLevel = 4;+ R1 |1 i) n( m2 R5 @2 L M
else if( nLevel > 107 && nLevel < 120 )
; z8 W6 R" I7 y, q7 ^0 _ dwTmpSkLevel = 5;, j0 U6 \# U6 d/ L( i8 A0 Z" T
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 q; G5 F h- k) p* A7 L3 Y { : p4 K3 W+ N; W7 D- `1 z9 [0 v0 @2 o
LPSKILL lpSkill = &(m_aJobSkill);
/ ]: \' N2 R1 D# F. t; ~9 v if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ D- h! u0 u! q# ]/ W$ `2 L! @& B {3 O U+ @8 }' B# V$ {9 q4 p+ n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 C# r& }- }: J5 A
if( pSkillProp == NULL )( R" X( I, X+ S7 ~4 X: Y4 x7 X
continue;
7 X) b2 s+ E3 f$ [- g+ t5 u* P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 c& u, Q! r; r. D continue;
, c& h" z. m' \+ S" U3 d& m lpSkill->dwLevel = dwTmpSkLevel;
# s7 U! ^, \' Y @ Y* i }
( \( Z0 S8 q, g }( |2 ?1 p# A2 ?& ]/ C
}
( d" d! u# B( z( _+ @ else if(IsHero())3 U+ R7 U& _2 Z( u0 |0 }# h' C3 E* L
{, p1 e$ D7 ?% P5 U$ ?% |4 V
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - l0 I9 o; u* J. {1 G, ^
{ 4 O. i+ Y" E: P+ N4 r
LPSKILL lpSkill = &(m_aJobSkill);+ a. |0 ]0 Z8 T+ V
if( lpSkill && lpSkill->dwSkill != NULL_ID )* P8 T7 `, c0 O* [" V& y
{ K0 g9 T" h2 |8 k" n/ X2 c; \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 W- I) Y( n( P4 Q1 y _% u if( pSkillProp == NULL ). g5 j2 ~4 D7 u* Q# Q
continue;
! G( }0 d% U- ]$ x* k/ A0 l7 \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* B+ E2 N8 w1 \7 H
continue;, w4 x2 S/ i+ r6 c$ c) ?* l
lpSkill->dwLevel = 5;
2 ~2 Q/ {; } |2 u5 [9 r; S: Q }- @0 ^/ ~& R [" F
}9 y6 L( ~* G6 F* U9 H8 |0 J9 ~& q
}
/ l0 B0 }: h: ^, v. W" T else if(IsLegendHero())0 P/ x# v* K5 h4 K( p( |
{
& G4 g& e4 h8 D; _7 ^8 s2 i for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 w4 V# ?5 q# C' x
{
/ v9 X, n8 C& q' U/ J# j/ r LPSKILL lpSkill = &(m_aJobSkill);! K& y; B/ N4 U' T+ Z% r' `8 b
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! K; `1 A0 ?1 w0 k. I8 ` { s3 C+ G: s/ l1 Y* k! n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / K% t; p# i$ h: L/ t6 ~! D% G5 R
if( pSkillProp == NULL )' H" M# f3 Z8 }# |% A9 j" G
continue;& d) l/ f) Z: M; F4 e. k; j5 m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- C4 u- G7 z) s3 h
continue;
2 x& O; \& M: T: ?- n* r lpSkill->dwLevel = 5;7 p- W1 D6 d. M$ X' I2 d4 g1 \
} D. r% E8 m0 u
}! V5 n9 s( d( D
}" H9 I9 t/ `$ t) W' `! x' L
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ S& n: ?- l4 [% h- w
if( bGamma )
7 E( v6 s; {* Y5 \* u4 y9 q1 Q5 p& B {, t. N. [ \/ N% A9 x s3 z T6 S0 H$ |$ ?
m_nExp1 = 0; F/ X: {/ o) I5 B: g
}
% b3 K" A; \, r* M5 i+ U- h1 c( p- B+ a6 a' B) d% W; `
( (CUser*)this )->AddSetChangeJob( nJob );
2 y' ]# @: X' ~& L3 N( ~6 k g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
( P1 y" z$ X$ _' H8 T& r% U( Q; Z6 z. S3 u$ f' K2 r' m
# X4 {) k$ m0 D5 v" |7 S- y9 e% g' q#if __VER >= 11 // __SYS_PLAYER_DATA4 w) H" L2 j8 K, t% i* ?
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* B' O/ Y7 A d. P- v# V! w
#else // __SYS_PLAYER_DATA4 i/ Z7 K" V7 b- h4 p1 m
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 h; `5 p' I3 f* a) l
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 b) v$ ]7 @* h1 v if( m_idGuild != 0 )& P: w0 s1 z5 o" x' q+ n
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& `6 q! r2 w6 n8 u#endif // __SYS_PLAYER_DATA
5 {- n! u F, @5 _* [ SetHitPoint( GetMaxHitPoint() );
8 J8 R; F% ?- L- u SetManaPoint( GetMaxManaPoint() );
+ A& a; }2 ?! P2 O SetFatiguePoint( GetMaxFatiguePoint() );& @; W( b3 p7 n/ {* G& W
if( nJob >= 1 && nJob <= 4 ). m+ [( w( |8 I3 p
{
/ I* u/ x! G* c/ A5 h) l3 j+ g m_nStr = m_nSta = m_nDex = m_nInt = 15;. `) u6 k) l/ |# r
m_nRemainGP = 28;1 G* E; D/ p+ K$ l: n
}; y% I4 a% j/ ^2 P5 a2 O J
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); K" X: P' A( I& M, \7 F( ]& C* _
{
$ U* V% p3 A$ Z* _ m_nRemainGP = 118;( ]/ }4 ^3 b3 |4 D3 t
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;6 f# z( E2 u) i/ O" u
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# K- V8 T4 K+ [- X& o9 J }5 t1 @* ]2 w& N
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )) J; m$ w7 t' P' r1 ?* |5 \( D/ [
{3 f2 b0 P( e* g J
CItemElem itemelem;6 [* r- I8 x5 T# ~. s
itemelem.m_nItemNum = 1;
4 R5 K& Q* I- X: P' i O: | itemelem.m_bCharged = TRUE;! M$ |" n- i7 S6 i* Y$ }
BYTE nID; q$ ~/ A- M L% t3 u
7 |, u7 Q- e# L! g' H if( nJob == JOB_MENTALIST_HERO )$ ?) w- G0 [7 s. z9 H. ^
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# G) k+ k2 |3 Y; U6 _ if( nJob == JOB_FORCEMASTER_HERO )" a' Q4 |- ]% R
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- m- p7 P& M5 y% B) Y3 ~1 C6 ^
% b' T5 Z" f6 O0 Z+ w ( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 i3 i# ~ z6 s! Y }5 t; K# j& ~8 f! | O
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 L* F1 V6 g5 w0 m+ g, P
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
7 b% e) c) ?9 i4 t; N ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );% d/ i0 o/ e% m+ L9 E# D
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );/ E: C! F. c0 N9 ]8 m6 `
( (CUser*)this )->AddTaskBar();*/
6 Q1 K. Z7 J) t2 j0 f3 g2 u4 W+ d ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* ?* |0 T% ^) X8 |# S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 z( W9 u( ?* R0 e9 n4 ~
((CUser*)this)->CheckHonorStat();
c. ~, m6 d! s9 t8 @* E9 L' \ ((CUser*)this)->AddHonorListAck();) v+ R" c. }# u) i
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 u- e- G7 q) e8 a3 I#endif // __HONORABLE_TITLE // ′Tà?' v# Z R) X+ Z; l2 Q
}
. t, Q! ]. _, U) _#endif // __WORLDSERVER) l+ ? x& b+ _0 b+ w/ ^
}
! j6 u( o+ T: r7 i1 {% f9 n! d4 c. Z W( D7 ^0 m/ G
然后你进入functextcmd.cpp并添加以下
6 ]8 ?9 H' J- p8 A# f$ m" p; \3 ^$ [7 j1 @1 ~# `# H
代码:
: M, U$ Q& @1 k' t `ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- L8 t9 ]; @' l ]- I9 v下面插入
5 }% ~1 @& g* ^, Z3 }ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 p( K! I% W3 E+ m- N8 s- O5 y! i5 N$ O4 i$ Z& _0 k$ C- N
然后你去) c3 Q0 J7 ^9 W$ P+ r4 s# C& d
1 O5 t1 y0 c# B2 e7 M0 w0 Q# Q3 y代码:8 [& K8 q8 A1 j( B* n F
代码
. D: F4 ~9 A* n% S( _7 [0 fBOOL TextCmd_ClearPropose( CScanner & s )+ T1 l8 I G; }/ c8 C
{
) H: `. w- \& p A! Z% O5 B4 ?#ifdef __WORLDSERVER# I& R6 }3 ?. d
CUser* pUser = (CUser*)s.dwValue;' w8 v$ q* P, j! f; i: O) d
g_dpDBClient.SendClearPropose();1 B( p T2 i# K
#endif // __WORLDSERVER
" u U9 d. M. L return TRUE;
) w% k7 d( b7 C! B/ \}
2 H& W5 `3 _+ n+ A- h下面插入
2 Y' h" M: K' K4 [- XBOOL TextCmd_rebirth( CScanner& scanner )
( x. e5 l3 ^6 s* x5 Z9 N @6 H( ]{
' }# ^& n4 N M F+ g; k" }; X) a#ifdef __WORLDSERVER
: @6 b2 y# v% O, n7 _3 B: _CUser *pUser;
/ h8 E, w8 y$ `& D3 PpUser = (CUser*)scanner.dwValue;) F7 j* ~. p1 O ^
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()) b& R) o/ R C) T: i
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);2 R3 P4 Y1 T- u. w! k3 o' p
else1 k' T& v: R' I4 _0 _$ N' u2 f
pUser->AddText("你还未达到重生条件!");
: {7 W) `; U# R& B9 }+ D- v/ y#endif
; a" @0 h% |. Ereturn TRUE;6 F6 _6 Z5 G9 w
}
1 P% S3 d1 b( c! Q# }" e' k+ _3 ~3 h" k
3 d. P0 m; z8 f* `% Z2 n- P8 }6 L; u" t9 }# M4 U
+ p. K- I( E2 {9 x: x" d
|
|