|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel" |3 W9 z" F' @3 \! _
8 B( c5 L% d( [+ s' i8 F- ?
Mover.h, L8 V$ n, W4 Z' m0 A& h& C% V' Y
代码:* s' G, b3 x& d
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü1 f# z, N3 {8 y9 A! u1 {
: H" I/ i. G+ k! n下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
* o# D( q+ y* N- \- V- G# a1 ?5 h# [! G* A
然后你去mover.cpp添加" b/ j/ E& f1 m3 c8 d; \1 q
# \4 v/ {( A9 ?9 g
代码:
' d' f) m% k p c, g! X6 Fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 k' Y; }) B4 Q6 a7 f{* S0 c, C1 F" |! k/ W; c; J- j
#ifdef __WORLDSERVER
9 s0 y0 i/ t* f$ g) c; f1 K3 ]$ K L" d // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ j- f0 e: ^ Q1 g% E MoverProp* pProp = GetProp();
& o+ U% a$ D% X1 Y% t- t" J if( pProp )6 ?4 _2 G2 c& j3 O6 ^$ k
{
7 R$ p; ]8 a% {+ N4 v2 C if( nJob > 0 && nJob < MAX_LEGEND_HERO )# B, T% k/ g( Q2 d; } A& n
{- u8 y+ k+ b/ v( C! c; q; g9 X
AddChangeJob( nJob );
, P. h% z8 Z+ q2 q: m% I2 M }else{' U9 o7 {7 M( ]1 `3 I n, k
return;% M" ]! p( K+ b$ L1 K4 |- X( p
}
, o% o5 }. r3 @! _( B0 Q int nPoint = 0;2 M$ A# w* w) j: R1 D: D( ]
if( m_nJob == JOB_MERCENARY )3 P: t- h! [1 h
nPoint += 40;
) k7 I) H4 j* E+ c. {4 e4 e: D7 G else if( m_nJob == JOB_ACROBAT )
7 T9 k. x' |- d1 Z* l9 |* ~ nPoint += 50;0 l3 H4 [# a: b: j* _
else if( m_nJob == JOB_ASSIST )
. q" t/ a% g- a- B% T' i% n- @, r nPoint += 60;8 j/ s. S) ?" C, g5 x6 H4 p
else if( m_nJob == JOB_MAGICIAN )
) d0 C2 B& d4 d, z' q nPoint += 90;* m7 F; y4 x4 Z; v- s" B: k
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 ^- `; P i6 H& s
nPoint += 120;& l6 y! k: j: h# D# D) v2 t
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' T% G4 O8 `" A& c3 b+ g
nPoint += 150;9 F2 J' j5 _( c5 M2 j
else if( m_nJob == JOB_RINGMASTER )" W4 D6 ?2 }9 _* T
nPoint += 160;
6 A) f1 {; z' u z& c+ s else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
3 v3 i/ c& O5 f; }# N nPoint += 180;: B5 j+ Z5 g. [
else if( m_nJob == JOB_ELEMENTOR )
0 b2 y% \& T4 l0 ?0 H8 w nPoint += 390;" F4 T/ L+ e# F- U S: V# l: C
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )+ j1 y: l$ I# h8 p" ^- F
nPoint += 120;
) f/ _. [- z" a! ~; [ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ), f% p: a. j! B+ R- K" `1 o
nPoint += 150;% g$ F5 k6 q7 E: G* U- i
else if( nJob == JOB_FLORIST_HERO )% l0 Q$ e5 j& j1 ^
nPoint += 160;% h2 u, B7 e0 C* h) E
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ @* B4 a7 v7 X' i. O
nPoint += 180;
$ W6 y! M$ u# H3 @1 z6 M+ k else if( nJob == JOB_ELEMENTORLORD_HERO )
& s4 z" M+ e. \9 @7 C8 B nPoint += 390;+ K; I4 r4 x6 @: @+ l" u" p4 O4 u! {
% ]! A( b m3 Y$ z% A AddSkillPoint( nPoint );- j$ h# k3 k7 C: c5 A3 Q9 o
m_nLevel = nLevel;! |. Q2 H; G9 J
3 o4 T$ Q4 Z( e+ ~+ Y) K- k1 t5 d
SetJobLevel( nLevel, nJob );. A6 Y+ O6 e' }4 w4 l( e2 {) d2 W
m_nDeathLevel = nLevel;
" V8 b# O* |2 t7 `#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, d& G* E5 X/ c/ r9 w if(IsMaster())
4 q# }& q$ z7 Q5 {- O {
" ~2 v' T2 @/ M: |# V. | int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 l* s ]' s$ |1 F3 O+ b if( nLevel > 59 && nLevel < 72 )
0 j5 F7 F6 `1 o dwTmpSkLevel = 1; B% b; C7 |4 J8 V
else if( nLevel > 71 && nLevel < 84 )
! r# E" ?7 C) u N& s' A, V1 f dwTmpSkLevel = 2;/ O0 x7 d0 R [6 g( D+ E! j
else if( nLevel > 83 && nLevel < 96 )
# v$ { V& u0 ]$ L dwTmpSkLevel = 3;" D6 M* ~7 C2 I( r
else if( nLevel > 95 && nLevel < 108 )
0 W* E0 B2 l1 o& p2 w7 | dwTmpSkLevel = 4;
& u2 r7 u; J6 P; v% M. @# N! K else if( nLevel > 107 && nLevel < 120 )& A! R, t& @: C) S* U, Q% u0 ^ I \2 C
dwTmpSkLevel = 5;
2 R; x0 U$ @+ D; i* }9 Y- H for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; H. y- O% k! P" x
{
) W# {) N" k# R! F! K0 b& A LPSKILL lpSkill = &(m_aJobSkill);
- X( _; z$ g) U) Y r* ^/ h if( lpSkill && lpSkill->dwSkill != NULL_ID )
" O) K/ F3 a; { {9 K9 u5 J, l4 \1 B) t$ `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 G0 E' r2 n7 ^ if( pSkillProp == NULL )9 h2 |1 V! W0 J) @! Y
continue;5 b, ]# O9 ?! d) V2 [6 V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 t% O- r+ P' G- l* v0 z! K/ G
continue;# C$ Z0 o& I+ W( _
lpSkill->dwLevel = dwTmpSkLevel;
* n9 [; i2 p6 m }% N/ D% y; C P; i, }8 U4 N% v+ `, q
}* P) C( M ^' X0 I' I/ r- X
}: p* }5 ]4 h( u9 L- \/ Z$ T- P
else if(IsHero())
; K& {* x% r, }0 z/ I: }3 C {
2 R2 j$ v; R) f9 [ for( int i = 0; i < MAX_SKILL_JOB; i++ )
' |" o" |, ~; p6 }3 v9 f! f {
: j6 s5 Z( w+ m+ z LPSKILL lpSkill = &(m_aJobSkill);0 ^5 b# q; A! t# Q6 S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' ]) F2 S" d0 J8 ?5 Y {
/ j( v$ E/ F- @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 V, \, q0 N8 e Y( k
if( pSkillProp == NULL )' Q8 [% J- x6 I1 l( R; H
continue;: o( o$ H! V' G+ Z q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ f* t4 q' E9 {2 e
continue;
' F! b0 X" e4 Y( P% @- j4 x! a lpSkill->dwLevel = 5;
. `: b- n5 @5 U# S1 u$ O }
. W4 `/ I% q7 r5 g1 u/ o }- C, H7 G, l" f
}
" {4 ~1 a( D+ E2 P: W else if(IsLegendHero())
5 m3 S, j4 o! p6 p) Z3 L {
2 N' m- S* S5 o0 W9 b) k for( int i = 0; i < MAX_SKILL_JOB; i++ )
) X0 M5 w$ |$ x4 k* r6 Y" j { 9 I: B6 a8 _4 `9 J$ ^
LPSKILL lpSkill = &(m_aJobSkill);& b2 X0 Y4 i' N; Q9 c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; z7 ^; {' q# \/ d$ ` {( R8 W3 H5 F2 y I( {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 Z# u' x4 H/ L+ C* W1 p9 [; H' U) d. @9 V
if( pSkillProp == NULL )
& P+ z; U* Z W* l continue;: w8 W& J, u+ n, {9 I5 P1 d8 @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ T2 h3 n( d Z0 H7 {7 b continue;
+ G! d6 p5 g$ C m# \# q# K! s lpSkill->dwLevel = 5;7 B' C; Q4 d$ F2 i# R- i
}2 k( ~4 Y* e8 `" w6 H+ Y
}: q& v& } q6 G r
}
( d8 H7 U" y: m! \#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, a2 n+ c* R1 }2 {& P
if( bGamma )
8 A6 J0 a# y# U# D" N8 M% I4 [. y {5 s8 n. d0 Z5 Q6 q& w
m_nExp1 = 0;
* x# W" Q" ?2 |& }/ _1 o% D# X7 X: y }& K* }1 [$ q4 p; K9 l0 r" _
( P; B* `+ d- e7 A. Q; Q! I- s ( (CUser*)this )->AddSetChangeJob( nJob );
3 v* e* j* N! h$ n g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" R4 M# J/ _8 ?' \4 ^' h
E2 M/ b* R6 m. G
* T) p% x( n+ V7 r# a* b7 y#if __VER >= 11 // __SYS_PLAYER_DATA
- z& Z7 T2 o/ F) F8 h4 G* f1 U g_dpDBClient.SendUpdatePlayerData( (CUser*)this );4 x" d; N' E5 R K! K# W
#else // __SYS_PLAYER_DATA
+ T, K5 N9 K, [0 L g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 h- T5 w; O% D# p0 J g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* f, V$ s6 I7 q if( m_idGuild != 0 )5 b B% u9 @! v; \/ f
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 j0 p t4 J8 H: E; X
#endif // __SYS_PLAYER_DATA
/ n& i; R1 D# i3 e. P SetHitPoint( GetMaxHitPoint() );
1 |& s- B6 T( `5 c* G# v, \ SetManaPoint( GetMaxManaPoint() );
, ?( a( M- J1 w SetFatiguePoint( GetMaxFatiguePoint() );
; p' U* X7 ^6 P% T if( nJob >= 1 && nJob <= 4 )
) t. g$ U' C- N+ \ {
* Y ^$ k5 O. q! {& [3 H: x m_nStr = m_nSta = m_nDex = m_nInt = 15;7 N8 B) C) L2 o. M' q* H
m_nRemainGP = 28;3 I( R' m; r4 Z- O+ s
}
2 ~0 t/ ?. E ^: d if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 O% S: t3 D4 h0 i
{
, h V& n! }: \. [ m_nRemainGP = 118;
3 }6 w" ^% |. H/ ] l //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;# W8 v! [7 f' ^: L9 s
m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 q9 q! D" g' Y }
% y* B e, K: `' T" g* n if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# Y2 D/ B5 N+ {, s
{
6 N: S5 i# K9 G" J g0 `; a' Q9 o CItemElem itemelem;+ v- x/ D% R* P) ]: M. M
itemelem.m_nItemNum = 1;
( T$ _5 T( c$ O itemelem.m_bCharged = TRUE;/ `# B% P% U* l6 ^2 P. z h
BYTE nID;' A, t( m+ B1 I% h
* k9 E: A7 M# y, E8 V# G if( nJob == JOB_MENTALIST_HERO )
. K z+ g; v. l( n( Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;( Z' Z% D {0 g/ a( W
if( nJob == JOB_FORCEMASTER_HERO )
8 [, { X3 H2 C5 D* k [ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ @2 G( e/ }: ]6 I
& K. Q7 H8 U% S) B ( ( CUser*)this)->CreateItem( &itemelem, &nID );! j! O" w8 ^5 Z& [& U( X7 n
}
; z0 G% a6 T$ B5 W* g) i' \1 m g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! L0 G1 `+ Y7 b* l+ E: y2 F- |6 u ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- B3 e" U2 _( X/ y3 X
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 X& v( ~) _0 P U7 M7 [& R' f /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
9 \" e$ f {% M$ k" C# {& P ( (CUser*)this )->AddTaskBar();*/0 W; l4 {7 u$ O
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 y- w( r8 s! D1 S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* c/ U) R# f( j) n( F3 p8 z% H% { ((CUser*)this)->CheckHonorStat();! O b2 I& V7 W1 ?% b) X' P6 M: O8 v3 E
((CUser*)this)->AddHonorListAck();/ q# \# ^4 r; [2 F
g_UserMng.AddHonorTitleChange( this, m_nHonor);/ a4 o6 W/ D; d7 E0 x. h
#endif // __HONORABLE_TITLE // ′Tà?6 S3 i& m5 Q2 v$ J. \0 z
}+ @, v* k$ ?' B3 _
#endif // __WORLDSERVER
" F/ \2 p9 O+ Q- s: B p} 1 N" X9 |% i2 T. l9 ^
# K) n- d! [- C! U8 j然后你进入functextcmd.cpp并添加以下: j! a' j- X/ X' N+ a8 B6 L
. A1 B q5 a+ F; V% k5 g: i代码:1 H: ]1 |) r- i5 D/ U) w9 ^7 X% \
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): \8 [5 r% ?! n' E/ S6 j* M
下面插入
, }# H: H4 x6 J4 A# Z% Q, K. JON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 E/ A5 V: \, n
8 _9 z: A! I+ d$ |5 U8 `2 `; a
然后你去
4 O" q6 X8 l0 ] F0 y' [/ j9 Z" t& ^
代码:
& b0 |1 x+ s7 O7 j代码
$ T& p* }2 E) R! z$ C4 WBOOL TextCmd_ClearPropose( CScanner & s )
: G( ^' B! i. `6 J- z: H: `$ N{
/ ] c8 p7 a- a- B8 R#ifdef __WORLDSERVER
1 R0 A6 M# r/ f" i5 C- ?# h( Y$ n. _5 S CUser* pUser = (CUser*)s.dwValue;! R, H. _. E! G
g_dpDBClient.SendClearPropose();1 c1 I. E: S+ h' P- t
#endif // __WORLDSERVER0 W% b; |" q: V4 v. y( |2 G
return TRUE;
% N4 H7 Z1 o- G, D" h. x% U- t}
5 O; G% k* b4 J8 R$ j# G下面插入5 F# C/ c: r) O: d: D4 P
BOOL TextCmd_rebirth( CScanner& scanner )) u# ^4 ?; y# f; U }% K
{) j8 k- h' R9 }, o
#ifdef __WORLDSERVER
C5 J6 C( e) Y( QCUser *pUser;- ^8 P U0 [. ]
pUser = (CUser*)scanner.dwValue;
8 u7 Z. F" r" G w( {# x3 K# t4 Dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): W9 n4 H# l! \6 h6 H( ]/ H
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# z% r9 m$ f, t% b: d* j9 {3 d1 C% Melse F" |" q B: X2 ?; O4 y
pUser->AddText("你还未达到重生条件!");
! U8 o1 b1 H! h6 Y: z+ r. ]#endif
1 |8 n: ^* g4 rreturn TRUE;
9 ?, y2 F+ |! F6 O& I) M" S% P} . b$ \& |; T$ R( N6 f1 p4 S' L
7 l) T7 y6 L0 G% [' W& s
4 }/ [* J& L# B6 }, L3 p- f; Z$ u
7 R. m7 \2 t6 w0 r1 Q! U9 }/ U2 t9 |9 T% e/ Z4 r0 b
|
|