|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 g, D6 I+ C9 z! }, I) T; R; g) N# O! D7 i) d/ D4 z# C
Mover.h- e" Z" g* w) c7 L: S7 [
代码:
1 m1 ~1 w( g8 b7 I) S7 G1 r. T( j) H# e找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: e- ?# M+ Y# e! S
( u w+ y9 D. W* \1 B下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 n/ o! B6 j, t8 d" c
; i( D# |) {) u0 H/ a5 b然后你去mover.cpp添加
7 ?3 V' G4 Y. n5 r& D. z+ ?& T9 h% g
9 x1 i0 F1 c+ X `5 e8 K% B5 j代码:
+ {: q/ m0 f1 F& t2 {9 ivoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 v z& S/ k, P& S2 q
{
% R, b: ]; H5 ]2 G- e+ g#ifdef __WORLDSERVER( y5 u7 d$ D" ~* n- e4 u
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó5 B( @/ U4 ^- d& a" [: T5 c
MoverProp* pProp = GetProp();! G" N9 P6 h% N( \. X8 Z' X
if( pProp )( W3 x5 V( O0 T9 y( S; y& g$ l
{; [. O, R6 r* E3 g! _
if( nJob > 0 && nJob < MAX_LEGEND_HERO ). V. g. T! i. s1 M" J8 m
{4 L& p, [; w& U6 a) h5 A
AddChangeJob( nJob );
4 r0 E+ r( w# Q& S1 B1 ` }else{( `! O+ K5 {7 Q7 P$ b! J. i
return;
6 c! r7 k2 Q3 C# U }
- Y1 |0 K) ~! S! ^) ^& o int nPoint = 0;4 b% Q* f" X6 Y& |& R. ]
if( m_nJob == JOB_MERCENARY )% }. z$ `. P6 o- K. W2 F2 j4 X
nPoint += 40;. _3 i/ ?6 m g1 W. R9 M8 r
else if( m_nJob == JOB_ACROBAT )
, @# ?- h( }# z' I3 G* g nPoint += 50;' J& w, V' `7 C
else if( m_nJob == JOB_ASSIST )
) L; Q& k: M8 _8 D, C nPoint += 60;
# ^9 f, r5 R2 k# N/ o H else if( m_nJob == JOB_MAGICIAN )
- b! |* n6 c2 ^9 X, E( Q nPoint += 90;
7 }& r- B& a% j3 ~" P! V6 q+ L5 F else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): {2 q+ N! q3 `+ u- T9 d3 m8 E4 b
nPoint += 120;
: U3 K$ H3 D/ C0 ] else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) P" W! ]; _( f7 H! \
nPoint += 150;
y( H$ N! I& I else if( m_nJob == JOB_RINGMASTER )* M6 M* D3 D: P; `# N8 `- }1 f
nPoint += 160;, L. _# ~3 S$ V, g" S1 h
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ ~% q$ W8 t2 Y; s% d8 l# D' [ y
nPoint += 180;' s3 q( F) c, ^) ~0 H, \, }
else if( m_nJob == JOB_ELEMENTOR )
y- ~4 N- D4 F# s! m nPoint += 390;& \6 o& L: U& ~$ ?3 F/ z
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); o T' Y6 W4 O' u
nPoint += 120;
6 o: G3 P% f+ Z: T Q+ t0 f else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ V" O! G/ Q1 u
nPoint += 150;) C; o. y C1 B' e
else if( nJob == JOB_FLORIST_HERO )
5 X# T: s+ x- Z$ J8 w t% B2 M! N nPoint += 160;
1 `" H3 x/ |& K% F& X; q3 R$ u else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 r4 A8 J8 G) T nPoint += 180;
- Q. {$ Q' o, V6 v6 ?- _ else if( nJob == JOB_ELEMENTORLORD_HERO )' D! V5 O# ] V1 J/ ^9 I) q
nPoint += 390;
1 g3 S; e9 \; }5 m. l) N$ k
: h, H. k! G' R% v7 v AddSkillPoint( nPoint ); Z( v. B3 `; {( }3 l5 A
m_nLevel = nLevel;! o. g5 F1 T) B& r
* j L( E# A: L/ x5 {+ g7 b3 ?, P
SetJobLevel( nLevel, nJob );
4 m7 e) q$ K7 W m_nDeathLevel = nLevel;3 l4 m$ U5 D& g( [% p
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! d& `. z) N9 S# C8 u5 P if(IsMaster())
( ^4 k/ ^: d# m$ ~+ w0 K. { {
' R. `/ t& H, l) {2 V" }2 F, y int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; s: E7 L/ [) e Y1 s if( nLevel > 59 && nLevel < 72 )
. f# M+ s0 r$ X* m; Z {& b; O* K dwTmpSkLevel = 1;
6 g3 d+ z) R# B5 H+ q else if( nLevel > 71 && nLevel < 84 ), R- v% m( W0 P8 G+ h
dwTmpSkLevel = 2;" y$ V9 O/ k; T" R7 w" ^* e0 I3 k5 T
else if( nLevel > 83 && nLevel < 96 ). |! V0 N2 N- y" M$ p) b5 d
dwTmpSkLevel = 3;
* m: t* U- t7 G) K8 b! ]9 T else if( nLevel > 95 && nLevel < 108 ), w' p* i& O4 g7 E$ c$ L, Y4 Y! r; l
dwTmpSkLevel = 4;
3 z. |5 n6 I# {" `1 A f9 a+ ?% R else if( nLevel > 107 && nLevel < 120 )
7 g4 ]4 d, C. _ dwTmpSkLevel = 5;
& K6 D, N+ ^. R! P$ a7 P, c5 W for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 q. |* y {7 O0 p( v
{
( `; o1 @6 ~% D4 I; F- J LPSKILL lpSkill = &(m_aJobSkill);
9 T% k3 ?2 J6 Q' b; B if( lpSkill && lpSkill->dwSkill != NULL_ID )
?7 u7 e) ?, C4 j* K {
9 n# W* t3 p2 G5 o5 z5 S9 f4 A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # v- Y# i3 O3 h* b# D! J
if( pSkillProp == NULL )4 S8 \: H: o6 _ \2 N
continue;
, t5 ?: I0 k# h& S2 c$ Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 Y- N' ?7 ^0 s
continue;3 Z8 M. C# y9 j7 e# a% Z# i+ U1 u$ ]
lpSkill->dwLevel = dwTmpSkLevel;
+ d) |- P: F/ E9 N. b* D }
7 [6 r& E5 k$ z9 W3 Y0 T3 F4 L }% L% n' B' k& f b& L! B
}
; g" M5 v7 O; M6 \4 ] else if(IsHero())
: n/ n- M/ r x4 | {( C' ^* @, }/ O# W: Y3 F* V
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 I, E/ R, i% M+ k' I( Q
{ / X! G* H; q6 d% u) U2 I$ R$ n! t
LPSKILL lpSkill = &(m_aJobSkill);
4 w2 r" ^3 Z9 ~$ I4 k2 B+ G if( lpSkill && lpSkill->dwSkill != NULL_ID ). b8 c1 d9 [ |' B! |. T, `* k) P
{ \# ^& y, m3 ^/ Z! a) N2 c/ k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 Q) ^7 _" r" E1 |! `- a/ I/ {' m if( pSkillProp == NULL )
5 p: P0 O6 D$ Q# E6 c+ H continue;" n9 T- u, |. \; v- p5 U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ p8 m& {( [8 K8 x3 G1 G$ ]
continue;- j) ~/ @$ h8 v/ j! ~
lpSkill->dwLevel = 5;
( n! u g+ R4 i9 K7 S# H }6 b: _, Y0 X8 \3 r8 q; R* T7 W
}5 K1 {9 L, R4 u1 ^5 F
}
: P% v4 C# m n* B+ o else if(IsLegendHero())
" R( ]: }! J* j1 w7 d3 C$ \ {' ]. L% }. R7 Q1 r+ G7 k1 n
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - e: Z1 \( F/ a( o7 E* _. d$ A
{ : p" }. b2 x ]6 X# H
LPSKILL lpSkill = &(m_aJobSkill);; Q% i# z$ k4 i# C7 R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 @. p5 L! W3 v {
( S% L3 Q1 a, x* }* \6 W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % a$ S8 U% P) g- n' }" F; g
if( pSkillProp == NULL ): K7 g! K* T6 g! a( M7 _- F
continue;
. b$ \- F' p7 ]1 e) W, q, [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. ~: S7 T% [0 L8 F- e- h continue;7 z% Q* }; M, A8 [2 u: X
lpSkill->dwLevel = 5; O" J- C, c: l$ f& A
}
/ I' k3 g2 U1 i% D; ^( M+ p }
6 F7 y! f) O; ~1 n L' {+ A }1 r' u- t+ H# o+ x
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, C1 O8 W, a- \, x* u" v0 D4 j
if( bGamma )
2 c# J0 b) G; s! O0 j/ b {
; P9 l- ~2 N' A7 r, y m_nExp1 = 0;
, Z' v5 f4 \) Q. B/ z7 @( O }' F6 U7 t- L( V: y+ |/ l3 o
! V, C% V3 {& A. N' b" ~2 K5 k
( (CUser*)this )->AddSetChangeJob( nJob );
/ q+ c* u! }5 p8 R5 m* a6 W g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 Z; D& m8 d9 A8 z& t' P7 U. M% ]) M
, k/ b' k3 _$ K6 x* z, k#if __VER >= 11 // __SYS_PLAYER_DATA ^) b5 X& h0 x. g, h& u2 K
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ H; n1 C& x8 e: E- {3 ?. D, F#else // __SYS_PLAYER_DATA2 N8 e" z* Z6 P/ u6 S5 t. K5 T
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 X6 M0 @0 f3 m, B2 y1 S
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 U) G3 G( c3 K5 O1 y. D
if( m_idGuild != 0 ): P+ L# L+ ~6 o. x$ K
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" e# M2 N) K7 x0 E6 m+ O7 Y8 O
#endif // __SYS_PLAYER_DATA: `* ~6 R- z( P1 ]
SetHitPoint( GetMaxHitPoint() );
5 j7 _8 G( f$ S' T7 m1 z2 V SetManaPoint( GetMaxManaPoint() );1 n: m# d$ u/ ?2 b3 ?
SetFatiguePoint( GetMaxFatiguePoint() );
2 X9 p6 D7 M* C, g' v if( nJob >= 1 && nJob <= 4 ), N% \3 B) E9 Q, c8 @1 y4 G. |& X/ J
{7 r( q: G+ N0 n
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; y- h) y9 v! ^* R m_nRemainGP = 28;4 ]! H/ A4 \7 o" }; }& F- q
}" I# S# K6 n; y* Y2 r, U# Q0 j4 P8 F$ Q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 w3 v' `; W( Y {
: |, ]$ T7 L) \ m_nRemainGP = 118;
1 } N! C7 T! d. o8 c //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
- C0 O& `% U0 T. |( a" m m_nStr = m_nSta = m_nDex = m_nInt = 15;
- z( T; g/ o# f l5 p w/ z }
$ k* X, Q# o* }) t* \7 j3 X if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
Z1 V8 D" j' C. u7 f8 O9 F/ O& K {$ e9 V. ^2 } F6 W+ [2 Y
CItemElem itemelem;
5 j( e% f( N8 D! z itemelem.m_nItemNum = 1;
3 i6 u) X$ b9 z. U) N# h2 {; e0 N itemelem.m_bCharged = TRUE;
6 N# L0 m- o" j+ k BYTE nID;
2 B1 z' t0 B0 N8 j4 x
/ p& o$ Y m3 i' @ if( nJob == JOB_MENTALIST_HERO )
% ~) l# T2 P( z- ^2 n/ O itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 i2 V1 L3 L8 o; f" l
if( nJob == JOB_FORCEMASTER_HERO ); v& h* T1 }% j1 b: L
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; |% p6 f7 \( X3 k. G4 ~: Z
7 q/ a; E; D2 B9 Z6 g ( ( CUser*)this)->CreateItem( &itemelem, &nID );; ?2 B" o$ j! ^( j4 o
}4 S) e; U; r; C3 `( D# ]* i
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* y3 |, l. r- K! T* b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
~. e* r) T) u- M# j ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 `: t8 X) z! T! e2 S
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ y p; f; f! M2 `, R ( (CUser*)this )->AddTaskBar();*// i! {+ |1 W. K( B
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 Z0 L, I) A, x2 f#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 w* A+ F/ P7 G& H ((CUser*)this)->CheckHonorStat();- _5 N$ E5 i4 F) J1 s6 y
((CUser*)this)->AddHonorListAck();9 V) W; f; m- L+ V
g_UserMng.AddHonorTitleChange( this, m_nHonor);& c) G2 E' C2 r$ R9 c' T1 t" i0 l# j
#endif // __HONORABLE_TITLE // ′Tà?; g4 y' e3 ^3 B! M- e
}
: a- R! {) c& E; S L: t5 A N#endif // __WORLDSERVER
0 n) k3 S8 ]* L8 m0 @}
9 v( @: R/ a5 L1 H' E
" a" p. O0 _! B4 Q然后你进入functextcmd.cpp并添加以下
' [! \3 G2 L# K" h% S' p
! ~9 T5 R P6 y# u( v代码:
% P: C) c# E( a% i* n, xON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( r" P, I& Y$ O% H下面插入; o* p5 u: N3 @' Q& T7 u
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % y, x7 f V8 ?- ?' k0 E
J$ @+ Y, M; C! Z8 c, S然后你去/ X$ @5 g& T; U3 P- {+ K# j% b8 ~2 g6 r
2 P( y- O s6 G. Z6 H代码:8 c8 c1 p' L; R- ^3 v7 U$ K- J
代码
+ k! y R3 B+ C6 s- \BOOL TextCmd_ClearPropose( CScanner & s )
7 J' w7 ~ F( |! N) a{
4 G! }/ Z% {3 k3 ]#ifdef __WORLDSERVER
/ h, d$ K/ |8 x" S CUser* pUser = (CUser*)s.dwValue;
/ [! M0 ?$ Z: @ g_dpDBClient.SendClearPropose();9 `" M H0 s% t. n
#endif // __WORLDSERVER. F( T9 v5 o+ Q; X; |4 D5 G, O- Q7 o
return TRUE;
: |) t3 R% ?% i+ J}' L) [, l- y) _
下面插入
/ U6 R) P$ L: q& C8 H8 F x( BBOOL TextCmd_rebirth( CScanner& scanner )
8 H8 R: V; B2 d. }) P2 [# H{
* ~2 k/ E$ i3 t5 P6 j( E9 ?#ifdef __WORLDSERVER
+ P2 a& U2 o% e' gCUser *pUser;* S; g8 F' H* y0 n/ ~ u; D( @. |
pUser = (CUser*)scanner.dwValue;
; X$ \/ P4 U p* K' S3 V4 L% |9 qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())+ I6 }6 R% B$ m2 ]8 N5 `+ v+ }5 q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; f0 a8 Y1 h1 Helse
+ v0 Y" @" f3 M1 Y r4 @pUser->AddText("你还未达到重生条件!");
( K2 A0 a% p, u3 O#endif
, i/ K( G) n" |return TRUE;
# R( R, n5 A* g' w} O/ x' P9 k) s# e$ y
' v* E4 F% n# d+ f4 T
, Q3 u$ U" W0 H" Z2 s
- |) c7 @* h7 g5 y
# z6 K; s& ~: u5 L4 s |
|