|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, S6 b& \- P4 E- v3 w
|* y4 Z+ s6 Y0 a4 B9 SMover.h
0 g" R/ X; n( r- L( Y2 @代码:
1 y1 B- z8 q6 m( Z9 y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü- Z* B+ z0 o! {- v
! v* ]5 }3 E4 g
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 Y6 o q2 ~$ Q2 \ c
+ _ @: {' G. R$ ]9 v; K6 v然后你去mover.cpp添加
: T3 ?. Z; q) t8 X" Z' z/ m, x$ K9 {( ]
代码:5 Q6 t) v, c$ S3 l) j0 o
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
. A3 d: ~1 L8 |{
7 g; y3 H3 r" F* `1 ~& p1 J#ifdef __WORLDSERVER
. W* b% Y3 ^4 ~5 S // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 z3 \2 }0 x3 ]& \& f
MoverProp* pProp = GetProp();+ f3 h- x$ N2 ]# B. A9 \- N
if( pProp )
9 d7 }: n- U- n: O- N2 v {
. R/ _7 a4 O3 A. J6 M if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 k& `/ a* A5 R+ M A {
" x0 n3 S% o. i8 E% V AddChangeJob( nJob );
3 d5 \. m y1 H7 `$ w+ C+ m) |( d$ D }else{7 ]4 |3 O/ S5 @0 d1 J, d
return;7 b# m. N; B$ k7 `* G' r
}; E4 }; B1 p5 c/ X2 g$ i% D1 t/ }
int nPoint = 0;' c: Z. F* f+ G5 l3 G2 j
if( m_nJob == JOB_MERCENARY )' s# [ |, e5 V
nPoint += 40;; C& d6 Y' ]. m) T
else if( m_nJob == JOB_ACROBAT )
7 m7 u: [. |3 `, D- G; d nPoint += 50;
/ ~, g4 i! n" g! r4 K else if( m_nJob == JOB_ASSIST )5 @; B& U# |* I7 W7 @4 j
nPoint += 60;
( S0 Y. T9 H9 \7 ?3 b( i9 a else if( m_nJob == JOB_MAGICIAN )
4 M) F: {0 F7 L7 s7 g) p+ k nPoint += 90;
$ A+ p. S' X( o: B else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 m8 W, x* H% X: [% I nPoint += 120;/ `) y E% S2 j8 h# ?- d
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
1 v% r' R2 M5 F" F- X nPoint += 150;
O/ p5 J% C/ L9 l# B else if( m_nJob == JOB_RINGMASTER )
% Q" N% P0 m( ] nPoint += 160;, T1 ^, }& h3 k! B9 v; A6 J/ d
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 V& _7 ~; G @- ] nPoint += 180;3 d& T! _( r# e; y! ?
else if( m_nJob == JOB_ELEMENTOR )
% o5 [: V2 U4 b8 ]/ ^& k nPoint += 390;: a* R$ [ w% j! \' K6 v& q
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ x& ~" I# P, G: @! |( o- G+ v) m! d/ M! M nPoint += 120;
6 [# r& [3 b( D$ r |& c% }! H( E8 @ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( }8 p8 l! M7 v7 @7 e nPoint += 150;0 D; M& K* C" h7 d b2 s
else if( nJob == JOB_FLORIST_HERO ); [. |) Z6 L$ w& ~
nPoint += 160;9 e* F( k, `6 i( L1 |: {6 \
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
5 ?* U& a4 e( e. K2 y2 U nPoint += 180;
5 G6 l4 j8 @, }* g8 J3 [ else if( nJob == JOB_ELEMENTORLORD_HERO )
% p9 N% N/ `" S; W( g nPoint += 390;; n; x8 D$ q2 c! }" U0 M
% z) S) s6 j) ]0 A5 e ?# d1 ] AddSkillPoint( nPoint );
6 \; ^3 o7 b; m" J8 F. K! F# N( V: m m_nLevel = nLevel;1 P h( g0 S! ]# x
5 [+ E( q3 m% f& ^( Z* p0 [
SetJobLevel( nLevel, nJob );7 S: ?# v! X, V) {
m_nDeathLevel = nLevel;' P9 z4 k! t2 a( u
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 r# J Q& q. i0 P: c if(IsMaster()), R0 [ @/ w, M, A; b
{
* @: j5 B2 U$ w" i int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, Y) k+ O! a1 f
if( nLevel > 59 && nLevel < 72 )9 ?3 ?; e+ f% o# `5 v7 h. Y6 W I8 g( h
dwTmpSkLevel = 1;" `2 w! K+ Z' ?( C) Z7 F2 i
else if( nLevel > 71 && nLevel < 84 )# u1 S5 c* E" m( i3 e* u5 X$ E& q
dwTmpSkLevel = 2;
- T) J! a" L1 N/ }) G else if( nLevel > 83 && nLevel < 96 ) X! [6 C6 ]2 }( {, p# V
dwTmpSkLevel = 3;
6 @2 W5 ^8 f) l6 X; O: f; u& ^ else if( nLevel > 95 && nLevel < 108 )
9 _, |. J$ y9 z( q2 u( R2 I dwTmpSkLevel = 4;4 o" [4 O$ [2 H: h R) ]! w
else if( nLevel > 107 && nLevel < 120 ); u* n# z% M5 |, o7 z j. w: `
dwTmpSkLevel = 5;
. c) q! N9 R( c2 Z- N for( int i = 0; i < MAX_SKILL_JOB; i++ ) , b. [' D( D, y
{
0 }/ G5 X9 S5 t8 x LPSKILL lpSkill = &(m_aJobSkill);( \3 D1 m/ @6 i; H, x3 K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ {8 V+ v9 h- U: b! q; C {
- K; u6 \& S* l! s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 s& G* a7 ]( W/ k* G8 |
if( pSkillProp == NULL )9 p& d8 ~+ j3 i* P9 {0 S0 k( \5 r; }
continue;. u: H+ x& J6 ~6 j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 i+ V" u1 C* t3 x continue;
4 b# J. z8 E$ l3 @8 [' J lpSkill->dwLevel = dwTmpSkLevel;7 w9 }4 ^/ x) N) }
}+ L- w) ^0 ^* t
}
5 ~9 }) \9 l: D2 D8 K3 B+ J }$ d; a$ V7 m) ]( \6 [3 g ]4 p8 y# `* ?
else if(IsHero())# {8 Q- t) f G3 P0 a* X( y5 W/ m8 I
{+ } f$ s( Y& N' {2 v
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' Q' D0 C3 x: K+ B { 0 X0 R' e1 E2 U1 _+ Q1 ~
LPSKILL lpSkill = &(m_aJobSkill);+ v1 U8 `6 c/ h6 R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 P7 k; N, h' {9 V {+ X1 d# X' U9 k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; Q4 d7 z) z b
if( pSkillProp == NULL )
' }( O0 B2 E# w8 C continue;! {. ]: b+ [7 N X2 w8 ?, w# t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, a. [; S8 u; ~4 |! P continue;
& T$ I: C f4 D- P0 O8 y lpSkill->dwLevel = 5;
7 H; j4 C7 B8 |. B( z8 X {+ m1 z }& U" h6 U: e7 ~ w) f! H% [
}
/ m$ G l! N3 C6 K9 Z }; c% l: S" ^( w f; I* J6 {
else if(IsLegendHero()) x" ^! l: G% R# Q4 Y& ~
{
( z# T8 Q! ?/ F, P for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 u1 D; {0 A2 Q- o. w { ( x/ k- \: ]- M5 r9 I% o+ ~ Q
LPSKILL lpSkill = &(m_aJobSkill);' L0 ^! V4 r$ W
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. q6 f) ?7 V) g9 }* w, n/ L: A( Y {4 P# S. r+ G, a" z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% l' t6 U- @9 M$ S if( pSkillProp == NULL ). m; Q: c) D( }1 D) g
continue; P" m C7 g. a- @9 H- A( Q5 g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 e1 C5 Q' ?& ^" m+ O5 Q9 d& } continue;, p% f2 ?0 ^' b
lpSkill->dwLevel = 5;/ Y+ V6 @* g9 Z6 x& g! S$ c
}
+ g6 O) x7 o8 j I6 a# r: x) R }
5 T9 c$ m! A( l3 o8 Z' ~( ~ }
! N) ]0 I$ O" f" p( V U o#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 ]* B, e/ `" c' k. G4 ?1 R* {
if( bGamma )3 A9 s# S" A8 R; w i
{
1 z5 B6 ?% @4 Q. | m_nExp1 = 0;& T6 P/ T3 H+ b2 D! _5 Q, a- Z
}4 W* O, g- A0 P" [6 t! M
+ A. l# `' d/ f) q, a* y4 L3 s ( (CUser*)this )->AddSetChangeJob( nJob );$ ]% C- a6 T6 c, q8 V
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ s( X& |: Z/ @9 a0 o4 L$ B; o4 D3 p' R. N, C4 ~- {9 Q
/ H. ~& d5 Z4 Z0 L! U#if __VER >= 11 // __SYS_PLAYER_DATA
! `- i; Y( p1 ~# U; f S0 F g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 @% W& m ?4 a: E3 u' x# ?#else // __SYS_PLAYER_DATA
! N4 a7 v: h0 q% B! u4 }' H" s6 v g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 ]) C, j, ~, }- |8 o
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 P. m! W+ C) y1 {' t: Q) u
if( m_idGuild != 0 )5 Z0 T6 R! q3 s4 @: W5 B( K
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
+ B; y* [& K" q1 [8 Z#endif // __SYS_PLAYER_DATA
' y- s$ A! H- o% t SetHitPoint( GetMaxHitPoint() );$ x- {* X, V# }4 W8 ?7 ?
SetManaPoint( GetMaxManaPoint() );
) g' c; a9 T, x; j0 y SetFatiguePoint( GetMaxFatiguePoint() );0 E( }3 N9 x4 y" [: A, D+ X
if( nJob >= 1 && nJob <= 4 )+ W; b8 B! `( s' g J* t
{9 {# o6 {+ W# r: i* Y# t
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 `) H& W, V7 Q4 n, Y. o
m_nRemainGP = 28;
+ G7 w/ a& q# {9 M6 M3 w+ E }
/ }. Z. [, P6 I& E+ B; X q0 i if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( b9 U0 h2 B: F/ i9 P0 v }% ] {2 S- m1 j7 U( _
m_nRemainGP = 118;0 S- y# o: q$ @# t, C1 B: @2 k
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 b+ A# h: a( L4 D m_nStr = m_nSta = m_nDex = m_nInt = 15;3 e, B3 i- w- W1 M
}+ V! O" a* p& z0 [
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 h: e" Q ]3 U9 H: [1 V+ k {
" Z" L0 e% H v4 | CItemElem itemelem;4 V4 l, W2 V# A: j+ \
itemelem.m_nItemNum = 1;
+ ]/ h% ^, C. _8 [ itemelem.m_bCharged = TRUE;
; y) v8 ^5 ~1 \& T; \; a BYTE nID;
, f7 s6 w+ r" O: d# o4 e) |6 o5 F) `; P$ e3 G
if( nJob == JOB_MENTALIST_HERO )
+ Z" g) }5 S8 r8 J o itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;7 t3 o6 w& ~* O5 K+ `+ G0 V
if( nJob == JOB_FORCEMASTER_HERO )( S. m* R, q: K1 N- K s# y: v
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;2 P/ p5 g1 [% S3 B% ]( l7 P
3 X: g' |& N3 T3 `
( ( CUser*)this)->CreateItem( &itemelem, &nID );9 { J" I0 r: _
}
; @% o' |8 [- O7 ] `) ? g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, g5 {8 z6 u w0 `6 ^- a7 R ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: L1 n$ p& q) R; T' {5 R3 V
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 c6 m' s7 j7 x5 Z/ O /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. g6 J+ l- g" M4 [# i1 Q3 ~
( (CUser*)this )->AddTaskBar();*/
' K0 l$ g+ Z7 G; x; y7 V: i ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ L9 p) B8 U3 o$ V. L# @) B7 Q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 \' u" N4 g: j, p; B) E: P9 e ((CUser*)this)->CheckHonorStat();
2 F) U/ ]2 z# B ((CUser*)this)->AddHonorListAck();4 U9 @- ` m" m, e* V8 D2 e
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 p& P8 h( s' s! ? Y#endif // __HONORABLE_TITLE // ′Tà?
4 X0 y7 J. Q; [, j8 r) e6 K }5 i1 ~1 W. } j, B% r
#endif // __WORLDSERVER
$ z+ `' G5 B* o1 c) P" z} ! r# o3 t' k0 x) S3 k
4 R, J( o- S* s! [然后你进入functextcmd.cpp并添加以下+ [; k. |0 v- G
' v4 Z7 \ O& {* u/ ]; u$ h
代码:
h5 y# j; F( ]8 B& U5 M# s' GON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
& P8 P& O# J" U1 q/ Z6 Y, ?下面插入
9 b. `2 u3 G. U# YON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ' t- L' O0 `# o- i$ I* {6 y0 i% w
9 _# e! Q; D+ c0 A" n8 H/ y) d然后你去# D R2 c3 D8 \/ }3 i; C
0 }- G! q$ R' } e9 t! [1 g! k% v
代码:
+ I+ A" Z! j' u% g2 @" ?9 M9 A1 {3 l6 o代码
2 d! B. |0 C7 E3 [! Y% yBOOL TextCmd_ClearPropose( CScanner & s )2 d$ ^+ N- ~4 b, b7 X; w
{5 F1 s: V) U- X* M+ u+ ^
#ifdef __WORLDSERVER
" N' `5 A2 K. o5 n CUser* pUser = (CUser*)s.dwValue;( W- U- m* x, _# Q) _, O
g_dpDBClient.SendClearPropose();/ L" k; q. `& j; h9 \( R" O7 V
#endif // __WORLDSERVER7 x' [9 }4 K: j6 [& Y; y7 n$ [
return TRUE;. j% i$ A+ f& V/ A+ D" o' p# _
}) x5 Q) f# c8 c/ D" V8 P
下面插入. w! F; I7 d* ^1 B! P
BOOL TextCmd_rebirth( CScanner& scanner ). t3 ~; {) b C8 {2 H
{
- h$ n& C0 p# J0 b#ifdef __WORLDSERVER0 g# _1 _' n; b' v
CUser *pUser;
3 h* D% u0 a$ D3 W1 M$ @pUser = (CUser*)scanner.dwValue;+ O" i/ R8 x( `+ q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())* U* @7 y/ L6 z, ]3 d
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);4 P, {4 {0 p z& `5 l; v6 R
else
4 y( x9 [) @+ J ~- mpUser->AddText("你还未达到重生条件!");
6 F5 g& J$ T& _0 }* ~6 |/ x( Q#endif
+ E- D. D. y( Q! U/ E0 e$ breturn TRUE;
! j) D5 l# X6 J* S; o# K, p4 R} 8 k+ F* l4 N/ Y9 \( J9 d
% R& F( Z+ Q c; @% ]' X C/ T$ @! e* m8 O8 ]- y# f
2 |' o: f) O/ D; r, W/ A& B; `" c
( `! T3 p1 ]# K- |# q7 V w8 b. J( C |
|