|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! C, X, |4 q& H) f R% {0 y' l% L+ p( o) u R/ P; r3 P' V! z
Mover.h- p' V7 _7 i- M" G) z Y
代码:% q. e3 n: e H! G8 B& ]7 k
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% B+ ~! A! G4 I5 v4 Z, a( k# r' u
' U+ v. m `4 g4 y! Q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 ], h) ]8 [' p
. c6 Z6 ^" B* t* s( ^9 Y然后你去mover.cpp添加% o! w& l9 O4 T! M& y$ T
1 `5 V! U" q9 g2 |, N4 C代码:
/ _9 k2 y# J' e' V( J# m$ \void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )- }( c$ b. z. b' F' O
{
# P* X# c; k! Z6 o#ifdef __WORLDSERVER
. V! Z6 X8 v1 f8 L8 {) p // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó X n r" t1 p0 ], M* j
MoverProp* pProp = GetProp();
7 s: W/ ~6 L5 H9 J* O if( pProp )
: ^5 p/ l2 N) `$ [. Q4 J4 g2 l4 G/ U5 P { s9 n) H5 ^' R3 W4 z$ E$ q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )" v! E# p Q4 D+ ]2 o
{
7 A* n6 @0 j8 C. y- U AddChangeJob( nJob );
+ N0 u/ a! F4 y0 \ }else{6 I/ d; b' G8 E" F( R; {
return;
. m, u. V7 z9 l' r G) F8 g! W }
e3 y9 r! H" C int nPoint = 0;, |6 j/ g5 a @; g: Q
if( m_nJob == JOB_MERCENARY ) z, c' t$ C9 A2 m3 f
nPoint += 40;
- g) Y+ H" G# I3 B1 `, Z2 @0 H: H else if( m_nJob == JOB_ACROBAT )
3 ]' L5 V8 q" |! b7 P3 L8 W nPoint += 50;# z( E' A3 x7 G, P$ D+ e3 M
else if( m_nJob == JOB_ASSIST )
q( ]" x7 G8 N0 c nPoint += 60;
( o* O0 |+ f6 W+ z+ n$ L4 M else if( m_nJob == JOB_MAGICIAN )- Z& d. J! V9 t$ \5 |
nPoint += 90;
% O0 q, j( X% W6 V8 u% t else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 p# e, d3 L' @2 `- F4 t. ^2 T nPoint += 120;
5 X9 o3 l d* S8 n) ?, j" ?* l3 M; Q else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* V# d, |$ e+ [
nPoint += 150;
6 T4 @7 @5 W% `9 ]% T P; U8 k" t# v/ U else if( m_nJob == JOB_RINGMASTER )
7 f& a X, {+ ]* y nPoint += 160;
2 u6 F+ d/ D% a( a9 T @ Q/ |1 d else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' z# M% Y& K( n) H; K! e% Y nPoint += 180;
% a. `0 x2 W- a0 C, a% K else if( m_nJob == JOB_ELEMENTOR )
0 o( |) T0 P% ~2 f z nPoint += 390;, q! t7 y |" \4 K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); B5 @; ?8 @2 I; y0 P J6 \4 }2 I
nPoint += 120;3 h9 x8 H0 P) A! C1 M, U- U+ q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 I. ]! ~: u; r5 Q# g8 T
nPoint += 150;* L1 z7 f! |1 O& c; ~1 H
else if( nJob == JOB_FLORIST_HERO )
! K, ~" P: `* z) W$ u7 b" G/ e nPoint += 160;
% J$ ]9 |. d- J+ o. n/ z+ ^ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )3 W$ ~5 V n! n# L; v4 l
nPoint += 180;! P6 B/ O; W5 v6 P. }, T) M
else if( nJob == JOB_ELEMENTORLORD_HERO )' W$ S1 I9 M, y! V! D+ P+ z, d
nPoint += 390;, Y* v. X7 M6 u( T; q+ x, W3 I
# G3 ]- z# c$ y Z+ r8 m4 a5 e) X' L AddSkillPoint( nPoint );
8 @) s% G8 M$ }( w( s( L7 A1 i1 R m_nLevel = nLevel;0 a$ P o& _. k, u% ^7 | {
# d! g& r3 k, d2 s# D( {& p SetJobLevel( nLevel, nJob );; l k9 D P3 o0 X. Z
m_nDeathLevel = nLevel;: M/ h# Y- C" V9 Z- j, u+ f
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% g5 Q. x" r5 l& y4 q, j
if(IsMaster())
1 l. r9 V' ^6 ~# C! p( R0 Q, @: i {* ]1 v+ Z9 W6 L# ^
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% l& D$ t; n) [( u. [
if( nLevel > 59 && nLevel < 72 )
) [( _! q7 N: g) l: [- @+ ?0 k Z dwTmpSkLevel = 1;
& R! q* v( [9 O$ S. Y6 K: N else if( nLevel > 71 && nLevel < 84 )
, E8 [ [8 V+ z( N, V" b6 B dwTmpSkLevel = 2;
* Y2 V( ^# H6 Y8 l else if( nLevel > 83 && nLevel < 96 )
. r0 ~, d9 h# h3 U dwTmpSkLevel = 3;
" A* o s" B3 K1 S0 [5 B C else if( nLevel > 95 && nLevel < 108 )3 `1 ?3 W$ O. g* O6 Y
dwTmpSkLevel = 4;4 R( H/ s' Y3 {; G7 u) ]
else if( nLevel > 107 && nLevel < 120 )" G7 C: P N0 X; X c4 w: m4 C
dwTmpSkLevel = 5;
* `* s# I! V: U for( int i = 0; i < MAX_SKILL_JOB; i++ )
`' J' P0 T$ Y( v$ r {
5 D' y5 u2 ~/ E0 R LPSKILL lpSkill = &(m_aJobSkill);
! @- w# [2 V0 ]" l6 s3 ~- h if( lpSkill && lpSkill->dwSkill != NULL_ID ). |! B+ b/ y3 a( I! K9 h/ Y
{
) L" H- h# u$ h4 P, E$ H# N4 ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); y$ l" s* p; `- B. ?# _
if( pSkillProp == NULL )& e: m4 F1 Y7 c; R. ?% C" a
continue;
! B* h# R5 _" u# y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 M" ^6 u) s8 J- t4 k/ K" U continue; Y; Q& n+ f- X1 i9 D
lpSkill->dwLevel = dwTmpSkLevel;6 d( k1 }6 W6 j& f
}1 e& Q# W/ [" V; j5 C$ t0 U
}0 K: W* O0 f$ G) X+ D
}
" o5 {4 J8 K; {# W9 O else if(IsHero())
* T0 I$ ]* J M7 _! O$ ^0 H% r! x7 s {9 m$ }. L; C# Q/ L
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 n$ P- `% N% L s5 y6 `( ^" S
{
/ k* R7 F& S; r LPSKILL lpSkill = &(m_aJobSkill);
6 F) s. y! Z) E9 I if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 u+ r# ]. h. L; G8 G, V& g3 P% @/ {0 } { o- Y. q7 o9 M# ~& L! @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
]+ U0 D7 r" V0 s6 M1 B if( pSkillProp == NULL )$ v: v, p+ [8 L7 F, U* J8 \
continue;
! _9 [& S( X! s, l* ]2 y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! V& k* J3 s; _ ~9 x& x0 v7 _
continue;. E% J* ]$ q" @' c/ `+ L
lpSkill->dwLevel = 5;" F0 n- ]- z5 y$ [- \
}5 z! z' V4 J' ~& ]' q' p
}1 ^8 D# a; ^; W$ \. d+ U
}) u# F! Y4 I: }1 O6 a" y b" c
else if(IsLegendHero())
3 X9 ^1 P& l' p# G {! g6 B' R7 z% V
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - Z7 G( [, `* I! V
{
% h2 |9 C' Y4 B0 r& h LPSKILL lpSkill = &(m_aJobSkill);
; Q4 @% y4 O# r1 r4 M if( lpSkill && lpSkill->dwSkill != NULL_ID )1 k6 d& v7 N. N
{; c% m( ^3 I' Z# `' z, M" d5 d/ a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # i2 p: W7 A$ G+ X. b( C% x% X
if( pSkillProp == NULL )5 n& b; \+ L. D& ~0 F# E8 J
continue;
% k n& ^0 i) U$ v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 ]# V3 n6 N* \$ K3 e1 R2 V continue;
$ ~1 W, l9 A5 A* k! ` lpSkill->dwLevel = 5;
0 ^8 M7 g b: \) Q1 {" u }3 K9 ]6 L+ h4 b4 Z6 k& M
}
# \; {- u" \- R5 } }. Z" [9 d# f* Y# ~5 j' V9 {& b
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; }$ H. c9 @1 {8 M4 V1 t8 N
if( bGamma )2 F* z' |2 M0 _+ n2 \2 U( G
{8 H& k( A6 ?& Q& N% Q9 e, \( z+ a
m_nExp1 = 0;+ r8 h0 s, P6 M5 a: D& ~1 y8 G
}
h. J: L, e: n& R0 m4 n |+ m% I4 W$ r0 o2 q
( (CUser*)this )->AddSetChangeJob( nJob );
c1 N6 u1 j+ r g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" U/ ~- v6 ]2 x0 z; v2 o
. v3 q4 o) ^# _3 v0 K
! V2 W y+ d0 r#if __VER >= 11 // __SYS_PLAYER_DATA6 r( |; ]2 _& Y0 Z: q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 z! p' x( D# ]8 P. K
#else // __SYS_PLAYER_DATA4 {2 G$ m; e g2 \2 Z
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ @4 h+ E& b6 X1 F+ D3 \3 g g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
z' [+ o; f7 d6 g9 w" h5 w2 p if( m_idGuild != 0 ). d% D9 t2 Q" w6 m) o+ g" W0 O
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 k/ q% b4 {1 A' Z#endif // __SYS_PLAYER_DATA: l: x v- R" x% m4 L- b
SetHitPoint( GetMaxHitPoint() );- q$ U6 u. \" l( f- s4 P& E; j/ Q
SetManaPoint( GetMaxManaPoint() );! Y& K' J& S" r' K+ r- Z
SetFatiguePoint( GetMaxFatiguePoint() );! u$ `; o7 t! \
if( nJob >= 1 && nJob <= 4 )
0 }1 \) C9 f. `0 ~( {4 P* W {
5 \: z6 K2 u2 [, G1 S$ L: r) @. p m_nStr = m_nSta = m_nDex = m_nInt = 15; @ |6 |" t8 Q" T! c( M
m_nRemainGP = 28;
7 r6 f& y: N4 j6 u }! F+ p @" ^' s$ ~! i* {4 v+ Y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )6 a: M* I+ t' `: i
{
2 Y9 B- T0 ?1 U( c# x7 K m_nRemainGP = 118;
/ F9 P4 G, C: c //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;# @; I- ?3 M* L8 }* J+ O
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! c+ B7 S5 ^: h# l( }6 q5 A. n8 S6 c }; i! r$ r+ P, s; T) m6 U
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% H1 K0 b$ y: O( W/ S( ]9 }: s {9 z/ N4 b3 T) p; [
CItemElem itemelem;
1 t4 j) d% @0 J0 M itemelem.m_nItemNum = 1;0 L( h; w! w7 R5 _, P+ O, O" y) X
itemelem.m_bCharged = TRUE;% v6 P6 g! g: d7 l' b; W
BYTE nID;5 Z5 J' n4 j" J, N- a8 Q+ C' v
9 |) W* f1 ]# p5 I" s
if( nJob == JOB_MENTALIST_HERO )
* D! N& r% A+ J- ]7 W7 p! b, T1 X itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
& d4 Z9 T# A/ E' C* g1 o/ M if( nJob == JOB_FORCEMASTER_HERO )
, j% }' c' m, e, H3 T itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;& [1 l6 R" _" }. f w
; N( ?7 n3 ^& D' }1 c& y; b, } K0 Y ( ( CUser*)this)->CreateItem( &itemelem, &nID );
- V2 l/ O* J+ {, P: C2 A7 a }7 M+ i6 X. H6 Q9 T. |
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& P. F- B" W' b4 d, {% `- j1 d# c
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
2 u4 ~6 t E5 Z7 X2 b ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
( d+ i" ~% d+ F$ A /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! N* |, a+ W9 |7 ^' m
( (CUser*)this )->AddTaskBar();*/
* I: G6 r- x Q( z, k6 A. e: ? ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& w$ o' f: \6 Y( p, D( ~+ v* {#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' m1 [& l) T. q
((CUser*)this)->CheckHonorStat();1 ?+ D/ X, }+ |6 f* W8 b
((CUser*)this)->AddHonorListAck();2 }- @ \9 a- o4 _, L2 |
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" N* Z& x4 Q3 S2 A3 ?#endif // __HONORABLE_TITLE // ′Tà?0 |8 B$ ~% a4 O- s3 z, G
}6 G2 U& s2 ]3 f- @
#endif // __WORLDSERVER' I# p) U! q1 N7 d; `: _6 o
}
4 T9 j3 r- v6 S, j
) k% z5 O9 w) [7 x& ~" P2 q4 c# T4 l然后你进入functextcmd.cpp并添加以下
) b2 C+ X4 I a) l8 y- \/ x2 D* F- I! E; f$ y1 O) F2 b
代码:$ }0 V! M$ Y8 `+ v; K7 q, a
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ v H$ m4 x. D# v/ R. ]下面插入+ d* x. L+ g3 y
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 ~4 O& b- p4 e5 T" M
3 T* C! J% ~( G* T然后你去" ~" \; G& N& Z* |. P
0 b& b4 ^0 B% j2 i1 E
代码:
: q8 e v& J( P: h5 p代码
' J. @3 W% H/ ?7 r* mBOOL TextCmd_ClearPropose( CScanner & s ). }- H! A. p. u: h3 A6 D; O
{$ i' v3 ^ s! X& M& {( o
#ifdef __WORLDSERVER5 C( J7 y- ~$ i
CUser* pUser = (CUser*)s.dwValue;
' d& z" ~* D/ l g_dpDBClient.SendClearPropose();# u7 C3 j) `0 t' C; M
#endif // __WORLDSERVER; X) D% n+ }6 L8 U9 _
return TRUE;/ J1 s/ P, ` z' L
}! J4 j% C& @5 [9 g
下面插入
. a, Z/ G1 Q2 c9 W6 J! yBOOL TextCmd_rebirth( CScanner& scanner )' m3 Y/ f3 w' {) y/ v: Q
{
. z' p r {( T' ^) g D#ifdef __WORLDSERVER: J" e' B: n, V- U# X0 g {
CUser *pUser;$ T/ ~3 `- a$ @9 N7 M& ^4 l
pUser = (CUser*)scanner.dwValue;8 ^. i6 K8 T1 a- D5 s- z; b4 d
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
6 O8 j. E& ^' I$ [" }3 `/ npUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& m( F% E$ e& z/ O( s( Telse
8 R; a) `+ L Q* npUser->AddText("你还未达到重生条件!");" u% F* \/ T7 F" ^* }" K
#endif
" v `; E9 |: I6 x' Wreturn TRUE;! b. e, H* v9 ~6 `8 P# a
}
5 h p' Q2 ]( i5 x' C- Q; I, S1 A7 }5 h; V8 _
$ Q. Y% O+ y \( z
* W) _. v" l# _2 e5 I. W* a& P, p% n; b1 s# M1 S7 t
|
|