|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ z5 y( Q) i0 M$ n$ e7 K% Q6 d! Z" S: v+ u
Mover.h2 H2 ^$ y& |. e7 k. Q
代码:
: D. |& |$ X2 j' A/ m1 s找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü; o a- o; d0 `7 d# b% ]/ ?2 P
4 X1 B( I7 k9 V8 y! B+ f2 i下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, D! B: S! z- u6 j
& W2 a! E3 P7 S! _) L4 Q( ~然后你去mover.cpp添加
& o0 d. x8 g2 s6 G9 i, }& N+ Y, n+ N' T% F8 X, u/ w" ]3 ?7 p1 F
代码:
: q, O6 |, U" c; L- d4 uvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ), R: K, c6 X4 P, f
{- I6 U8 m9 x) b Q5 b8 E: @
#ifdef __WORLDSERVER
" A1 w/ T+ w) z9 s" q) F // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó+ M5 F9 z, w. y: d1 t0 ^
MoverProp* pProp = GetProp();- V7 _8 w% |( A S! x
if( pProp )
* [" n3 w/ w& F# v2 ]7 d) k4 \ {0 E! S) z5 v. P% | E: U
if( nJob > 0 && nJob < MAX_LEGEND_HERO )" S9 ?! D& `: w q
{% I- _$ v# N; p$ w
AddChangeJob( nJob );6 W- ]1 l e- t" z' b" q
}else{% {" t% S3 k+ B
return;
( i6 d1 N- G' j0 M+ ?: `+ M T }( p, ` C- b! o5 L7 Q: B6 a
int nPoint = 0;. E$ `8 T4 o* O4 A( v
if( m_nJob == JOB_MERCENARY )
/ t* }5 F7 n) N; l$ t; F2 w+ ] nPoint += 40;: a, ?0 K" B" _7 C- R0 j% I, L
else if( m_nJob == JOB_ACROBAT )) _. m c! U5 ]" o4 n# E% u
nPoint += 50;$ K! N4 m# b% L6 x5 z, @; N% e, h
else if( m_nJob == JOB_ASSIST )+ I6 M* D! C1 U/ @' f s8 i3 u
nPoint += 60;
6 ?* {$ U! H; W3 L else if( m_nJob == JOB_MAGICIAN )/ u! [% F" U- I
nPoint += 90;
1 F. ~% A+ n# D* {. {( C3 y else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
h+ ^, U' W) B- R nPoint += 120;
% S4 d5 J( ?- _5 b else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
- o/ d8 |6 D+ }$ n: u nPoint += 150;
$ f8 m) q5 Q/ i G O else if( m_nJob == JOB_RINGMASTER )$ [ U' \, t) O5 e8 G5 ~
nPoint += 160;( u* L6 D9 A' v0 t1 ?
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 f) s3 {2 A8 R# {4 x8 t: R nPoint += 180;
3 K6 o9 ~5 Q2 m, [ else if( m_nJob == JOB_ELEMENTOR )' I/ n' G% d- G0 t }6 B3 T
nPoint += 390;. ~. q& |# ^$ n) b0 P
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- s0 T) w1 E# J# f% F( ~" r f j nPoint += 120;
1 a* g# x" D; M else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 u8 n/ {$ h$ s7 U, u3 q nPoint += 150;
0 m, r# t& c( c z4 q2 O$ l, I else if( nJob == JOB_FLORIST_HERO )
8 g" }- |) ?. _ nPoint += 160;1 X* H/ T: ^' F/ ?9 e3 R. c
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 j t) P1 {. {$ b nPoint += 180;
9 M! i+ [4 c( Q9 B% W else if( nJob == JOB_ELEMENTORLORD_HERO )1 E: |1 x5 D6 D1 p6 d K# ^: ?
nPoint += 390;
! w( n8 ?( t8 n" U" m6 U+ B
; C- I. k: e% h: i' L! ?2 n AddSkillPoint( nPoint );
; `( Y+ w3 n3 P# j: N7 U* F m_nLevel = nLevel;
" t6 l( B4 W7 l: ]2 L! j3 Q6 z' N6 X1 I2 u
SetJobLevel( nLevel, nJob );
j; S' U( w# w/ Z3 ` m_nDeathLevel = nLevel;. h" s: G' X3 Q" f V# f2 `
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 D% k9 C9 Q) x+ Q# j if(IsMaster())" l" v/ W/ |- |7 i! l# Z" J1 v
{
. T1 `: E" Q f2 t( I int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! v' R4 B/ Z9 }7 m, ~3 ]: W if( nLevel > 59 && nLevel < 72 )8 w! l% [) e/ T- c
dwTmpSkLevel = 1;
4 T7 o) z+ l. c! V' ]) u; ^! e else if( nLevel > 71 && nLevel < 84 )/ \1 Q3 K3 w2 d3 A
dwTmpSkLevel = 2;. _4 f4 b' }' u) D O6 o
else if( nLevel > 83 && nLevel < 96 )
: s. Q- B' h" j" P dwTmpSkLevel = 3;0 ^( v4 f% I. K( H- S
else if( nLevel > 95 && nLevel < 108 )2 ]( F! j& X- x) c
dwTmpSkLevel = 4;
: J8 I0 O8 b/ S5 Q% { else if( nLevel > 107 && nLevel < 120 ): L1 ~) ]! S2 x
dwTmpSkLevel = 5;2 {& v. d6 q. ~6 Q/ s' U$ n
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 Y9 [0 v$ O& E4 N
{
8 h& ^' A* S ]0 H8 F LPSKILL lpSkill = &(m_aJobSkill);
( O7 H% Q/ f. t ~ if( lpSkill && lpSkill->dwSkill != NULL_ID ), ^ Z/ [# F" I$ P- k
{7 C v9 f- y2 B6 }( j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( M Z# R" Q$ X, t' `
if( pSkillProp == NULL )5 B6 a8 X# J9 Z; G& g# X3 h' v
continue;9 y N1 w( S: L( d/ x7 k, @. r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) D% B$ u" t0 R0 \$ j; Z+ }. S
continue; H% q) J; x" K9 C9 o( H+ t
lpSkill->dwLevel = dwTmpSkLevel;
& f; z# B& q: P: i# ?# J; B } @3 ]1 {/ _) v! m. Y" L; Q
}1 _& M6 s% c5 d; S
}: D5 p' h. O( m9 ]6 j, L6 v
else if(IsHero())$ K# L2 O0 K5 w, c
{
0 V5 \) D6 _3 [ d# o$ J for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 j8 x% |+ {/ B/ k; s( L7 D
{ 8 X' |4 O1 n; _- p
LPSKILL lpSkill = &(m_aJobSkill);
2 U w i7 i8 E& u. Y if( lpSkill && lpSkill->dwSkill != NULL_ID )# [# E l s" q$ z
{
* s, x; m1 t6 |, o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! s) _* s @: C+ v: x/ X$ ]5 I
if( pSkillProp == NULL )
: G3 C* @' v* ^: ?5 s6 c; a8 F continue;
8 ~5 X0 z2 a+ e, \2 i( I' d* p, X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. H0 T6 X. h; `; ~. N i/ } continue;
+ U& f& u9 f/ n* h0 d; n6 u lpSkill->dwLevel = 5;# ?, z* J- @( r: [4 C9 m
}
R* P# h% v' j }
8 D# ]( h: @( S8 W/ c8 S }
) |0 n5 q. A1 `4 K else if(IsLegendHero())4 w9 J9 ^) S9 S' c
{$ {, L, \" j' b* G5 m$ ` B q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) a& x- ^8 ^( X$ l3 G1 [: A {
% ~( |9 s# U5 s" U4 H LPSKILL lpSkill = &(m_aJobSkill);
; D+ K" l" P Y# g if( lpSkill && lpSkill->dwSkill != NULL_ID ); s2 P8 G) q5 N: H' z7 C) N% w
{
. l) n0 Z$ E! \' A3 |. K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . D- _- D- D X1 c! W: |
if( pSkillProp == NULL )
% z' _* X: j$ B- q1 S" {: h continue;% n$ C( G- Y& D5 o; D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 z0 D: t) l4 R# x# J continue;* Q M' ~% Z" g5 G
lpSkill->dwLevel = 5;
9 O. K6 q/ A4 S9 Y, M) r$ E" r8 f }
& Y. c2 { `/ f }4 F1 ]5 H$ ~- {5 x1 r J6 l
}
/ J# W% K& E* l7 j. i; i& c#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 F$ e# s2 a% J: A6 G if( bGamma )
& Q2 ?# ?/ x( F4 {' p. i {9 g8 e, I. ^& Y+ @ l# [
m_nExp1 = 0;
* b" ^/ b! o: @# L$ X% S }0 I4 I* l+ Q- F" a& }8 a. Z
, i+ `' i7 M& O7 n/ `2 L4 ^ ( (CUser*)this )->AddSetChangeJob( nJob );5 z$ P* P; \' S* f
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 i& e) P9 r. q& ^% ?. N' q& r& z! y m, d2 F
; K5 N& `# I" _* e7 V7 U0 M X1 B
#if __VER >= 11 // __SYS_PLAYER_DATA" _ `9 W, m! f+ i. M9 u* R3 s
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( U H9 e! j/ E! \/ w5 D/ P% v#else // __SYS_PLAYER_DATA
) t u. I, Z6 f# D* `8 E g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" [( C5 q S( j$ ` g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 j/ l3 u% c! C7 Z if( m_idGuild != 0 )4 G" v* h% H; `$ l
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& [4 U; ^* q0 h, G4 n
#endif // __SYS_PLAYER_DATA
6 c5 I8 I; h+ z* V8 n; \8 L4 J6 Q SetHitPoint( GetMaxHitPoint() );
& Q* E2 X) B) H# c) ^$ w/ Z SetManaPoint( GetMaxManaPoint() );. |$ P4 Q' e9 F7 V' Z
SetFatiguePoint( GetMaxFatiguePoint() );
& _0 w6 o; G* V7 } if( nJob >= 1 && nJob <= 4 )
2 v( H! I' g' v4 V! x! J2 ]0 { {
& h U* t6 d9 h3 F. b9 n m_nStr = m_nSta = m_nDex = m_nInt = 15; `. {4 b8 w8 |/ B7 X2 V
m_nRemainGP = 28;+ B' d+ g4 W8 }+ `. J, L
}
7 f) Q7 S4 c3 |6 t2 \- |2 e/ I+ _* t3 G if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 d1 }! B. b# L+ b- \/ u: {" L
{) V! }$ K- c" |+ G/ v
m_nRemainGP = 118;
" s+ l5 B: w8 v( x0 e! p1 a //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 L# a1 r5 q8 L) s2 c
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% l4 h- C- p- m- Y( }3 w0 P* \+ _ }1 \) U8 N7 F- M/ f1 n* K. D$ X
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. q( t- p: R; K: m {
% `' G( N$ ^" ? CItemElem itemelem;! j, B8 f6 T( ^( r( A2 j
itemelem.m_nItemNum = 1;
A) f: d4 k1 J2 W; l8 F itemelem.m_bCharged = TRUE;$ R {; n0 _, S
BYTE nID; M1 Q1 c8 h, M* J( I
3 D5 a' c! M0 r% X" P; ` if( nJob == JOB_MENTALIST_HERO )
4 O8 ?+ E* F/ @8 r2 a" l' c* I itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
/ M7 @3 H) H1 N+ g! ? if( nJob == JOB_FORCEMASTER_HERO )7 P: ]1 I8 M8 G3 Z3 Z8 Z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- g) i/ l: K0 N/ Y+ b
) H$ I1 F, f$ h ( ( CUser*)this)->CreateItem( &itemelem, &nID );
( V; B1 b& T/ f& h }. x- i1 Q* {8 f, G# q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );4 b0 F7 a$ S9 ~5 {9 c, L
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );1 q, d5 H+ j8 \7 p' V
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& E( U( A* b" Y! @. e7 d
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 j6 M2 [6 a8 N4 f ( (CUser*)this )->AddTaskBar();*/
+ x- j. q, @+ v; b4 n% n ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );) k5 D# ^! M+ w% U5 C) ^ y
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, K7 O5 P! `' ]# v8 S5 b! |
((CUser*)this)->CheckHonorStat();! h* ~/ n+ j+ E6 G- b! e2 I
((CUser*)this)->AddHonorListAck();, C. o, ^$ L4 l6 e* i) h
g_UserMng.AddHonorTitleChange( this, m_nHonor);2 X/ l+ C, |3 M& n+ j% a
#endif // __HONORABLE_TITLE // ′Tà?
+ `1 A# H! Q3 G9 U- H% D }/ k; t; M1 _, I
#endif // __WORLDSERVER" N6 Y8 E% D- `3 l0 ?
}
4 Q+ B+ `+ u- p. L: O' A
; Q% Y) k; p: \4 S/ O5 I7 s然后你进入functextcmd.cpp并添加以下5 _+ C: v7 E6 K3 G4 p& d
- J& L4 y# V/ P0 j0 E2 \% N1 j代码:
2 i; u8 ^, E/ G4 z. [ qON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 v( r0 |1 c- N* [/ }下面插入
9 ]- w7 `2 m+ U$ f: N4 C/ o) ~ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . @" q8 H0 J) [+ p. N1 ?' I
( D v5 ?& U) w" U& K! }0 z4 P9 V0 Q然后你去
b! ~8 G2 l5 B2 [ E; Q: S0 K+ A! f2 w$ } w" o5 G0 t
代码:
8 S( V& U6 n1 ~+ O5 v' C6 X# H8 H代码
- k' f) @) h: `* r% ]2 @BOOL TextCmd_ClearPropose( CScanner & s )1 k2 {7 i) S2 M" P# A6 {+ f0 ]
{
9 o3 o. k9 `/ ?! s, `0 b% }#ifdef __WORLDSERVER+ \: g0 `+ L8 B7 @" O4 w
CUser* pUser = (CUser*)s.dwValue;
6 z/ K: Y' D& `3 x g_dpDBClient.SendClearPropose();$ r2 k9 o4 ^( I c/ ~
#endif // __WORLDSERVER& M4 ~* p; n) o
return TRUE;/ v, w, H, l# G* Z1 f5 ^3 O, a
}' Q4 A+ k2 h, Z) m- c
下面插入
& w& Y( o! Q5 F$ P7 b8 P6 OBOOL TextCmd_rebirth( CScanner& scanner )
- w# W) M( h+ u7 B% }% k{; w6 y! z0 |+ F( B6 N; E# z
#ifdef __WORLDSERVER
+ V( L. @( w# t1 UCUser *pUser;# b- l' D5 K% i @) z+ N0 p r# O* V
pUser = (CUser*)scanner.dwValue;: s8 R! D# a/ B4 W7 ^. q/ k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), m" ^7 M- N7 x" l4 p4 U- `
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, ~0 |0 P1 e& V9 T: C. I
else0 ~# n+ ]7 ^* o" H9 t
pUser->AddText("你还未达到重生条件!");2 F+ i' q N! u9 R! B
#endif, F( J3 s2 B- |; D8 ?9 _
return TRUE;+ L$ o( {2 ~, }0 \; A
}
9 \ ~+ `9 a% u
4 S( s6 V# o4 g$ C1 O
! ~ `' y+ v: O7 s; T# J
! `6 s' L! g* L2 ~# [( A1 _ a# Z! _& J$ \* }6 |/ \
|
|