|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- t2 z8 @; x X9 W1 x$ V. |
4 }; ~1 H3 [; h: z6 V/ C/ i3 sMover.h
% M" [! Z. j. K8 o& b2 @" b代码:: y# U; K& g- Y" ~$ ]
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# a: Z6 O" @/ u. W
3 g$ b8 b) |1 X$ B. @! k) v下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # @7 B6 M e+ v7 u }
$ t, |8 W. w0 o
然后你去mover.cpp添加2 R( _ k8 X3 R, ^5 |1 R: n
$ E& {; `7 {6 Q# } N: D代码:
: B( W/ o# b4 l' a* V4 Z! t3 Qvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 A. k5 E, i% [$ U, y0 N& U3 i% j{1 H/ O& c5 ~7 U& @$ J9 [& P
#ifdef __WORLDSERVER
1 U) j7 e3 s( Q // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó, K z7 `8 B. u# ~: q
MoverProp* pProp = GetProp();6 q8 y6 k% `1 w3 d4 L
if( pProp )
; f- q4 J! |' A' y8 F {- s7 W6 b& T1 n: N
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' W! n* A! F5 A7 o {
+ B8 y6 r1 W* L% F# u9 h AddChangeJob( nJob );
1 l5 U# k: T( j) a+ ?( n1 d3 K6 v& [ }else{
4 h' o2 x* ]4 Y. X9 S L) T' X+ W return;
- g0 Y+ M0 x* d# R0 j }( p' B( u7 i I
int nPoint = 0;
9 j e4 S6 N8 h1 ~ if( m_nJob == JOB_MERCENARY )
) Q6 H0 B# V, f; A: x: m: Y F4 O nPoint += 40;
$ `4 Y) }4 @+ f! K" X else if( m_nJob == JOB_ACROBAT ) G# U! v1 _$ J4 [
nPoint += 50;
3 O# i% }2 \# F. z) [+ J else if( m_nJob == JOB_ASSIST )+ Y2 R: o3 ]- D3 j- n6 B+ N9 i
nPoint += 60;# M% N" i- R: j" W2 _7 X, f( E
else if( m_nJob == JOB_MAGICIAN )# f( B1 K, A4 f3 e6 T
nPoint += 90;
# t2 M+ O: X/ c5 L+ H else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* {) K' a5 B( A2 s% @7 }) Z nPoint += 120;
: _2 y1 ^5 j8 R: p8 f% S else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 f; n$ X2 ?. x. H6 w nPoint += 150;
3 }2 {1 s; f' r3 e, y* A" W else if( m_nJob == JOB_RINGMASTER )
2 D7 e" b/ {- C) s/ \2 a9 j nPoint += 160;
" s( [" W4 X- y5 C5 G else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
$ ^6 @2 _2 C. _0 {0 W: i+ X* t% a6 g nPoint += 180;& E) T. y0 K3 O8 i6 S0 c
else if( m_nJob == JOB_ELEMENTOR )- v' r' R$ M0 d" E3 a
nPoint += 390;1 f# H$ E3 T4 K9 Y2 v
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )8 N& O2 L! X: |6 y& s2 k t5 B
nPoint += 120;
3 ?+ g: @, E5 X+ p, J0 o else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
3 Z0 d6 h3 V0 t5 d; M nPoint += 150;3 n7 ] D2 A& u a8 V3 S1 q {2 r1 ^
else if( nJob == JOB_FLORIST_HERO )& w( {% Z5 u) D" ~7 |( L$ s
nPoint += 160;: ^2 L7 a& A: m4 ?3 b1 P
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 z4 \: v$ ?6 y4 i( k8 w- w8 N
nPoint += 180;( I* ?- X* r A3 ^0 Q- ?3 u
else if( nJob == JOB_ELEMENTORLORD_HERO )
; i) v1 u& g% c, H3 t- p" j' u nPoint += 390;4 N" `2 U0 {, s0 {* c+ ?# p% J
- m5 B3 s1 c) u" C3 x, f- ]2 Y AddSkillPoint( nPoint );$ c* I5 c8 t- P2 ^0 `) }
m_nLevel = nLevel;
9 Y8 g7 d8 }4 r* X: a- w8 [+ V) R( X0 ~) [- N' Y
SetJobLevel( nLevel, nJob );1 r# u) q$ O, K1 J/ U) \
m_nDeathLevel = nLevel;
0 I0 F( r3 R# N9 ?! R0 i( R8 W6 A#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 w' K9 n6 W8 J2 E8 J }8 ]+ X: C
if(IsMaster())
$ I) Y$ b6 d& p1 ?2 e9 e; ]+ e. Z {
7 }7 u$ ]+ X# A! j, b int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- R) e+ `9 @, `' z
if( nLevel > 59 && nLevel < 72 )9 P, b+ H6 _1 v' t9 s$ K" Q& y1 l7 a
dwTmpSkLevel = 1;
' l( F! n( _1 N2 z else if( nLevel > 71 && nLevel < 84 )& L2 {1 {& k% j
dwTmpSkLevel = 2;) o3 r1 l5 l L( t# ~' {
else if( nLevel > 83 && nLevel < 96 )
( g, T8 ~( V. S& x1 M( S3 c* o dwTmpSkLevel = 3;3 }, k. u. q- Y2 Y2 I
else if( nLevel > 95 && nLevel < 108 )% w F$ b9 P" P1 a
dwTmpSkLevel = 4;1 \/ F% Q' b6 q; y/ b0 i
else if( nLevel > 107 && nLevel < 120 )
3 \$ E1 n x0 V/ C/ A dwTmpSkLevel = 5;
4 `3 j$ ?: W" b for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) s+ P9 Y# [1 W* A5 Y
{
9 O0 H/ o( h7 w LPSKILL lpSkill = &(m_aJobSkill);# j$ T$ v/ R$ U0 O
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 ^1 ~& M9 r8 H( p
{, G2 i1 a4 J& i( ~2 {! ~/ O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" o# z4 R% w0 h) M6 \$ M- b4 u" M if( pSkillProp == NULL )
% h6 P5 R& y0 b! m8 r continue; t2 w! E7 H' s' K5 i: f! }. j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 Q2 F* L; L. }1 j7 i. {$ W continue;* g, F' J" l1 u
lpSkill->dwLevel = dwTmpSkLevel;8 b( u/ R3 ?5 k" R4 c6 @8 m
}8 W3 j# H* z$ G6 z& f* Q
}/ s9 l9 ]% _- \3 F% G
}" V% v7 W& H2 I# g/ t
else if(IsHero())
1 ^/ ^ H" p9 A+ w/ C h, [" D {8 X1 a" n6 G) y3 b5 ^4 j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 D2 s7 J" S* e; R: Y8 q
{
* F) M m6 H+ o2 e4 L/ _ LPSKILL lpSkill = &(m_aJobSkill);+ o; e9 ^1 O2 F5 b' a. b. Z* g, @, O
if( lpSkill && lpSkill->dwSkill != NULL_ID ). ]7 }0 D. ~) e7 |' b
{
3 b6 u' a* A$ l: N: h+ p/ T ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, }$ V# b2 b0 Y# k+ w if( pSkillProp == NULL )* l) r6 H7 r$ ]. R$ B- O; [
continue;" v' S- c; ]+ P" A% `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 }) S# q0 k1 l% n! J# G0 r# q continue;
+ N2 K6 m* n- @* L& f lpSkill->dwLevel = 5;9 Q% _7 y) B5 u* n
}
+ z! B' } q( `* D: @( F7 J }
; T# I; R _' K% k0 K, F$ j, ~ }% N7 u; j, {# O2 T; r4 s4 ^
else if(IsLegendHero())
+ x, f& I& h$ E _ {
( e; w. T% H* I# z% ~ for( int i = 0; i < MAX_SKILL_JOB; i++ )
" B7 q9 D- w3 ]6 G2 X3 @: A" m {
; Z8 Y& n9 A+ T& M& [7 H: q& t LPSKILL lpSkill = &(m_aJobSkill);
: R3 A1 S2 t+ x4 L if( lpSkill && lpSkill->dwSkill != NULL_ID )( Q* [/ N' X; f$ V
{+ h: l) C" d' x3 c5 \1 ?) [# V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. G$ e) p2 ?2 M; H* }1 ~ if( pSkillProp == NULL )* S3 E) x K4 b% y4 S3 K) B
continue;
) B% J6 d. R0 x1 q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 t5 C: E& k0 ?: ]- a P( R continue;
Y. h' ?$ \. { lpSkill->dwLevel = 5;$ R9 B! f4 v" L+ y& P8 _8 [
}
$ G) U- l ~9 U9 n/ X6 Q4 z }2 C8 j \+ I) M+ k# l8 ^7 I Q
}
4 ?3 u- n+ k) ^+ d#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( E, D2 F% `; n, T if( bGamma )
& {5 j, w G2 b, Z0 r. q. u {
) b. D d6 |5 F- [- k m_nExp1 = 0;
* b; Y! r- _& @) E }( q( T9 k# V8 D2 j, L
0 e( ?* a$ s9 ?, _9 H ( (CUser*)this )->AddSetChangeJob( nJob );! C) H8 J; z, `5 _4 L2 g
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* H+ d% B$ r: Z f* f6 d8 e
& N# K" ~, { X7 S$ `8 Y
) U- [' n0 {. [' W#if __VER >= 11 // __SYS_PLAYER_DATA: j2 q* G n. f
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
# X: n: ]3 c6 v' _/ G#else // __SYS_PLAYER_DATA& w9 ^5 h! ], ~8 u5 V* ^. m
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( Z# X$ I( ^% e! z: m* M$ V g_DPCoreClient.SendFriendChangeJob( (CUser*)this );+ L+ ]- c; Z2 H8 X% S1 n
if( m_idGuild != 0 )
( T( ~1 d1 F# ]& a g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* x. ~7 w+ e6 _1 Z! S' `#endif // __SYS_PLAYER_DATA, ~/ @$ H) G9 D% a% D
SetHitPoint( GetMaxHitPoint() );. e6 L' U5 ~" m! A! H7 R! S
SetManaPoint( GetMaxManaPoint() );
2 \% x8 K8 J6 `# O SetFatiguePoint( GetMaxFatiguePoint() );
7 m. h( Y% m. z) |1 O9 [ if( nJob >= 1 && nJob <= 4 ) J2 Y |. Z6 B u
{9 I5 t" ^5 A) Y9 Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 S0 n& G M6 A6 K
m_nRemainGP = 28;* N* [, ]& g5 _) o
}
- R% D5 Z" u# c/ b, Q- Y! m6 [ s0 n if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ d0 y. t: v* v; J# }: q
{+ [7 x3 k# t) o
m_nRemainGP = 118;
0 V2 e" I k# O0 S V: v //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
0 k/ P: h# h" {4 }# b8 y m_nStr = m_nSta = m_nDex = m_nInt = 15;% h3 E. C3 }6 v. Y
}! B5 x( s; l1 ~& c
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 H. _7 c- I5 M' ^) G- x {
8 I% _" X1 W. K8 C% V CItemElem itemelem;
' s5 K& y$ }" [, y itemelem.m_nItemNum = 1; p& w% Q& k6 M5 U
itemelem.m_bCharged = TRUE;' P0 ^) e( I7 c. q) a! L
BYTE nID;
6 k( J: |9 I8 j) Y
! G+ i+ Q3 a9 p& E if( nJob == JOB_MENTALIST_HERO )6 C- Z! ]: r9 D" P4 x
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, ?$ I3 B& c9 X# h if( nJob == JOB_FORCEMASTER_HERO )
, Q" n$ @% Y5 U! f( W itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO; b$ o& L- ^7 ]2 ~' |; H5 i
5 |( D' r: K G6 Z
( ( CUser*)this)->CreateItem( &itemelem, &nID );$ G8 m6 h: I; k
}
: ?; F+ K7 _' @- N4 d; a3 ?3 ? g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, M, z0 @ H6 {* X) u0 j ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" J* `7 f! x7 v/ J1 }0 _& ~& F) n ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );- _+ Q: f8 b& U
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ w" z5 l( l9 r0 q3 Y, e2 a ( (CUser*)this )->AddTaskBar();*/
* ^$ v3 { m8 f( [, @6 _0 f0 D ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );8 K* L, H* b6 @, K
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 u3 K( L" O6 z- | ((CUser*)this)->CheckHonorStat();
& V: W+ N* Z# b" L ((CUser*)this)->AddHonorListAck();+ Z2 m8 _! C, [5 N+ N& d
g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 Q4 Q7 j- t; | z#endif // __HONORABLE_TITLE // ′Tà?$ J: l/ s0 S4 p/ H2 o
}
8 F$ C2 x, @/ ]2 A( i7 O0 T#endif // __WORLDSERVER
2 K0 x5 C9 e( r" ~* G4 {8 M# q} $ ~4 W1 N! g7 Z% a" e; P
& }, {7 h& x, F1 }然后你进入functextcmd.cpp并添加以下" k9 c+ u, e$ l ]6 f+ C9 T
! d3 D6 [; t! v2 a8 G代码:
8 Q; v+ Z/ j- Y' mON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )0 ^0 b5 S2 @$ V% z* M! i1 b
下面插入
- A2 k) i: [3 D! zON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 \3 h5 C! T: A5 Z8 k: N, u2 G% X7 A1 N# G& |3 J8 `, [5 I7 ]
然后你去
/ ?+ }" h K" R% Z- Y# |" T$ @' Q. m9 T5 ~* N" o
代码:+ \" V. d: k0 d- f0 t
代码
K+ g1 C- l: Z+ X% QBOOL TextCmd_ClearPropose( CScanner & s )# {9 y3 @! V4 Z" g( I6 ^
{& m7 k' J( ]: X8 \
#ifdef __WORLDSERVER9 a+ E& p e9 L5 s% }
CUser* pUser = (CUser*)s.dwValue;* H, Z$ b% H, r0 f
g_dpDBClient.SendClearPropose();
6 t8 ]. K2 c/ i$ l$ j1 q4 X+ O#endif // __WORLDSERVER( {7 d; x: R: Z( Y
return TRUE;
( E; T$ O" m7 G+ f$ g; C}$ q t, l1 A( [6 M! S! J& h% T; q
下面插入
- O# d" A4 H( K2 fBOOL TextCmd_rebirth( CScanner& scanner ), S) A9 r7 ~% [( t$ X
{, s7 D5 H; L7 r( Q4 x# k
#ifdef __WORLDSERVER% ]4 T5 q. y2 Y' p( J8 g
CUser *pUser;
; T" r/ s; Q) P( @* ?9 Y% apUser = (CUser*)scanner.dwValue;9 u( n' p) k% R
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ N3 n! V. ], ?) O& Q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
) M3 D) @2 J# Z+ r& Belse2 s" _+ Z$ [1 p
pUser->AddText("你还未达到重生条件!");: [8 x# {, C1 _) M
#endif
. a9 M; T: z- f7 {! h# D, Preturn TRUE;
2 k5 I; m. E+ L) w* T3 ?1 }}
0 u+ j0 T5 e1 X# |6 p, `6 n) J X" v0 G9 P9 @ i6 O1 C
( p8 U/ u& z! k9 H
. P8 v' B# v7 G: t) y& `9 Q
& }' x0 E7 P$ l |
|