|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel) V2 O/ @* D( V6 o% b
2 q2 d H$ Q3 \
Mover.h2 K& E, f5 d! K# _
代码:0 C8 r9 w" t) o6 R) X
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- _. N6 `0 |. v! o- Q% ^3 Y
4 R) N/ `. @% E4 l* [1 F) V0 w下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
) P5 ~# ]6 P6 n: U
# G# q- a, ^2 m! \. F. i1 B然后你去mover.cpp添加
, d! k1 V; C. x6 G6 ?- t) [/ a
* m7 V/ M( J) X! S4 C6 z代码:
/ q9 h# f2 r" y8 fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ). ?$ x) q/ r% ]4 p1 c- r
{
) d y W4 e: Z, s/ i4 w. m#ifdef __WORLDSERVER
4 Q/ |+ I, [( g, x' P) c: W // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
7 |+ D* z: o9 m3 @) X MoverProp* pProp = GetProp();+ d: H {; O! u" ~" K, a
if( pProp )
6 p$ Y4 j8 ?1 f {2 X% |4 k! w( B' ]2 S: s* ?3 T3 _
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) f. X% V0 ]# N! j {5 X" O) D: y& e! p" T# i
AddChangeJob( nJob );0 \$ V# V/ a7 X' g; d
}else{
: n$ H$ g F' F& @' b8 h return;
9 r' Z$ D7 {& G) u h3 |+ p }
! X- h2 F9 z/ V) ^( u; K int nPoint = 0;
: _# ~2 E& f6 x- S if( m_nJob == JOB_MERCENARY )+ S2 J; j7 C( C4 o5 ^. |. Y3 D8 W. h
nPoint += 40;: k7 D$ G8 x7 k9 O) y
else if( m_nJob == JOB_ACROBAT )
! Z1 v* F$ p% O% m nPoint += 50;
' n& ]# R/ ~! }) [8 Z5 ~) i else if( m_nJob == JOB_ASSIST )
6 o* G/ n5 W6 |) v: i: M nPoint += 60;
: o6 z1 ?1 H9 o7 O5 F _ else if( m_nJob == JOB_MAGICIAN )( [/ F# y" t2 |9 \4 s
nPoint += 90;$ c1 h' n% v) q% A+ @0 Y2 P. ^
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% q2 F$ D4 G+ }8 g# k# x
nPoint += 120;
! L5 d0 t# j8 y; T2 J# M else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): z6 ^% a) h8 ~7 ~* x
nPoint += 150;) T% o* v+ f( N, D% d
else if( m_nJob == JOB_RINGMASTER ): ^' N) j1 \! r& Q2 q! i
nPoint += 160;
; M8 p: m" A% r/ X( C: G else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 ^$ t# R' `- G) Y7 Z
nPoint += 180;3 r' K4 F/ }3 P9 }2 f4 @2 L
else if( m_nJob == JOB_ELEMENTOR )
6 U. T" }1 g2 V. k' k nPoint += 390;& j0 l5 R. C; Q+ c' M
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 o* \2 ^4 q& N( ]( `. b nPoint += 120;
; I0 b4 N( m" T3 h. @( j% S else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( J, d) x8 A) B- N- r nPoint += 150;6 q3 d/ @& h+ W; Y
else if( nJob == JOB_FLORIST_HERO )
2 S5 g9 y6 G/ S8 J) _, c. Z$ \ nPoint += 160;
5 V* M4 y w w$ e3 U else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )4 j) Q, x. m- V' t
nPoint += 180;
+ O6 S$ Z c, u: s else if( nJob == JOB_ELEMENTORLORD_HERO )
# ]( J* A# J! U. ]$ P' U nPoint += 390;! ?- r5 m O1 V" n' L6 I% r/ N
6 c# N9 C' [3 O* Q g3 [
AddSkillPoint( nPoint );
. Z6 S( |# B$ v' U. P m_nLevel = nLevel;
8 w, N9 Z5 c, c! {" e* u6 R6 g; h6 B
SetJobLevel( nLevel, nJob );
?5 w! g/ l7 a7 Z m_nDeathLevel = nLevel;
5 @: q4 m& r* X8 M, F5 U1 a8 l#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ E5 ]7 z9 f; N% q) b
if(IsMaster())
o4 j; }+ N# o1 p6 B {
8 f/ G% U' v! R. K( ? int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 ^6 p; B C+ A9 {9 C, ` if( nLevel > 59 && nLevel < 72 )
8 C5 r: Y6 P5 ~- l+ d* j: L dwTmpSkLevel = 1;
% c. o" Z" A; \3 X, H, s else if( nLevel > 71 && nLevel < 84 )
9 ]6 ^9 q7 R1 t0 `, g( A, ? dwTmpSkLevel = 2;
$ a$ r$ J( x. ~* j else if( nLevel > 83 && nLevel < 96 )9 D9 s7 x% V6 D: m& y
dwTmpSkLevel = 3;* S4 Y$ f4 Y+ M
else if( nLevel > 95 && nLevel < 108 )
2 K3 a; s& e5 T7 E1 `8 e* c/ [$ A dwTmpSkLevel = 4;
b9 d: p- c5 y, |/ R else if( nLevel > 107 && nLevel < 120 )8 {1 D3 X' v% Q$ L# L* n8 a: B
dwTmpSkLevel = 5;1 d2 e9 e1 K. ^ @3 k! O
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 W0 m6 |7 U9 r: s3 J- ~4 S. a$ a
{ ! ?1 V- j& b3 d4 t3 @6 m
LPSKILL lpSkill = &(m_aJobSkill);' \. }' @8 A5 r, }4 @9 ?; n9 `
if( lpSkill && lpSkill->dwSkill != NULL_ID )( ~7 H- y/ f# L5 ~% X* e0 `& R3 a
{
0 k! _! |% T, X( ~% z( w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ M0 m4 \) R) p$ T# y. J1 X if( pSkillProp == NULL )4 R6 v& h% e, ?) i8 n
continue;- N5 i5 q. K$ X k4 _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ e) `9 r/ l% O% p& h6 P" X continue;
, ]# B3 x, j; v% m% s2 @& Q lpSkill->dwLevel = dwTmpSkLevel;6 x5 d" q7 t+ g9 L
}
6 c3 Y7 L$ ~& [3 g# y. L0 W) q L }/ A- _) B: p& h& a
}
: E6 @1 b; B% s- Y6 q. N$ n- X else if(IsHero())+ t9 T0 J, M& g1 @$ m, y6 F
{
1 i5 Q# H- H- T2 n1 J. d for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( s. b4 F, y7 }4 |7 X( H
{
. p& f" ]( i# K) i( l LPSKILL lpSkill = &(m_aJobSkill);
% l: _5 x7 ?! T8 @6 O if( lpSkill && lpSkill->dwSkill != NULL_ID )
R; C& Y; Q- g' ?2 _/ U {
( y. `7 X, x/ W( c4 y$ M5 H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: C/ [1 |# j/ I. C" Q }! C. k if( pSkillProp == NULL )
+ x* R D: P+ } A2 Z4 c continue;
. q" ?" I8 `7 B4 m" P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) u# o9 t% @( e. r* p' a/ z continue;: T& l, Z' ?/ T
lpSkill->dwLevel = 5;& V; q; w0 i0 O/ |) e" j# m& @! d; a& c
}+ H- [) ~. V* o/ b5 ?* {
}" r5 Z7 Y7 W9 _6 I. v3 H5 b% ]) B4 [+ T
}
$ D; V T* w: m( Z& t2 H! {6 { else if(IsLegendHero())- Q8 u. f0 M3 w, S1 ]2 J
{
1 H& l8 P$ J% x* W9 ? for( int i = 0; i < MAX_SKILL_JOB; i++ )
' Q* v% B1 S) B! J {
; O$ ^) c" ]- ^8 B LPSKILL lpSkill = &(m_aJobSkill);! H, D2 B( E- |2 p; A
if( lpSkill && lpSkill->dwSkill != NULL_ID ); l w. O% u0 }- c* F
{
/ M3 ^+ u8 i4 I' d, D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 q$ l2 t: p8 Q: `! w2 e. ]( U
if( pSkillProp == NULL )
; {% |9 O2 o( q continue;4 p( k$ a( U$ N o( G: \* }' b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* ` `1 B$ S$ {$ D2 d, ] continue;. C2 ^5 S0 g% j" e3 l; ~
lpSkill->dwLevel = 5;. S) V6 | a# a) w& m
}6 D/ M6 `3 H/ Z( @ ~
}3 Q; W7 N# w/ A* i- Q3 R0 h
}- ^7 T: n& R4 D% X& ~
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 k& t& s* f5 }- m6 R1 k) u' v
if( bGamma )
3 H: u7 V; Z2 F5 U, F* } {8 W; j# m1 C6 a
m_nExp1 = 0;
6 V/ z* n) G: z }
! ]5 b( k, }, h+ z. G3 V
# J* t8 B+ r b7 y- G ( (CUser*)this )->AddSetChangeJob( nJob );
- @: w9 C- E( T) K( k2 q g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; @4 G4 v8 W9 u) R% Y4 H8 s' N9 \4 D& R+ ]6 M* m+ w
" S7 I6 S, g( \0 W+ I- C: x#if __VER >= 11 // __SYS_PLAYER_DATA
4 Q4 a* o, O6 H- s2 i g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* w9 s' [+ V7 w u' D
#else // __SYS_PLAYER_DATA
* Z7 E/ q, R. L/ z9 O# p! K g_DPCoreClient.SendPartyMemberJob( (CUser*)this );$ O N1 Y- b! q, ]7 n
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: k$ V" F+ p3 b2 u if( m_idGuild != 0 )! `# i. }; Y" X) d3 o3 {: ?" |
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
$ R1 R( E1 x8 f& \#endif // __SYS_PLAYER_DATA
4 v1 O* G0 J2 H: v6 s" L SetHitPoint( GetMaxHitPoint() );
( P6 C5 L! u% j, C1 V( J SetManaPoint( GetMaxManaPoint() );4 f6 b; O3 S0 L9 H/ D& e& W. S
SetFatiguePoint( GetMaxFatiguePoint() );
7 N) q8 Y3 t8 u+ ? D! U2 v if( nJob >= 1 && nJob <= 4 )* @, h0 W/ u" J/ f2 _0 t G5 v' C
{; A9 ~5 l5 g( C, k% m
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. \* d2 A4 K% y2 U: G2 N m_nRemainGP = 28;: x, t2 d! W; D, Z; q/ f
}
3 v9 g* ~, [% a$ N! Y4 z, y! ?( _/ f if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), ?; A0 P5 E! A- r; w
{
3 Z* w, C* B9 @ m_nRemainGP = 118;
/ Z7 ]0 a2 K" o2 X+ F //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 Q9 u+ r% j, V+ B! v) k0 \
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 F9 Y) I: w( x- A }/ z+ C9 Y; v* D/ r
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* y. E1 M' F7 J {
8 I) v' X: I- x CItemElem itemelem;. w+ M4 A9 P* N9 J5 m; S
itemelem.m_nItemNum = 1;
' Y- d4 `, Q6 D* E0 ^7 @) j2 R itemelem.m_bCharged = TRUE; x. n' t8 Q6 f# f
BYTE nID;
, {- x: f% w% A! z J4 `1 Y2 Y
- M: v. k; |+ r/ Z' y' T+ K. O if( nJob == JOB_MENTALIST_HERO )8 k' \* g+ X9 _9 G( O0 \
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
; a% X8 Z# U7 y0 y. u! ^- s2 ~ if( nJob == JOB_FORCEMASTER_HERO ): C' ?( x$ A1 A+ s% _, Z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- X+ |, t. J+ o7 H' N
( b: T" s+ f" C$ V
( ( CUser*)this)->CreateItem( &itemelem, &nID );( \8 ~. m$ Y7 T9 @0 ^! q% R
}
1 ?# J3 O/ U9 i; p3 q g_UserMng.AddSetLevel( this, (WORD)m_nLevel );- L- H# t8 g+ p% i
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- n2 ?6 P) \$ v; }1 C( P ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ {- M: t \1 j /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 h, y$ Z2 H* Q+ V; m ( (CUser*)this )->AddTaskBar();*/
, C8 Y+ u" r: H0 b4 U4 s, B# K' Z/ A ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& E* B0 P$ e& ~) a#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ b' V, x* l' F) ]- P ((CUser*)this)->CheckHonorStat();
) @! |( _" z2 H, G ((CUser*)this)->AddHonorListAck();
; U% f$ H: D8 |7 Z g_UserMng.AddHonorTitleChange( this, m_nHonor);
& ?2 D' Z: G( k/ O {( s' j0 X#endif // __HONORABLE_TITLE // ′Tà?
3 @* ^' M" o" m3 v/ P& S8 @& B, w }
( F6 t& q7 H" |* d g#endif // __WORLDSERVER1 U; d( p5 }% j2 c4 k
} ; S% k: \7 E9 X, Z+ |1 f& u) M
7 }6 i% ]' I9 l; V% m然后你进入functextcmd.cpp并添加以下
# k4 S% V) y6 l3 a
5 R" Q; a& l- W4 W1 W. r代码:
: Q, U; t2 r* F( WON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): c5 h' Y/ m+ Y ^% n
下面插入
# F8 E! y) X# h8 AON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) Q; P% T' o# d3 R8 u y! N" @
% k7 J: g, u% R然后你去( C- e% u" a8 v+ k# x4 ^* s
: t$ y1 U! Q1 K代码:
! J) M7 K: q6 w9 G* Z9 B代码3 O. W2 @# n6 P
BOOL TextCmd_ClearPropose( CScanner & s )! d1 }+ q z, ]3 B+ W: k8 g. ~9 o+ d
{
+ D) n7 z2 C) ?' v# z#ifdef __WORLDSERVER7 M7 P# o4 `6 {' I
CUser* pUser = (CUser*)s.dwValue;4 G) p. Q9 R! ]6 [( [
g_dpDBClient.SendClearPropose();
2 J, C, \/ |: ]+ p" n& |3 ^#endif // __WORLDSERVER/ H5 v! O. u+ {* O$ r
return TRUE;
! g8 \$ O; r5 x; |5 ~}9 E2 H0 c. M+ J- E. ~% H
下面插入( W1 D) O3 P: L
BOOL TextCmd_rebirth( CScanner& scanner )1 ~' x( ~: m2 D0 u: X N, [
{+ M$ U' i, m2 C/ N7 t$ V" ?
#ifdef __WORLDSERVER
, M2 u. h) g* J% n0 A* JCUser *pUser;
; T( P( f- \4 X% LpUser = (CUser*)scanner.dwValue;+ d- `6 Q9 D3 G5 X1 l7 ~2 u
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' }/ W" U x1 Q! M! LpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 [( O p& d6 B1 z
else
- b' _- L" o2 X1 j4 e7 }' Q* d/ v7 ?pUser->AddText("你还未达到重生条件!");( c# ~5 C3 `+ v B2 ~
#endif
. ?/ K4 T0 V+ q# s/ z; preturn TRUE;
* p0 ]' r0 P6 H) Z}
! X: O6 Z& j+ x& s/ v# F$ I5 y+ \/ w! O L
3 s. _$ b8 `2 N; }" s. t' U' w0 h6 {8 J' x
2 L/ A0 ^9 W( \/ X2 `9 @% _3 K |
|