|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel5 |3 m) ^5 j( \; U" ?0 O7 P9 e1 ~2 F
6 U+ H2 d) P1 X% j% uMover.h
( D7 f6 [7 g6 t9 a3 o5 D4 @0 j8 h代码:5 h: D# K: D! G/ V. @; z. o! B! e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
]+ h0 O2 G* K- L e6 g
$ C7 S% |6 D0 h7 I l0 s下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : t. j( U8 \( _3 _6 J0 `
3 g2 [: [: U3 ~- u/ u' ^然后你去mover.cpp添加
F2 O! @' l! K! q0 q
' o9 q2 V0 H8 L3 P代码:3 M" u0 V8 ]: e9 C+ q+ J% u! [
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 ^ G& ?) I% Q) c3 [" e w' u1 b{
$ U/ g6 p0 u! p! n. T; T% P5 r: W#ifdef __WORLDSERVER
+ o+ w: X, S8 X; ` // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
y c- N e- a2 h8 V MoverProp* pProp = GetProp();8 G. Y; V, C8 g4 Z! D5 ]$ j3 G
if( pProp )+ B+ b/ y& P8 O/ R; R6 A8 L4 P
{2 \+ u; {; |0 P" A- z
if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 F& j ~) h; c- o. q- a
{
& Y4 m3 l( E, a2 w1 z AddChangeJob( nJob );
, a- j; t& r2 A s }else{
: k) P, R3 J% [0 p3 M return;
: G, y& t- m# j5 \7 Y% ~ }
N& I' j( y4 t# T. M int nPoint = 0;- R. [/ P4 k6 b( i; A
if( m_nJob == JOB_MERCENARY )6 w$ l, j, J( h2 k ~2 P' k
nPoint += 40;
; C# P' q+ j+ G! c% | else if( m_nJob == JOB_ACROBAT )' e+ @" x- e6 H+ X- t# |; b
nPoint += 50;
" r9 J/ t0 L% p B6 [ else if( m_nJob == JOB_ASSIST ); I' {9 L/ w2 C4 V. y
nPoint += 60;
4 i" _& `+ J" l; c% c0 { else if( m_nJob == JOB_MAGICIAN )* R6 e+ d1 r/ w- D2 k8 h: R y
nPoint += 90;
0 R3 k; n O" r& l else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: Q) S% _" [5 G- d nPoint += 120;
. p' ?" C. p: z C j% f else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ R8 U4 ]( i" J3 ?* {0 r) v
nPoint += 150;) p" R% K* B( X0 Z% d N
else if( m_nJob == JOB_RINGMASTER )# s8 d3 b- K) s, e2 c" x; j
nPoint += 160;
; k4 r/ D$ `0 S- S' b5 s- M else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 I; V1 C7 e0 N2 y nPoint += 180;
& ]4 ?8 _! K- _$ ^ else if( m_nJob == JOB_ELEMENTOR )
6 _' H9 d$ K% D5 K7 Y nPoint += 390;1 u1 I# Q+ E' ~. G; l' e
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): Y! m4 s7 U! M
nPoint += 120;# l% B b% d( ?2 a0 P5 d3 v( u9 w
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 T( L* }; n3 u& i# v( C1 Y nPoint += 150;8 o# M9 X1 X% B K* U5 j( X' o
else if( nJob == JOB_FLORIST_HERO )
- Z. u# c: m9 o, F nPoint += 160;" q/ m' ~5 t4 B/ y, p" R
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
+ _( G' Y3 ]$ X" @5 Y E- z nPoint += 180;1 j" f7 x/ ~* {* |& X
else if( nJob == JOB_ELEMENTORLORD_HERO )- ~. S3 X' U7 O+ v- o
nPoint += 390;
+ V+ w% I8 k8 d" v. g1 ]
/ E5 ^4 |: [% a8 a6 p1 h% i9 i AddSkillPoint( nPoint );
$ F7 @0 u) Y ^) U# q/ e0 N m_nLevel = nLevel;
7 `8 W7 Q8 W' D/ t7 s: s+ _
6 `7 r4 `: J/ W1 B0 r SetJobLevel( nLevel, nJob );" j! Z/ h$ i4 o# M- O
m_nDeathLevel = nLevel;: R+ x! Q' w% Y/ I6 |1 o# N
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 b$ F, {, W, }3 v
if(IsMaster())
& B" }. E& f: K9 d6 }$ b) D3 \ {1 Q" c" e& t. l8 e
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ ?) k- b8 A/ F; A$ [: p if( nLevel > 59 && nLevel < 72 )
+ k' _& b8 ?+ Z dwTmpSkLevel = 1;3 f8 u# K7 u9 M1 n! I/ d: n
else if( nLevel > 71 && nLevel < 84 )1 [: }0 g, n# P. K+ N
dwTmpSkLevel = 2;
; n, Z* d3 N% N: A' O G9 F else if( nLevel > 83 && nLevel < 96 )8 ^' \8 K# {+ Q) c) e, ]3 p
dwTmpSkLevel = 3;/ z; p, I. {6 `$ y
else if( nLevel > 95 && nLevel < 108 ); P: K8 ~ i( u, t9 z9 F& {: q
dwTmpSkLevel = 4;
' X! h1 D1 U0 T; }8 f2 T) ^ else if( nLevel > 107 && nLevel < 120 )
8 P' a. f5 }2 F$ U7 C; C6 S# B1 I dwTmpSkLevel = 5;* V# a# |; W) F
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 e" K% d" m& M+ H3 t' n {
7 V/ H# m! W D" d5 s LPSKILL lpSkill = &(m_aJobSkill);
5 R3 ]2 B6 r9 N' V: o if( lpSkill && lpSkill->dwSkill != NULL_ID )( N( m B3 t' c( y1 @
{
) l0 g7 m1 m, ~6 ^9 O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * a$ K: X3 Y; ?: A0 p* q4 L
if( pSkillProp == NULL )
2 g; W( r" S1 K' ]- c: a) ?. G continue;! o8 ]6 F' n$ I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 g% v c0 G& S! f5 {8 M/ a5 d. Y
continue;
: z' F) C! l( c7 L _ lpSkill->dwLevel = dwTmpSkLevel;
0 W" q* k/ i+ D }
& P) H: c. Z4 r( X }7 W V& G& [$ ?; [
}
( ^7 o P1 f5 k# S6 X0 t6 p2 P else if(IsHero())
8 l: q/ t8 C! Q# \- g( d* V {
7 D- }7 T3 t' i5 I8 y1 L for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ ~( i: {" Y: d { 7 M( [* i! m) T% R
LPSKILL lpSkill = &(m_aJobSkill);
8 G5 K6 _4 K. p- m+ N+ M if( lpSkill && lpSkill->dwSkill != NULL_ID )
% r* d, V9 V2 K1 h$ w {1 G! z+ D+ I9 a% `. u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 G3 ^5 O, t; ~- x if( pSkillProp == NULL )0 @, u& u7 u0 C. ], n* N
continue;5 X. w5 I4 G: ?* m+ c3 b% {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! {; {$ k$ i z9 E) j continue;
& a" \# M4 C/ `8 g! N" D lpSkill->dwLevel = 5;! U2 ~) W& ?5 _# C9 b- F
}# y# |! L$ u3 [: r* R4 Y! P6 T0 n
}9 g8 w, V" ?, C/ D5 Z% q4 F" `" T
}! z8 y$ _" F" S; h1 {
else if(IsLegendHero())
3 w) L# `$ {: w- s& F- A$ D* j2 D1 L6 F {
/ j9 B) s: A+ T# N- f for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! ], C2 y8 s0 s( H
{ 7 `* `3 M4 M; e2 Q/ b, y. o0 ~
LPSKILL lpSkill = &(m_aJobSkill);
4 K, a6 ?- k3 m) A if( lpSkill && lpSkill->dwSkill != NULL_ID )
* m7 J6 r. l. H9 ` {% m, z8 h/ f, G+ ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % H+ J& |$ T# g" L( T: I
if( pSkillProp == NULL )
' w0 n8 ]2 I: u/ M" ^) K continue;
- c, h% Q& v9 S, S, m! L: M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ r2 u% P# q' _8 V' Y
continue;3 d) j9 y: x9 U' U& L& Q
lpSkill->dwLevel = 5;
: t$ s* N; i0 w }
8 H, i9 Y- w: P! x6 K }3 o- n3 ]7 @& Y. j4 _& N) ]
}% j! { }, U% ?- ~
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 u* r; _' `) i; X+ C. c
if( bGamma )- ~# w0 J4 K r
{
6 H3 q4 C& c+ O/ L( X m_nExp1 = 0;
0 H; U) Y$ e* |" C' _) r }$ B& ]/ b! c$ I# Q
: L7 C8 T- m# K2 _ ( (CUser*)this )->AddSetChangeJob( nJob );
% U# D: E) }2 ^ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 I/ K: {( ~- p7 [. u( s- A, d" w! Y( q) n4 g5 g
1 T k9 W0 ^* e$ A, i2 C9 ^
#if __VER >= 11 // __SYS_PLAYER_DATA
% n$ I, ?8 W0 j1 U g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 f- d* d. C1 ^) D#else // __SYS_PLAYER_DATA
) m: Q% B5 r) y3 p7 d, C# K g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ W* P; f+ E! [
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 p1 T3 r- k8 Q: L& W* ^
if( m_idGuild != 0 )0 r) |" q. _) l) _3 Z$ R: A" C7 }( V
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 d5 Z* G- o+ Y! N& g; ^4 G8 @#endif // __SYS_PLAYER_DATA% ~3 U" n5 g7 {: z' K
SetHitPoint( GetMaxHitPoint() );( |% H9 O0 u$ D# ?! K* g$ J! c$ x
SetManaPoint( GetMaxManaPoint() );( H! Z' O' ?5 L: P: n* w
SetFatiguePoint( GetMaxFatiguePoint() );. j2 ]$ b) d/ F
if( nJob >= 1 && nJob <= 4 ) n% ]0 @" |8 w- S: n2 Q( @# y
{7 g" e4 I* g+ O9 f, x5 I& d
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 c) O# M4 f$ n9 l/ }
m_nRemainGP = 28;
3 ^# \' t3 d i5 U0 L5 | }5 s4 C$ Z, |) b/ ^+ l, z7 ]
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 ]9 C; H2 m: k" E/ Z, O {
7 `& b- \9 s9 U2 }/ I% g- [ m_nRemainGP = 118;
C2 o1 l7 }. d V //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ |- ~" ?# K/ C: u$ F# M2 ]/ b( l& E
m_nStr = m_nSta = m_nDex = m_nInt = 15;0 Y* c3 q+ V" @2 ?! Z( z
}
' O8 A$ f3 j6 R, Q5 Z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )9 S: Z# ]" F" A( X7 \* G
{
9 z% S$ j9 L3 Q2 o3 ^( m CItemElem itemelem;
: f8 G2 |2 n4 W* u6 q h itemelem.m_nItemNum = 1;
4 R q* K- s$ i1 v' {( l itemelem.m_bCharged = TRUE;. u' U# S9 H7 |/ f- l& l% `
BYTE nID;, {( ^- k* b* k; P2 j
- l L% k. @$ F0 E if( nJob == JOB_MENTALIST_HERO )
$ j& r( L' x- P4 s itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 I, T) x2 {: [/ S7 c( Q1 ~
if( nJob == JOB_FORCEMASTER_HERO )
# |0 N. V& b3 W itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 {2 j6 J& W; t E5 H
5 t5 p% `8 y5 A9 r
( ( CUser*)this)->CreateItem( &itemelem, &nID );* i# H' U' b# h5 q" e
}# U% T: J1 y& \# Q7 r, @) S. M
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 a/ I$ J: J" B$ F# }6 X
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, \7 y# k H: A8 x# g; |
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: I1 l8 y) b& ~( k* @
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); H1 X/ H9 |' ]. ?/ L* y
( (CUser*)this )->AddTaskBar();*/( Z$ i& H s r/ E8 c
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ L* s2 n: j' P- ^( s" H6 ?#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 x/ P* V/ P; ~ e4 y ((CUser*)this)->CheckHonorStat();
1 U0 s1 u; a0 _* E ((CUser*)this)->AddHonorListAck();5 z# \2 r0 x W; H4 l
g_UserMng.AddHonorTitleChange( this, m_nHonor);8 D2 Q% O8 M6 c, B
#endif // __HONORABLE_TITLE // ′Tà?
; u) o1 @$ C; G( _! y, c& f }
7 F/ g6 f' X5 H* s/ c5 W7 T#endif // __WORLDSERVER- Q' J; M* w/ \+ o5 q4 d
}
# f8 @! U3 {6 n# a# t& U* [2 ]8 p, e$ E* m9 k( ~. d
然后你进入functextcmd.cpp并添加以下
7 t4 x' ?' R$ r. f7 K# D
( n( M0 t' x7 L5 ^' Q. ]2 U& M代码:" Q; n9 a$ ~$ _( u% M# P
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ X4 `. d$ b; C+ A3 v9 ^下面插入
3 a+ ]( v! b/ w3 VON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 u. }$ H% a9 b) j$ ^7 p0 T) I; N8 @* K9 v/ Y7 F
然后你去
3 j1 M5 O. I. |* b3 s( l; ~7 u% O% m( d
代码:
" ^: O7 j6 ]9 T代码
8 K" A- I# O% G9 w6 TBOOL TextCmd_ClearPropose( CScanner & s )
7 |* `: b' j' v9 w4 c5 d$ V3 `6 o{) \+ ~, K3 E v: L3 B: f$ b9 \+ p
#ifdef __WORLDSERVER+ k* \4 v- a! s0 G6 i8 U) D. u
CUser* pUser = (CUser*)s.dwValue;
! l B4 b( D( Q+ [9 l g_dpDBClient.SendClearPropose();0 O( B% |0 J7 }
#endif // __WORLDSERVER
6 h8 V. Z* s. s6 r return TRUE;' f! c+ w: g, E* C8 d
}! @" d- L- d: W
下面插入
; M6 o9 Z1 d( R, |& h" F( E$ cBOOL TextCmd_rebirth( CScanner& scanner )& R: B! N1 h, n
{
+ @! _* K O' t+ Y#ifdef __WORLDSERVER, m( ~7 _: Q& P4 B3 u
CUser *pUser;- ]( ]; X3 h- [" D8 |; x# |
pUser = (CUser*)scanner.dwValue;
* P* Y" G: t% Y( y$ Q- y7 eif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 d: `' p. C; v# ?9 m2 B! W$ o! apUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 U( U( p2 @' s8 p5 v. {& n- V
else
' ?2 ~: C3 _$ ~# a' X: ZpUser->AddText("你还未达到重生条件!");
$ k, e ]/ z# s' l- p* c# ^#endif
3 _5 P: g3 n$ E4 m( x: creturn TRUE;
3 m9 w: E& ?# E* }& F) d# u+ N6 f$ L} * q1 f0 r0 T/ Y5 J1 w) @* N
1 _( d G4 J" I4 L1 c- }7 }# @0 ?+ n o, d
! T4 f4 o4 c |# a- X
) i6 c. u d' h7 v2 I4 \& h2 @
|
|