|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( _* G/ E4 S7 C8 n/ {2 t4 j2 m
$ V* o8 d5 I% o
Mover.h4 O- k$ `" P2 }& `& g4 w Z
代码:
2 \7 T$ z0 Q% B找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& [8 S1 p+ d( d5 m$ H- j* W
$ s( h! I+ V4 W0 _* x; w! s) W
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 g! f; j: g1 u# H/ {2 F4 z# v2 w
+ F6 y$ e a- r W7 z1 A6 c
然后你去mover.cpp添加
; F" r8 c+ q) n, O; x" N# L7 [# h* j6 U; p7 k% X6 o' a: K
代码:
m: G6 U2 C" z9 v% ~void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' F N' {5 W7 A& @
{6 } c2 ]; k6 K: M
#ifdef __WORLDSERVER
) f/ s! s; s$ _& P // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 }2 r, B1 R5 N' u _; A MoverProp* pProp = GetProp(); \ C& z* I ^7 N' G
if( pProp )
6 k4 Y- ]0 y3 Z K9 {0 ~. _ {
* [) ?8 k2 E0 I if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 {/ |+ @6 W( X7 ^- G {- e! u9 H% s% t, x3 d$ U
AddChangeJob( nJob );
I! ]6 \6 E$ _ }else{' Q( Y% Z; b6 n2 ^ r/ Z
return;9 N$ [( u" P! A
}
+ V+ c% L! {7 {/ I, }& J2 W2 r int nPoint = 0;
" }; s: x) B# ~2 {1 O M Z6 E if( m_nJob == JOB_MERCENARY )
8 U/ h; H1 X5 I: h nPoint += 40;
# V: l5 Q5 P4 g" B) d+ v; P else if( m_nJob == JOB_ACROBAT )( v K( D B9 G
nPoint += 50;$ O- v( }7 a+ `8 c
else if( m_nJob == JOB_ASSIST )
( a. E: O' J% K0 {6 P4 j nPoint += 60;! N- f. h/ Z6 u6 Y9 z& h: e" {
else if( m_nJob == JOB_MAGICIAN )1 {) p( w: m" ^, O% n1 N& \0 |
nPoint += 90;" Z! q' y4 ^& }! o7 G& b
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )3 z4 J) h: W8 [- E' |/ E. g
nPoint += 120;
* Z& g8 ^4 h- P3 R else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
; H8 P3 R) P- o8 q nPoint += 150;
' v& `) F5 I1 z ^; x5 ]% f1 { else if( m_nJob == JOB_RINGMASTER )6 f" Z5 _: F0 L; z* q$ Q, W
nPoint += 160;. [6 {4 y K. @
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, d6 k3 I/ [, z, @ nPoint += 180;
8 _. P5 Z& {" R$ p, W else if( m_nJob == JOB_ELEMENTOR )
8 `9 d/ t/ T7 u8 v8 P nPoint += 390;
3 q" W: y. o! E( F else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )9 T! s2 s2 a* f. @
nPoint += 120;. P2 Z8 Z7 j2 t }# T/ A6 z& O" m
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% k, g2 ~9 V5 z& }4 }& v nPoint += 150; Z0 g% {) z* S4 C; _, N
else if( nJob == JOB_FLORIST_HERO )/ f, j1 H5 \! o3 X7 S5 I% d7 @! j& D
nPoint += 160;; x0 n, T" _, \! O5 L6 F6 y. N
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 @' j. Z6 u( A% Y nPoint += 180;( f$ M- |: q, m' g5 z- N
else if( nJob == JOB_ELEMENTORLORD_HERO )3 b( Z5 Q. s, L* `6 Q8 o3 v
nPoint += 390;
: {: T9 b, L u3 _3 h V
/ z& u2 c% i8 C+ i# K6 H' v AddSkillPoint( nPoint );
# a' ?# D; q* W m_nLevel = nLevel;
/ l) X$ i( A8 V2 |0 Y4 c( G3 J9 K- I, H* [5 }
SetJobLevel( nLevel, nJob );. K" Z% e3 y! \
m_nDeathLevel = nLevel;4 p' V2 B! U7 {0 R: ~9 q' H
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 I5 g* ^' ?, S3 S8 K8 W if(IsMaster())4 f0 a: f% o. M8 }" g
{
& T' z6 C/ }3 W+ _& n' |) K; \ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 X5 p$ ~# Z2 k) i/ e! o- p if( nLevel > 59 && nLevel < 72 )
/ i" t4 g: g2 ]' D# L9 ]8 M# I dwTmpSkLevel = 1;
: ~) y j: _! `6 m" v5 E. n else if( nLevel > 71 && nLevel < 84 )
% s6 q' E) x6 M: K7 X. B dwTmpSkLevel = 2;
. N2 \- m8 B% G/ r1 E else if( nLevel > 83 && nLevel < 96 )
3 @6 H* x9 |" T$ b' ]4 G dwTmpSkLevel = 3;
5 M% |3 F$ W: @! M0 p+ d' J* ~ else if( nLevel > 95 && nLevel < 108 )8 l, B j! ]+ `$ {0 S" D1 O
dwTmpSkLevel = 4;* t* b0 I: j% m' h3 Z
else if( nLevel > 107 && nLevel < 120 )
0 S. b1 E0 l' Q dwTmpSkLevel = 5;$ g6 F/ C% {5 R% Y' }" x
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % w1 }$ t7 F0 ]. b- x; U1 E
{ e+ m$ V" h# J Y, i: ^" i# N
LPSKILL lpSkill = &(m_aJobSkill);
; M- Q' R5 p" T9 O7 ]$ z5 `: W' J- w if( lpSkill && lpSkill->dwSkill != NULL_ID )& e) e$ X) K) U5 O# Q6 P/ K
{
& q7 X1 P/ `: D/ J- G ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! S2 {5 N, W+ i
if( pSkillProp == NULL )
- O7 W( Y& V5 h7 C" U- ?# g1 k" b continue;
0 }6 Q8 c. V3 z7 `1 x: j8 C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. g$ T3 V" Y( { continue;4 m t3 u6 V( S5 `2 Z6 s. k" p
lpSkill->dwLevel = dwTmpSkLevel;
8 ~( {* V+ _- b( B" k% p }
Z; c2 ?$ T3 V' i, @ }
4 G# n" x1 P9 N/ f }3 m* Q$ u% \9 p3 a! j0 G
else if(IsHero())1 t- Y4 A/ K j u+ ]
{
+ t z" M5 A* U, ?# f for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 _; _/ Q5 O2 f( s( h1 F {
/ q- i( T ~) {( g2 R3 F* Q/ d LPSKILL lpSkill = &(m_aJobSkill);
6 p% Y; l9 V9 X4 } if( lpSkill && lpSkill->dwSkill != NULL_ID )$ L- g+ [9 [2 |
{
) y& _, x: M$ N! {6 J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* j) X" A- y7 O" c$ Q if( pSkillProp == NULL )+ V: ^) x. V* W
continue;
w' y" j# q ]1 C U" k- M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" u3 w4 \- }, l. U. [2 D6 M; ]
continue;
+ R6 d+ p! {3 K: u6 S lpSkill->dwLevel = 5;( Z, ]1 ^# p5 [9 U, M: k& s! U8 t
}8 l8 ~& Q) r! J, W
}
) V: H4 o7 p3 s7 v. F" E+ o }
' P$ f! Q" a' r2 I6 N1 |' ~ else if(IsLegendHero())+ w; `4 b: g* ~, c) _1 u
{
0 Q! `3 g3 ? B$ Q6 J; P for( int i = 0; i < MAX_SKILL_JOB; i++ ) " ?6 N; O8 |5 }; d5 n
{ ( e7 Q& g- [5 K& V7 Q; t X# J
LPSKILL lpSkill = &(m_aJobSkill);) g3 h8 b: e5 P& ?7 N5 a
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 F, z q E$ S( r" O5 T' L/ N
{4 m+ h/ p. K7 e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- j" u( ^6 t1 ~8 g& f if( pSkillProp == NULL )- {1 s3 s" ]! A
continue;
; V2 J0 I9 |! K* r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- P9 f" T N( [2 Y continue;
$ C! c3 F' L, s- t* X4 W6 o lpSkill->dwLevel = 5;2 ?2 N% ^9 P2 N& L, y/ Y8 Q. u
}
6 U a& O% S8 F }
0 u* R* b( w% r" E. V8 W, N }0 q: q1 a$ b; s
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& G- f" n/ ]' ?- \. v% j
if( bGamma )
! A$ @ Y* z6 _3 T0 e2 @- } {& }& ~( [7 f; t
m_nExp1 = 0;
; ^; ~8 R9 k5 P4 w; p }
3 ~4 Q3 ^& n* X( l b, \
7 F( o9 Q" R( e+ Q; Z2 X3 ` ( (CUser*)this )->AddSetChangeJob( nJob );5 n6 Q1 j+ ~. I' N
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] ); B# B: A& ]/ d) z+ o! z! g
( H. ]: c3 Y, W! y6 d W) z& n! f! ]
8 b& m* {1 U4 R* G5 G' t/ s
#if __VER >= 11 // __SYS_PLAYER_DATA# L- Y; J. {* r" Z! `
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );, l- }2 @0 o) N2 T5 t1 E4 ^
#else // __SYS_PLAYER_DATA# h3 p" u( ~$ U* |! P
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. [4 `: b% D; @ q- p# F: n5 y
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. r( J. \0 r* I, c1 c4 o& p if( m_idGuild != 0 )
0 g: H4 `$ U- s3 s7 n- a3 L- v g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' @+ v; i# `7 S. M( E0 O( r: w" f; k$ D
#endif // __SYS_PLAYER_DATA+ ?. b: S; l6 H9 G
SetHitPoint( GetMaxHitPoint() );
) N C, T& E2 j1 x SetManaPoint( GetMaxManaPoint() );
1 `$ y; w' K: L; v SetFatiguePoint( GetMaxFatiguePoint() );* {/ p. w' @0 W2 F
if( nJob >= 1 && nJob <= 4 )
. Q4 L" h+ @( Q) u {
`5 l* K0 n) c m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 D* Y: y* S- l m_nRemainGP = 28;
" [1 I/ I8 c7 [/ `; K2 e5 ?/ M7 P }, c5 u6 O; x8 X& q8 v
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 K; |& g( V. B2 x; M6 S+ f {
+ N$ y2 f' U Q0 \# O+ V- g m_nRemainGP = 118;
( @2 g2 [6 \* l- g //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
( w. Q8 U! ~: k! @5 T+ a+ n m_nStr = m_nSta = m_nDex = m_nInt = 15;8 [2 A1 j, R) \* B4 N
}
7 \# B1 ?9 d' e2 }% g' N# I$ } if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 d- D, K: r: L1 N( Y {
- i. S* r" {$ }( A% [. n- x3 o- i CItemElem itemelem;% q/ u& Y9 U4 ~/ b9 m8 y8 {$ i/ p
itemelem.m_nItemNum = 1;' i7 _0 k9 V3 E+ ? V. \# ~. E3 u
itemelem.m_bCharged = TRUE;
# @( C) S+ T. K BYTE nID;
) g; w9 c6 q! @/ Z0 ]
( n) w& }* D2 Z- }: O% |& ^7 N4 p: P if( nJob == JOB_MENTALIST_HERO )
8 \+ ^5 D8 \6 H0 R/ D7 t- {3 o0 x: W itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 R- `+ c! Q' x$ j
if( nJob == JOB_FORCEMASTER_HERO )( { X t: F7 W9 u5 D4 M6 B
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ l( Y# q( c: h, ]) N0 L* _. ~4 r, q' ]) _& q8 B3 Q- r
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 P1 Z6 p" Z6 [! g* M }
; b1 S8 F( C$ k4 t g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# a" ^, b% o; v" k
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; @: F t5 n+ P" x) q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 ^$ A2 G) M1 Q \( S /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 \4 e! w5 F ]$ D" C8 |/ R ( (CUser*)this )->AddTaskBar();*/
6 q- q6 t& [ P/ z$ L9 s8 O% I ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );8 y- q+ M( ?3 m3 r
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?/ b0 {8 H: k) S0 H
((CUser*)this)->CheckHonorStat();& ~+ a v! L4 Y- C4 V+ t
((CUser*)this)->AddHonorListAck();
6 ^; H0 y! F9 P2 l g_UserMng.AddHonorTitleChange( this, m_nHonor);
4 t8 ?/ X, ]3 K/ ?: a$ b#endif // __HONORABLE_TITLE // ′Tà?
) S& z4 K, p) r, r4 a$ s }
! I) `8 i; s' C" q- a4 C#endif // __WORLDSERVER
5 e) d/ h. H* e2 q2 ?: [} . @9 _9 S1 R7 ^) W8 W' Z
- `$ f8 j; I& y9 F3 ~% d
然后你进入functextcmd.cpp并添加以下! o- A0 F4 G* X c* s0 j
& @& L: r( h/ s
代码:4 m6 T6 _% u7 a' u m
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ }: w* B, X, { D下面插入/ P' W$ Q) B7 m+ S) m9 S& @9 m: E c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 X3 x/ \% A& i; Q# b
]5 P: \: E: X" `3 I: G
然后你去. W# H; Y7 Z1 p& u, j
% u) E9 B) ~2 f! h代码:
, p3 ~) Q5 g" T0 T$ }0 i代码
1 F& ]( U' ^3 T7 y1 N5 s8 o" ZBOOL TextCmd_ClearPropose( CScanner & s )
6 U* v Q/ m! ]8 P$ y# W1 h/ p{( o5 b. H1 I2 x& b6 s
#ifdef __WORLDSERVER. K' Z, |/ p: f' M: y
CUser* pUser = (CUser*)s.dwValue;
5 X# q% u" }7 y6 h) b7 ^ g_dpDBClient.SendClearPropose();
; d' c5 V# N& y& k- S& j( d/ v# M#endif // __WORLDSERVER1 q/ X5 c2 ~' [* Z2 R( H
return TRUE;$ c% |7 T( O0 h/ N% P5 W" X
}' x- k. F$ n; f. R, v2 E0 j
下面插入. U+ ?3 W! i! b" O* a: o. F
BOOL TextCmd_rebirth( CScanner& scanner )5 E! A* i2 y9 g; e
{
( X! t, ^' {) D' u+ R#ifdef __WORLDSERVER! O q7 w1 P/ g1 t
CUser *pUser;
8 [( [) I9 ?8 G6 M7 }! jpUser = (CUser*)scanner.dwValue;
2 R+ F5 v2 n4 w5 yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())" ?% C* I4 O- x6 R6 I( R
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# b! |( Z! r) M: E$ gelse& d+ W6 g8 x- |: h6 h: e% H) d( y
pUser->AddText("你还未达到重生条件!");
3 n2 |/ l4 Q6 n! D1 d/ W; ~#endif& k- m3 R& O% k
return TRUE;. S, r1 Q0 h/ V
}
3 q. P7 D p: z1 ~5 B( X4 T+ r; x& B$ [6 M0 p) n5 D
/ V+ f6 j7 h/ f" _
' q7 I. N9 K- ]; n- Q8 |* P: R
8 O' [5 i2 Y! l @ |
|