|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) X# x/ U. n* [) p* W
6 o; C F8 g9 o( v! UMover.h2 {% d |( t& G/ b) P9 j. e! p
代码:6 ~4 {% ~* |" |" t2 _3 m+ \
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& p( \# S8 W8 m- X" d
5 J2 [0 o8 ]1 ?7 }
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 x: v$ u3 s. d: i, g
+ E) y& h* Q2 F& i1 p然后你去mover.cpp添加
W' h) G1 [& z# H0 D8 q. i! O; V8 Z; u9 T9 N( `1 t
代码:
* g _5 l. W( Q# Z- Q% i# Zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 q) P! Y! U! x. X{7 {3 q/ m% r. ]) y
#ifdef __WORLDSERVER! i$ o/ o' L6 u$ X* q' ~, k
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 i# L* {* l5 U! X3 E MoverProp* pProp = GetProp();4 @& j. r! _0 I( { S5 d- |9 H) h3 v
if( pProp )
: {3 u/ L9 S% A: [ { G. d% K7 [9 l5 L
if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 `0 c2 {% o8 b% u1 N/ S& F
{
) n1 i5 t& h$ c5 d% Y AddChangeJob( nJob );
1 Z' E" D* j/ D( |# ] }else{
0 Q9 e4 K8 v) j0 L! ^% _- @ return;* ` [! G9 E+ ^, ~9 f: P3 _" K0 }
}& ~8 n! N( y& J* @! |
int nPoint = 0;6 y. `2 k7 n2 A! U7 V, Z( q2 Z
if( m_nJob == JOB_MERCENARY )
4 `8 L$ Q$ l0 _: L4 `" [4 b7 o nPoint += 40;
/ c) w2 h! s' T v% }7 R) [ else if( m_nJob == JOB_ACROBAT )( U" s V6 I X$ @' Z5 D. P& j
nPoint += 50;3 S) w" [! V* H, h
else if( m_nJob == JOB_ASSIST )* ]% M' F4 ~: x! P) `8 M: o
nPoint += 60;
6 `2 d( D5 |% ?. |! F else if( m_nJob == JOB_MAGICIAN )" b. f. _# H- z' v" [$ y* U5 o! e
nPoint += 90;
0 b6 K* J" L2 C0 ` else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )8 N% U7 |1 ?5 `, ^1 Y
nPoint += 120;
, L- f, t U2 V else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! ]; {+ [" k* E' f4 ]- N* U0 q nPoint += 150;
9 N) J; ]0 i3 [" |: L else if( m_nJob == JOB_RINGMASTER ) j& L* M& [% l% N$ c) L1 |& n( G
nPoint += 160;
& u# }0 h9 e' x else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) O% U8 P' B+ e- o
nPoint += 180;
2 l% A" r4 Q) ^( q- V5 j, a6 V else if( m_nJob == JOB_ELEMENTOR )
% x: Q5 v6 S: h4 Z nPoint += 390;0 W6 J( y1 W" | |# z: O
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )& U- D8 H0 N8 f0 }% L2 K; }
nPoint += 120;; h+ {3 u* k O5 Q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ F* z1 Z1 E6 q nPoint += 150;9 W3 ~* }+ H- C4 x/ V7 K
else if( nJob == JOB_FLORIST_HERO )
3 ]" q- h- a! N- R3 x3 w- k nPoint += 160;
* f+ O0 ]" `* c else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ T- f! k4 v8 X" I& B2 ?
nPoint += 180;
; u$ _7 a/ B2 v- T else if( nJob == JOB_ELEMENTORLORD_HERO )
$ j( V+ b# n* t8 I" Y, ~! o ?3 k nPoint += 390;
! w/ R" K6 I2 }/ @. J( s- i" E
AddSkillPoint( nPoint );
7 `; ~! ~- r% ^) r0 H m_nLevel = nLevel;
( o, r9 m; d* s/ t3 E" H" H M- z* d+ a0 Z: q% u: ~
SetJobLevel( nLevel, nJob );
% P7 \) _" E3 U* W! l s m_nDeathLevel = nLevel;
; w1 H. D5 x- E7 N% Q#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ ?5 D( s& C6 J6 ]4 U if(IsMaster())
" n, j9 x' V3 ?) B I6 J% m9 M8 c6 S {
J; _/ o+ } } int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 ? d$ n3 T" x
if( nLevel > 59 && nLevel < 72 )
) u7 N- [0 B( u( r# M: m" E dwTmpSkLevel = 1;+ [% e K( {; [& t
else if( nLevel > 71 && nLevel < 84 )* O8 A" X6 E; o1 N2 u8 d; b) v
dwTmpSkLevel = 2;
$ T' @- Y4 D9 q) e; M) G else if( nLevel > 83 && nLevel < 96 )
/ g: y' m$ i5 d' Z dwTmpSkLevel = 3;
% {3 r. E* D0 {4 L/ Q else if( nLevel > 95 && nLevel < 108 )
& b" R! P9 |1 r! e/ E3 n) Z/ K8 Z dwTmpSkLevel = 4;
6 e$ X* ?; X; r* q else if( nLevel > 107 && nLevel < 120 ) a L# d9 N% `, B
dwTmpSkLevel = 5;' l) ]6 K7 t. _2 S
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 U8 h* {; v7 L! }; q$ W5 A
{
$ x5 J0 D& M( B2 D; B LPSKILL lpSkill = &(m_aJobSkill);
# Z7 h4 l# ^; w& D if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 O# y0 ^: e( C' f8 L {1 S1 j# S+ t1 d0 |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. N7 r: R' E$ l3 `5 i if( pSkillProp == NULL ). t" z- `! N% g2 x0 b4 j/ W, w
continue;
& D* U6 v7 }) t {- f7 | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ z- n% p5 }1 o+ n continue;
$ H N0 V1 D8 K: [9 i2 b( ^) w4 j lpSkill->dwLevel = dwTmpSkLevel;8 R; {9 H/ C& J3 k
}7 H/ b. ~7 b+ y4 `" ]) U" L8 G
}, \& p b7 T e
}7 ]8 |+ e: ^! F# ]7 ]! P3 [
else if(IsHero())0 \0 Q& r$ x# Q5 ~
{7 ]- ~" I9 G% E5 m1 _
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, t* _9 U$ H4 D+ K/ q! p+ _0 e { 1 q* d1 Z6 G |6 [! D! [. U6 I
LPSKILL lpSkill = &(m_aJobSkill);' a- q9 ?) n* A0 p
if( lpSkill && lpSkill->dwSkill != NULL_ID )* i; Z$ e5 r" N0 I+ R5 @
{% ^, K) {" k3 ?1 p* G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 i/ N! }" u3 X/ y+ K if( pSkillProp == NULL )
7 J6 K( C/ u; u- \5 Y x continue;
! G) @+ a2 L) c) b6 ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! u e. S3 k2 I6 H! Q6 @* a9 W/ L
continue;3 n D! R! P% k# h( s' `( `
lpSkill->dwLevel = 5;
! Z, G8 n2 [: g# J% l. M }3 ~& C4 H0 J t) g) S9 ^/ R5 T
}
" S/ W4 F( s9 e: F6 t: \# e. L }
1 r7 d9 m& Z6 O- S+ q9 ?( i else if(IsLegendHero()): `3 S' p. s8 y& U
{
]# x9 `6 v+ L1 ~ for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 x9 |$ c- @7 C1 l/ o {
, N$ X4 U4 }+ s- j LPSKILL lpSkill = &(m_aJobSkill);
4 }8 E, S) C* Z" i9 `+ v( f* E4 p8 q% |8 A if( lpSkill && lpSkill->dwSkill != NULL_ID )
" Q/ R2 J5 S3 l7 w {
" H) @0 C7 L% w X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 F8 ?7 T+ A+ O+ Y if( pSkillProp == NULL ); L0 s4 o! G" O$ W1 z7 x' J- ?
continue;" f$ u5 s8 r+ C3 P- w2 G3 F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 R9 {! {; r+ n3 e
continue;4 x# I' j1 \" D& i' L
lpSkill->dwLevel = 5;
; R9 \% g' n1 M }8 m' N4 @( I6 C! i
}
3 A w: T3 J5 h% B }1 F4 r! Q: L: h R _
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 V7 I/ F; J _6 R, ?
if( bGamma )
c" f' W* `8 W" Q {
9 T# H4 @7 Q9 [7 @& a( U m_nExp1 = 0;
( ~- R" B7 w. g u% D' h }
$ W5 e9 Z3 d# p/ L5 p6 r' R9 l" _. e8 b) ~" _( ~ q0 H/ [: A
( (CUser*)this )->AddSetChangeJob( nJob );
6 A3 g2 |+ ?- Q G5 } g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ R% w& l& i) J! @. Z/ H+ C. r# p9 S; ^
: D! R8 {. F. s% l
#if __VER >= 11 // __SYS_PLAYER_DATA- X3 Y& v+ m. g) x5 g
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" M2 h W0 ^/ I- P: z E
#else // __SYS_PLAYER_DATA5 Y% L2 T2 ?2 `1 z$ K
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ r" p7 ^) i0 d
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, n- K9 @4 h( [. h* i' M$ a if( m_idGuild != 0 )9 D& P( z9 M4 [: ~: F3 n* a
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& r0 l6 [9 A6 b5 ?
#endif // __SYS_PLAYER_DATA
+ i* r" P1 C' g* u SetHitPoint( GetMaxHitPoint() );
( W1 w2 D( s/ ~ SetManaPoint( GetMaxManaPoint() );
' `& T; J" }- ~1 d$ `0 P8 s SetFatiguePoint( GetMaxFatiguePoint() );
- U) k, P% x5 j; \; c, Z) {% F if( nJob >= 1 && nJob <= 4 )1 M$ p4 Q1 [- x% ?
{$ y3 M* U. E! ]( |& l
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( X3 k' {7 X2 {( U/ T m_nRemainGP = 28; T, U9 N; @" u5 Z
}
5 @5 J" y/ y! v5 j' F if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 ?. c% {1 q/ F8 t {
: u9 R" K: [. P' j, {$ D" }7 s4 K m_nRemainGP = 118;
/ W4 Y( H3 [7 |: E# u: _' B //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 M$ ?: q9 ]6 R( u( C, T/ I3 M9 p m_nStr = m_nSta = m_nDex = m_nInt = 15;/ p! a! Y8 i" k* i; _
}6 C4 ?4 b# Z" U* S0 h
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( G( H1 p+ o, S {
* Z+ S2 _+ l4 k" `+ G CItemElem itemelem;
' J$ u' V9 {/ ~& ~% z t( H itemelem.m_nItemNum = 1;" }) R+ }! P3 g4 S
itemelem.m_bCharged = TRUE;+ q! s9 ?) j$ V: E- N9 k. R
BYTE nID;
5 f5 p4 _ t# I) g4 n$ t& z9 x
if( nJob == JOB_MENTALIST_HERO )
) I7 Q+ N/ e3 Z. C+ ^* W5 W itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! t K4 ?# R" ^ q
if( nJob == JOB_FORCEMASTER_HERO )
8 }; ^) G6 f- m9 c$ ~ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% B; t* Q& q0 }! L
$ G# A4 i$ u, P$ p9 c
( ( CUser*)this)->CreateItem( &itemelem, &nID );
/ V+ m6 q4 V& ^7 G: Y- [* W2 b }
+ q5 w- w4 n3 K9 n! a \% e g_UserMng.AddSetLevel( this, (WORD)m_nLevel );+ x/ T& g/ R ^ ^
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: v% g( f8 u) w4 j9 M5 O
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );! v F; G: {& [' z q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 [. M+ d: u' d. @. l$ t7 V ( (CUser*)this )->AddTaskBar();*/
# v' B) N. k% p2 ?4 Y7 m8 y ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" [" ^1 h% | O. u
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 G2 X3 `* }: i! G" g {; g ((CUser*)this)->CheckHonorStat();
, T* W* _7 [2 g7 `+ t ((CUser*)this)->AddHonorListAck();5 k- v! {" k( J) }
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& J, H8 o2 t3 W8 ?. K4 Y$ {$ c' A5 \#endif // __HONORABLE_TITLE // ′Tà?
% R9 A2 N* G9 V& V& Q# W! q& l& S }
! L! q; a; T E! W) u4 y" u G' p#endif // __WORLDSERVER4 u( _/ J4 w- Y& z0 u' a
} % ^! ?& Z; T8 z5 W$ C& z
8 I# F- C6 ~8 K然后你进入functextcmd.cpp并添加以下, Q0 ]! `; ]3 @9 w( x5 W
$ v3 J# v( |/ [! {* `7 v代码:( l i- {, W5 o
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
) b% q* l' L7 u9 J/ N( o下面插入
- N5 ?# Y. J0 x1 v9 |" Y3 RON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ I8 y! R; N( W
) }+ Q5 C: g5 V' @ O7 W
然后你去0 d- u: u5 L( x, u- q7 t" j
- x$ L) O- n0 ~' W( ?
代码:) }, h7 I5 W& @4 H5 j
代码7 ?9 _/ i1 S' S+ n6 H5 _- _
BOOL TextCmd_ClearPropose( CScanner & s )
6 F6 q& B$ i1 l{
* E+ x; U4 d+ @& i3 k4 G#ifdef __WORLDSERVER
+ R1 S+ g W8 p: U7 S CUser* pUser = (CUser*)s.dwValue;
8 I% x' x" y3 [5 n( ]# U+ h" Q g_dpDBClient.SendClearPropose();
8 ] `. P* c% D4 f; b5 W, z#endif // __WORLDSERVER
7 F2 L7 u3 P6 f' u0 Z; ? return TRUE;
: ^- q- g) J" o3 t}
7 I: H3 c$ |7 v) R6 a+ T5 Z下面插入) P- C& u7 }/ D
BOOL TextCmd_rebirth( CScanner& scanner )2 O+ b! X. c7 i
{$ U+ n. u6 n0 F6 |5 K6 h' |5 P
#ifdef __WORLDSERVER# j& m' t2 E9 _# y. D
CUser *pUser;
1 [# x1 A2 U `9 [pUser = (CUser*)scanner.dwValue;
$ G- c" U" m0 e" @$ p5 j+ xif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 E$ @! ]- N- w+ j% i. i4 SpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);/ M& a- `/ n7 Y9 w1 `
else
- A7 a4 P( `8 A" A0 s/ BpUser->AddText("你还未达到重生条件!");
" n+ M, X6 n# l O& p1 ~( _+ y, d#endif& O! G3 X4 x& K' h
return TRUE;
9 z8 q. w W) c8 |5 t- m. }} 1 V2 \: ]; p. C) X* W- h4 U
2 i# a) P- [* O T; v
2 h8 _0 {5 w; j. H: @
( c* ?% Q9 O$ J; G5 H* u( C/ R) R
|
|