|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! |6 q8 Q8 c& A+ l
. p# d$ n( U( Q# XMover.h- ~: }- f* H/ R" V; E& J4 [
代码: \4 }2 c5 W. q4 {( {
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) S, y' I* w) O
z! e6 B) A( m下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " R! |3 m# B W9 U! H3 }
, R# |/ i7 h" U* C2 Z* I7 N0 y
然后你去mover.cpp添加
& b* }- R# Y; Z
! \# o# o9 p- u( o8 |3 g) m代码:
8 y/ ^1 C; ]$ E! N& h, svoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 D2 e5 }+ M" E1 d6 Q. ~# [! \{) g2 q- c6 F' ]9 K! V
#ifdef __WORLDSERVER4 E# b n8 A$ g0 C9 f3 h$ K
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& A+ p( k2 f! M$ j& ~* n8 N% f MoverProp* pProp = GetProp();
& ~& F7 A) O! p* k if( pProp )
# n8 q! U( X: w8 |2 Z+ E/ M {
6 |' X; }) o. J Q0 g if( nJob > 0 && nJob < MAX_LEGEND_HERO )
" G5 p+ D! _7 n9 } H$ s; L3 y {
. G& ^' C) r3 {8 d AddChangeJob( nJob );
, a; a B& t6 Q. H }else{& W* X; u( N8 k& L/ q
return;
# g. U9 o0 }/ E0 K6 ]4 w1 _) m }9 A' f: S& e( u3 x- F
int nPoint = 0;
: q" i$ }( a( Y+ C! M- | if( m_nJob == JOB_MERCENARY )
8 U& m9 [# g& N/ P" [$ L nPoint += 40;
- g. c" h; Q( @( |) ~- I' H' A else if( m_nJob == JOB_ACROBAT )
( m% z6 U* z5 f G0 c- R9 l: e nPoint += 50;
. L: r) Y1 v& K! [, Q+ m3 ]+ s else if( m_nJob == JOB_ASSIST )
, ^. U% ]% N0 |- B/ r1 R) H nPoint += 60;) ]3 K8 S7 D' T5 X
else if( m_nJob == JOB_MAGICIAN )
L. W5 H3 F4 b/ E nPoint += 90;
& W' [/ A- Z, l; d; } else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& P: q$ r3 t' n; j; s
nPoint += 120;
1 Z i: z' \% ?/ c( v) Z+ F else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) s6 M" J& k9 A4 f" H
nPoint += 150;- C, [- e3 ~: q* ]5 q
else if( m_nJob == JOB_RINGMASTER )
' Z) W$ b5 `1 c0 e, `& }# e) [9 ] nPoint += 160;
C& F' n$ |, [- i5 w s8 ~ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 C) A0 z* Y! ` \ nPoint += 180;# V1 C4 q) N3 L1 _4 j
else if( m_nJob == JOB_ELEMENTOR )" f2 p0 ]2 p- P. N- X2 H
nPoint += 390;
( p M6 `" b% ~. t/ o else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 X/ x5 Q6 f8 w4 c# o nPoint += 120;
) |3 z7 ?9 F- w: I& L: ^ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )" s6 I5 x3 A5 s0 w8 [( d
nPoint += 150;
4 }: i0 m2 i6 a0 }: ]: H else if( nJob == JOB_FLORIST_HERO )
/ n E& I2 v/ D) u/ k8 I" q! O$ f nPoint += 160;
& Q( i4 W$ [/ a0 f; d else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), i T) r7 t* d) R8 O7 ^# E
nPoint += 180;$ C6 [. I9 H0 W7 i* v1 _( c
else if( nJob == JOB_ELEMENTORLORD_HERO ); D) G* p. s. L( L- `0 ?2 ~- H
nPoint += 390;' ^' w1 ~# Q @4 z
& G( u" _+ }9 a$ |& W: [
AddSkillPoint( nPoint );
+ ^. t6 j8 `+ \6 K" F m_nLevel = nLevel;: m" r! u! D! q/ [ R" @
4 M2 j' M; S4 [. `' p1 r
SetJobLevel( nLevel, nJob );
3 u9 i! \% c( M) \6 b" E. O4 m3 x m_nDeathLevel = nLevel;# p6 n* o0 R4 O
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" F( _% [5 Q# S4 t, Q if(IsMaster())
4 w7 O' H1 n$ z5 G# _ {
5 H& d6 c! T: u int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- ^, E8 K; m) ^
if( nLevel > 59 && nLevel < 72 )7 a* R6 A+ U% i6 |! E
dwTmpSkLevel = 1;
. U* j/ H/ E5 s2 L$ Y else if( nLevel > 71 && nLevel < 84 )& R+ ~3 F2 Z; ~: E# n
dwTmpSkLevel = 2;
2 G5 P7 T* G- Y. h7 y else if( nLevel > 83 && nLevel < 96 )
% _# ?+ i& n/ x: |& l dwTmpSkLevel = 3; {9 {8 x+ N( N" K, m% W3 @
else if( nLevel > 95 && nLevel < 108 )
4 \% Q1 ]& t( ]0 f& ?5 U( _ dwTmpSkLevel = 4;
# { Q5 C# T; v D1 t9 { else if( nLevel > 107 && nLevel < 120 )* k+ b- k6 o/ V. e. A' R' k# F
dwTmpSkLevel = 5;
5 N+ X+ ]# M2 y/ U for( int i = 0; i < MAX_SKILL_JOB; i++ ) ?( E1 ]% E/ C% G3 P. h
{ 1 o+ E3 G: i+ {" g- c; D
LPSKILL lpSkill = &(m_aJobSkill);& W7 e) k- R* o; j3 ^3 e
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ [( e/ r0 D( E3 _& w {! ` [3 v1 M' S! L" m. x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! W5 O0 L! |0 g0 d3 T2 q& `3 ^% e if( pSkillProp == NULL )
4 U/ T1 t; T$ Q T# w) k' N, Z continue;
! s$ j u' a2 K: i5 M b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
o+ A* H8 u+ D W8 ~9 _: x continue;5 L7 \; G6 J* h7 U. l3 v! ?6 Z @+ }1 o
lpSkill->dwLevel = dwTmpSkLevel;
5 p t. e( y, U. K }' d9 a7 y6 j0 ?; [
}8 ]7 r, B. N) \
}) N# e; e1 r; y# \
else if(IsHero())
- w1 `; C% Q" e1 V+ u {' w* w0 M2 D1 K; x" [2 R; J: M
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : t. v" l" v- S/ p1 T+ [' h
{
* N5 X! A. k E7 n* S8 O LPSKILL lpSkill = &(m_aJobSkill);
( k. ]8 d4 d; A6 X# i7 g if( lpSkill && lpSkill->dwSkill != NULL_ID )
" R) o$ ?2 m* T+ f/ R, c/ E1 P {7 {4 Q1 {/ _% D$ T9 x8 k4 g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 f* x# x3 A2 T1 `
if( pSkillProp == NULL )
9 D1 l& X5 ?5 M1 {9 h7 \& n continue;
& E0 B6 ?- h, S3 T1 s( l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 z0 D4 e! o# |& p% d* m2 o continue;4 N/ L' F" `) d d
lpSkill->dwLevel = 5;
8 G ~$ D% @6 ~% }- t }8 \( ` y' R. {# R$ v" d5 ^- p8 [
}
8 |: q5 L2 t& V }
8 p$ ~# V% S3 J: Q! P6 W else if(IsLegendHero())$ P6 R7 [8 ?9 z2 @
{
( R9 Z9 e2 r6 T" ?" q7 Q1 m( q for( int i = 0; i < MAX_SKILL_JOB; i++ ) Y/ p% w3 f' ?& i+ v
{
, k. b9 }% I1 _ LPSKILL lpSkill = &(m_aJobSkill);
. v' H8 o2 e+ `6 e4 p/ l if( lpSkill && lpSkill->dwSkill != NULL_ID )
% Z9 z+ j0 S- U" }- i' q {
, P& f9 y2 K) M( K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( p- F! n$ P3 ?& q3 K) r$ d' b if( pSkillProp == NULL )1 N N* s" \5 r& G9 E
continue;
3 A* g5 W+ V% J a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) M' ]- A* w, M
continue;
9 I0 B# p& `$ U% \( } n lpSkill->dwLevel = 5;
% S7 _$ w0 j1 E3 M4 _ }" Z( g8 L; e' N( z/ `; s4 k3 c
}! ~9 k+ L1 n, H0 ~
}, i8 B: E# \, ^9 I
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% a9 w- Z& `# r) c$ P3 h/ P0 l
if( bGamma )+ p J. Q0 J$ G9 S' K! E, r# E% U
{
% Q+ o K4 Q; q8 y, V m_nExp1 = 0;
. U D+ [; ?0 q8 D/ l& L }
. h' s. ^" y% {# S$ a' A, \' G* ~7 r* d/ a
( (CUser*)this )->AddSetChangeJob( nJob );
5 _' P( D! G! C g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 z* F5 @! \5 B6 E) Z7 u2 E4 h& ^/ m+ q
7 m7 Y* W1 ]5 r3 z. M
#if __VER >= 11 // __SYS_PLAYER_DATA
8 a0 ^7 n- S5 D8 W8 X" T% x q+ Z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );1 L' _" h4 g2 Q! e
#else // __SYS_PLAYER_DATA
4 p* b8 m; o' x) |5 S `: H g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 }, V) n0 H, v' q- A4 y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( G! z! N x3 @( u if( m_idGuild != 0 )
8 N9 U0 u5 P, k) O# h2 q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& l( \- Z) Y+ @) }6 s5 b. I$ ~, [. q#endif // __SYS_PLAYER_DATA( t# i( E. z0 a. w
SetHitPoint( GetMaxHitPoint() );8 f; B4 k0 K4 l/ n1 J$ F2 W4 L. g
SetManaPoint( GetMaxManaPoint() );
0 E. e: ^2 q$ C l4 B) |9 E SetFatiguePoint( GetMaxFatiguePoint() );
* ^( c) W3 \- @. h: d4 l0 U8 U* X if( nJob >= 1 && nJob <= 4 )
# Z" X6 v1 A* `9 ?1 p {$ Q/ c0 u1 p6 c; ?& Y$ L) K
m_nStr = m_nSta = m_nDex = m_nInt = 15;' r2 m1 [0 s# B2 H
m_nRemainGP = 28;
; t0 N# T$ C6 @* i* X9 y }. g. k( T$ i. f; Z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )3 G. N$ X! D/ e! d M* O
{
8 Y: ^. R5 D! C m_nRemainGP = 118;
) F4 |( w4 I' z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;+ Z- `! r7 [" a. _
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 f2 W, K; `" V& p" e: b
}8 B4 |; y7 j' p% B. V
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ }- Y& `; {% g6 d8 y1 ?( u {) C( y, i, A# {! j: i
CItemElem itemelem;
1 x( m1 D' v) g9 C2 r itemelem.m_nItemNum = 1;* q1 s! a0 |7 k7 {1 p6 r1 c
itemelem.m_bCharged = TRUE;
* C8 a$ a' X. U/ R/ S BYTE nID;
; R; ^! _) Z9 @6 c5 v" p$ Q1 f t
if( nJob == JOB_MENTALIST_HERO )2 b6 Q/ w* w3 s* o" b( l
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 {# r' w/ o7 P$ _$ ?0 X, {- o
if( nJob == JOB_FORCEMASTER_HERO ). F# A/ n# `0 c. q
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 o( `! c+ b F* G& Z7 n
- [6 C7 R, s& P) R
( ( CUser*)this)->CreateItem( &itemelem, &nID );: ~( U7 F. @+ _, c2 q
}" U# f \5 ]7 k) E$ x' _
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. [/ b8 M$ k8 S% g; k) Q ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );+ g' {* _( ?; c" @7 u$ L/ o
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 b6 `4 G1 x3 h; S# s* m: h" m" m1 b
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 g. q. ~/ N# l1 X ( (CUser*)this )->AddTaskBar();*/$ a" {' F$ i1 X
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
9 Q/ U9 d! T% L! c; v0 B6 l#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?3 H! v' ^% J9 `. D" I* Q' U2 l
((CUser*)this)->CheckHonorStat();
# a) _4 ]" o$ ^9 d" ~+ V8 m0 O ((CUser*)this)->AddHonorListAck();' b! h5 g+ h0 X, E; Q
g_UserMng.AddHonorTitleChange( this, m_nHonor);
' i* H% ]: D3 S: Q: B( R#endif // __HONORABLE_TITLE // ′Tà?& A$ q3 V) @: w, t4 T# C7 S8 d
}1 N% m8 O: @1 t) r* r
#endif // __WORLDSERVER! w) E) o2 a9 D4 @% s$ a% B" Z& S
} : u# Y: K# E! a5 f
6 z, s: ]: _4 Z# a
然后你进入functextcmd.cpp并添加以下
! ~( ?% I# T h
6 H- S$ v; T1 c1 Q+ v$ N代码:4 i" ]6 R. o/ H* P9 v
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
4 y) ~5 N# v. H/ U1 H' h下面插入
! q& m, Z: J* I% y/ j; N& J$ JON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * S) A2 F( U: Q. ~
1 a1 E8 P1 A3 ~$ R* l然后你去6 G, v* q h* Y" @
. J/ }; h! Z) e. c
代码:, v; [- C7 K( R
代码& k, ~1 s4 S2 m3 l4 v# S9 T
BOOL TextCmd_ClearPropose( CScanner & s )' b& o w! w3 \+ i; ]0 _1 n
{1 z' Q; [+ ?; O
#ifdef __WORLDSERVER4 ]6 } I/ U4 l U
CUser* pUser = (CUser*)s.dwValue;5 m4 Z; C' y& x3 S% X. h. m& [
g_dpDBClient.SendClearPropose();
9 q# @" x% e1 ]$ u7 ?#endif // __WORLDSERVER: \- W9 C6 z& R8 S- h
return TRUE;
5 l6 v+ M, Y/ s. p0 k4 K' N( m% r}
" w) C) r5 V) V# I' E. j下面插入
$ S% R/ t; a5 g2 P+ K# X% SBOOL TextCmd_rebirth( CScanner& scanner )
0 U: s* h7 h7 P E1 A7 K8 o1 Y2 d5 n{5 O3 E/ C+ T. V5 b
#ifdef __WORLDSERVER; G9 U8 {1 P0 q3 \
CUser *pUser;
8 x7 p9 L5 ]6 C$ h* kpUser = (CUser*)scanner.dwValue;0 Y8 f: S3 O3 b4 R9 |/ M
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( d; j, p! F1 A7 v1 P( g1 ~. n
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 @2 ^. c$ I" `! C) `
else
3 f# i: A: ~, j8 h) T' mpUser->AddText("你还未达到重生条件!");+ q! I7 |9 }, W1 Y# ^& [6 ~
#endif n4 U6 _8 d2 r3 @0 O8 I
return TRUE;3 T: Q. U8 x4 {9 g# r3 c3 ]! C. B
}
6 q- P( C9 \6 Z( Z& Y* o3 Q4 H' x, Z) n. u9 m6 I2 _) j/ Y
! z4 C* ^, R! c- {. e, D4 ~2 N5 q- B3 I, a; t2 H
3 { ]) i. l' j6 D7 I$ W. W$ M |
|