|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
" I, @ P% ], \
! {7 T3 Y$ w" D. FMover.h
0 x! ?, V$ z! t代码:
" k& z% E" N7 l( o; X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü1 r; D" P2 N) J( o
; a8 h0 R0 i! |- @2 `下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ F' l7 T& s" v' d- [; w
0 V& M5 A' u; }0 c" l# |$ S然后你去mover.cpp添加
6 P8 k' l5 O6 x7 g4 b: a) I, x
- l _. A( l& {- p r' M代码:
4 _& C; q0 ?) e9 L; V9 q0 \3 y9 fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 Q+ f% j9 P# s! P{7 ^1 S3 \8 |0 h3 z" s( e3 Z. R
#ifdef __WORLDSERVER
- Q# A6 C0 |% I% o // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( i" d$ A! I9 l7 w W# s. a
MoverProp* pProp = GetProp();7 V5 L& d( J% _7 t
if( pProp )
" E$ t& R; q. e! z7 Q5 s% Q, ~ {! \2 w9 K+ j1 j. s
if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 j8 ~: t9 Q( N8 Q* x
{
0 p. W; A$ z9 D. l9 q AddChangeJob( nJob );8 M* Z) \+ u+ O
}else{& d+ }% q& x5 ~ B$ }! I; K
return;
6 R, o) Q; E# I7 \+ x/ `3 _ }8 Z& m9 |' E( s* M/ T3 s
int nPoint = 0;
3 @$ k' E3 a7 W0 ^- _# _ if( m_nJob == JOB_MERCENARY )
6 ?0 M. \6 S. C5 p2 l- [ nPoint += 40;
: V9 q6 c6 X% I; N" G4 ? else if( m_nJob == JOB_ACROBAT )
$ l! b$ a$ F4 e nPoint += 50;3 B1 Y5 d1 q8 f' y* s
else if( m_nJob == JOB_ASSIST ) V, \+ U; I7 t1 ^" o1 M/ N
nPoint += 60;
" C8 R% P1 u$ G' }# k \# J0 M( Y else if( m_nJob == JOB_MAGICIAN )! v8 ]% F2 O& N3 G( ^
nPoint += 90;* H* g, x+ D o4 \+ i
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 c2 R: Z; q5 }' B: y nPoint += 120;; P: Y2 E$ W7 O! L. |
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ Z! X- p1 D8 R5 C# L nPoint += 150;- i# ]3 J7 s: L9 ~5 Y
else if( m_nJob == JOB_RINGMASTER ): P$ v7 B' Y8 N
nPoint += 160;
9 `8 s. f% T# z( r0 x3 C9 C" j3 W else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )7 y' ]) v3 j- |
nPoint += 180; l: M& V: I5 i4 A+ h
else if( m_nJob == JOB_ELEMENTOR ). W, m/ B3 p# F9 K# _
nPoint += 390;/ ~; k; n' M$ e3 h6 K m
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* J* k2 O* K5 W+ ]* n) {3 K7 ~ nPoint += 120;
( M5 p* ]: u I& m else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); Q8 w) a' O* G* G$ l0 L
nPoint += 150;% \2 }% Y5 s$ R7 G* i$ m: ^
else if( nJob == JOB_FLORIST_HERO )
: y6 i: p' r4 A2 {* W; _ ` nPoint += 160;# T" g1 L! T" |. N7 Z& O3 o" X
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); { w8 a7 m7 ]' m* u$ [+ _
nPoint += 180;& B K2 o& `- }1 K- H
else if( nJob == JOB_ELEMENTORLORD_HERO )
% F/ X9 R! j+ z nPoint += 390;) a* ~4 q7 e2 s! z- l
8 k. y8 C* N: a2 m: }) B- @ O% U AddSkillPoint( nPoint );
4 |/ L; C4 i9 {) g9 \ m_nLevel = nLevel;
$ J- y- y% B l7 H
+ ^1 h" P) S' Q4 q SetJobLevel( nLevel, nJob );
$ ^* k+ G( x1 P) p2 s) D m_nDeathLevel = nLevel;
! _4 F9 @' b% m' L5 H7 E0 ~9 {#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 |) k5 ^! ` t: A6 u* E
if(IsMaster())
% }% Z w2 I( R' U {4 }8 I9 J% w( _8 z2 z) P
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108. k% M( H, T' @- B
if( nLevel > 59 && nLevel < 72 )6 \; f" U& z" }, ?8 Y+ J& [
dwTmpSkLevel = 1;
1 d& k4 k. Z1 G5 _" g/ a else if( nLevel > 71 && nLevel < 84 )5 J! T' l" ]( m! v1 e
dwTmpSkLevel = 2;
- w2 x" L3 c3 n! D" b) \1 M* s+ F! I else if( nLevel > 83 && nLevel < 96 )
' J. @: E5 z0 d/ ?/ o2 r/ G& s dwTmpSkLevel = 3;$ q' b! V8 m9 ?( b5 I1 u7 M
else if( nLevel > 95 && nLevel < 108 )
6 b3 | _4 R2 c* h- M3 }/ J dwTmpSkLevel = 4;; N9 C6 x! o' w8 q' s& \& a8 w
else if( nLevel > 107 && nLevel < 120 )7 Y, i4 t" y+ D3 {, K+ P: R: d3 C3 F$ P
dwTmpSkLevel = 5;
- ^8 ?: K1 w' _3 g, Q& g! k for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 _7 ^4 ] R1 L% c2 N
{
/ ]. |" I4 S; V# m+ J# u LPSKILL lpSkill = &(m_aJobSkill);
3 |2 y8 Q9 O' G: m8 i if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 r( X) T+ h, U7 `. T+ @0 i {
: b/ F6 h. v. R. `' I4 { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 T" M0 S: P- _2 o3 q/ q$ M1 u if( pSkillProp == NULL )% b$ {+ C4 @9 ]0 t, p' v
continue;* G* j8 K6 A/ H( E( F2 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 O9 |) T6 ?' p continue;
b _! ?9 n f" u lpSkill->dwLevel = dwTmpSkLevel;: \# q# ]0 D; c! K- b+ b2 l
}; k6 ~5 j4 ^9 T% r1 j q( J1 i+ q
}, n9 T0 w8 o' v- o) K0 g
}
}$ L$ C9 Z9 `% W; r else if(IsHero())
6 \. J" c- O$ Q {5 A3 P. i0 `# d4 j3 N6 y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* Q2 k7 u4 l" p* @5 i: g { - ]( |; @2 D9 c& L
LPSKILL lpSkill = &(m_aJobSkill);
) Z5 W) @9 |/ x/ q if( lpSkill && lpSkill->dwSkill != NULL_ID )) R* R+ {' |6 o7 x
{' x0 S) ? ]9 C, t J j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 g: ^4 U* q: e3 x! ]
if( pSkillProp == NULL )
+ I* c: A4 Z7 e continue;- c# k9 |- S0 `6 A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); L8 H( A! Q8 |; u) Y
continue;
. Q+ C4 T" Q8 J& r6 Q7 I* v lpSkill->dwLevel = 5;
6 {8 W. M% e }0 v G6 r }
4 P1 N% `1 b5 A o }
- f4 ^3 j3 f* n }1 G5 b* D" b: s* U" r/ [& {+ S# p, }
else if(IsLegendHero())$ _" k `/ L7 c+ a: C8 ^5 D6 p
{$ @# g4 z q5 b- ~, }1 u% A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! H: L, i8 Y4 N7 `0 C/ |) ?
{
/ K- E2 P1 d0 ~; o LPSKILL lpSkill = &(m_aJobSkill);
; X* ^# B: t: W) z( P if( lpSkill && lpSkill->dwSkill != NULL_ID )
# n, N- @. W0 b- [0 W3 F$ @ {8 O! S+ P. _; f" w8 |7 G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ U5 V+ I" ]3 q7 R" _
if( pSkillProp == NULL )7 S, X8 S% M5 G& N
continue;4 q7 L1 u3 L7 |5 ?6 B1 d5 X+ K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 X6 g$ ?0 \8 v% q continue;
( K8 U1 V3 l2 ]% A" L( ]1 o! r lpSkill->dwLevel = 5;
" H# E, u5 e, A# `, T$ N- \ }5 U9 w+ Y: r& G' V6 `8 ?" g0 O
}
- F0 J7 U2 ^% n3 ^; m }1 A7 o1 u9 G) u' B7 w
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: V0 V5 i; R# N* G9 u8 ~ if( bGamma )
! z$ {8 ~/ a& \/ z: S: n {
0 ^8 S2 E' v e. e6 E m_nExp1 = 0;1 b0 p' G9 E+ z# H. m
}' M9 p" H9 d8 c$ d0 k
; {) b0 Z, U- ^2 ?: a
( (CUser*)this )->AddSetChangeJob( nJob );$ A3 K! K, g) M5 J* t
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" I% U5 T1 f1 d4 g3 A( O' j3 z' L8 N: Q& I5 O- A5 ~ y' E* w9 l
* o/ O9 k% {1 P& r* C# p4 G
#if __VER >= 11 // __SYS_PLAYER_DATA- E9 z9 h9 X7 ^3 V% m
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
L5 h* G# F1 F3 H( K8 x% X, Q L7 C#else // __SYS_PLAYER_DATA
2 A3 |# g9 O1 s8 |' ^+ y0 R2 T6 R g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( X% i# c" I! ~7 j* t g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) ]8 _ V: W$ ?4 r2 c5 G if( m_idGuild != 0 )
9 j9 s4 G% F" m g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. {2 L: L. `1 `+ s3 M
#endif // __SYS_PLAYER_DATA
) W2 G% A7 X2 U3 T* U/ y SetHitPoint( GetMaxHitPoint() );. N/ C7 s: J2 T* D+ A T
SetManaPoint( GetMaxManaPoint() );
* _! J" X) O( W: x- ~ SetFatiguePoint( GetMaxFatiguePoint() );: G( s) n7 @0 B5 L8 `5 c0 Z% B$ o
if( nJob >= 1 && nJob <= 4 )
" Q6 {* g F& L7 {/ c+ ^" w9 t {
1 \7 E1 [5 L ^: w* N" F2 F m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 U$ u$ I; c; }* u m_nRemainGP = 28;
" G; r/ k- V2 K( S3 y M# k }0 v, r/ r! R, ~
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), r$ Y7 I0 O! c5 l
{
4 F7 `2 \4 \$ y1 Y7 P6 c1 d m_nRemainGP = 118;
5 L/ V8 x x% Y. M+ x. v, [ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 @ g4 e6 G& w2 K m_nStr = m_nSta = m_nDex = m_nInt = 15;) \$ b" ^# ` {6 @1 I: b) M
}
* n- [% t @6 E" C! L: G% g if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ s* i! r7 z+ v$ ?* v, R, I" G {
, y9 Y% p2 |' n- {. }4 W1 d! Z$ t CItemElem itemelem;. C5 E3 a, v, H2 l$ \ u( o
itemelem.m_nItemNum = 1;6 N% `! E8 M1 } `9 E1 p
itemelem.m_bCharged = TRUE;
! P- \7 H/ O3 B BYTE nID;2 q$ J7 t2 o3 k: ~: C5 }
; @' r3 ?% y6 ~ if( nJob == JOB_MENTALIST_HERO )/ {- G/ t" `, G% J- ]3 S2 R
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 `( x5 K R# i {
if( nJob == JOB_FORCEMASTER_HERO ) Y- T$ |' _9 T8 E
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: @7 T' x8 z9 R( \2 b: ^! o7 q$ j; G6 U' t! F) H3 \- I
( ( CUser*)this)->CreateItem( &itemelem, &nID );$ z) O. a' @. E7 v& x: _
}! L) p* F/ A8 k0 `/ {! ?+ w0 W, P
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 |) ^3 T0 }4 d$ I2 @2 w N
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
2 `" ^' f+ z3 U0 `, w ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ u' S& H1 p0 c, i" `) d9 t0 X& N /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
( U$ o8 H' y! _: {( O5 a5 | ( (CUser*)this )->AddTaskBar();*/3 r/ ?( e' U- A/ a
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );1 W0 j& o' x* n9 R9 g2 a
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
2 k/ ~* W$ v" E% o) M ((CUser*)this)->CheckHonorStat();) L9 G }7 \5 A7 q0 C
((CUser*)this)->AddHonorListAck();
+ t! E! D8 A* l4 ^1 G" b g_UserMng.AddHonorTitleChange( this, m_nHonor);
7 c! T& Y* X+ P3 j#endif // __HONORABLE_TITLE // ′Tà?* c2 m9 D L) G9 C. } M( T8 E' F
}
! G c! O( I/ c3 }; F3 ]#endif // __WORLDSERVER! Q/ W9 _; M: b- f m: l4 Z9 X
}
@% r# h! P9 _+ x' f3 u+ ?) P$ _# S) W
然后你进入functextcmd.cpp并添加以下* V. T2 P6 u! @2 u4 c
6 {& D/ s/ E) C7 @0 H( E2 f代码:
. r0 F) f2 v Q% R1 t$ }) `0 b! E4 JON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )* d K; L% |& g1 B: V& C
下面插入
6 v3 ~# w6 O' D. h% e0 h6 }ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" o8 t( |. n0 T1 l; j" p+ w) }1 x0 A, r
然后你去
2 x: R8 k: f4 F% L; U! u$ d* R4 Q1 E& U. T* v
代码:
2 V2 k! v" v2 { b5 @2 I2 J3 z3 O5 o代码# ?, f2 U; S% I) ^4 G/ L9 J
BOOL TextCmd_ClearPropose( CScanner & s )
0 h! ^$ s( w5 b9 `* w2 d& h' U{, C1 A% ^" i3 A2 [2 n! D' p/ U- ^
#ifdef __WORLDSERVER
' g9 f: e' s' d/ A; O CUser* pUser = (CUser*)s.dwValue;. x" ^2 ?+ t9 O4 G
g_dpDBClient.SendClearPropose();
& W0 K: `1 c& `2 ^#endif // __WORLDSERVER8 z8 w& S9 G* P$ y) u+ n
return TRUE;
" l7 \) b" H5 |' Z}
3 ^+ W: x( j" P- e/ F下面插入
4 T3 i1 i% Z9 p6 JBOOL TextCmd_rebirth( CScanner& scanner )7 o# J; E9 v8 s0 h7 v8 \- t) L
{/ q3 [( E' }" m+ a
#ifdef __WORLDSERVER6 a6 ?& B2 N. n U, V% K0 o
CUser *pUser;6 p d. f* p6 ]! e
pUser = (CUser*)scanner.dwValue;
; t9 C# X- i- c" l4 Iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) c9 o' J* m( t3 [* l) Z0 DpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);- F- D3 P1 P! j0 _. X& Z. m5 {
else) q ^) W% M7 ]" z8 R0 _; V2 k
pUser->AddText("你还未达到重生条件!");' V+ a* a- D# }0 E ? F1 T
#endif
' p0 V6 O2 w8 \6 ]- ?return TRUE;: o0 [9 E x% t# \1 S
} 1 \& h Q( P7 G+ M
9 c% V9 S+ @' R) k5 q9 H; U
3 R2 l' J' ], r" g# S& p6 V
: P6 s3 z1 R" z- b; F' k* X) s3 u+ m: x, V
|
|