|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 e( y( T5 |0 ~8 G7 W6 R7 Q8 }" L' j7 X; c" Q% U
Mover.h
! w0 j- t9 ~& }1 v, y代码:$ I8 R- H" ~. G: h2 c7 U2 w5 |
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& D0 R+ y5 X* `9 {+ y
4 W' d6 C/ n+ I- U7 _$ L( G; C
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 0 w# U' L% n, V) V
0 s& H% B w$ i8 H/ ^
然后你去mover.cpp添加2 \6 z5 @4 [! C% m$ I' e
$ j" o1 c# o2 `; Z# t代码:
; T* J! s* E, n5 I! o& Ivoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 \' S- Z7 {0 I9 p% C0 N d- S
{
! O3 W7 D8 i$ M3 T6 c#ifdef __WORLDSERVER
! @% O) Y6 n- ]- C: V1 ]# d // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
' e+ F: n$ ~' R S d! W MoverProp* pProp = GetProp();
6 E, _ Z$ b4 D! ` if( pProp ): S9 R" Z! k8 C: z: `& r& q J
{
! r% F4 E8 ]% [* w. {+ d' f if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 N! u: L* m2 D: X; S
{8 H+ n' f6 b4 S6 H1 l; a5 J9 B4 x
AddChangeJob( nJob );: V( ^! b4 \" ~5 H. h* \ n2 C# O
}else{
3 i& O9 S# W5 {* x return;. q Z! {) R8 j3 h
}
, l J9 x2 o2 J: ~# B8 _ int nPoint = 0;
! B6 E+ G+ e6 u1 r2 R' i if( m_nJob == JOB_MERCENARY )' S! l$ A$ c8 D4 J: [$ F0 h
nPoint += 40;. w( |; ^; k( E7 K, y# N
else if( m_nJob == JOB_ACROBAT )
{' _5 c$ T7 Z9 c" F, h* Y nPoint += 50;7 i" s# I# f! D. a
else if( m_nJob == JOB_ASSIST )& m4 |! \! C% I* N0 y9 N# ~
nPoint += 60;
5 Y! g2 l0 q3 M2 k; Y else if( m_nJob == JOB_MAGICIAN )5 A, ?; f5 z& M- H, r; }
nPoint += 90;
; l: T1 K( H# K' S else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 B5 @# ?1 F+ Q
nPoint += 120;& E0 r% P ~, H- C6 l+ `
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 o' v4 X9 K5 G* m2 j: Q. F
nPoint += 150;
5 M i* f! s8 `/ U+ d* q else if( m_nJob == JOB_RINGMASTER )
7 u8 n* q6 Z$ j' c' s. Z) ^% K. ~ nPoint += 160;1 Y Y7 J. T. w5 i* q6 x& f
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )4 i/ A. ]6 Q8 W2 Y9 Q5 s7 }- _
nPoint += 180;+ @2 J ~$ f# y( p
else if( m_nJob == JOB_ELEMENTOR )6 e7 J `5 V: R6 |. T) a
nPoint += 390;' ^2 e& i& G* z% ?, E2 ]+ _" S* ]
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 M4 D( T, B" |+ m) C$ q: n- L; L- {( e
nPoint += 120;
( B( a* r2 [- H else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )! ?6 t5 u( f6 g3 R* T; e% j
nPoint += 150;
: M# ?$ ~' @$ v& z7 d! b else if( nJob == JOB_FLORIST_HERO ). \ F1 t! g) _
nPoint += 160;0 c5 I+ t) {% M4 {. ~
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). Z* _; o, U; S- E* \0 ~* O
nPoint += 180;
8 S2 M% X2 _; u) m. l6 P, S' ? else if( nJob == JOB_ELEMENTORLORD_HERO )# ?* O/ w% A2 R# r3 P6 e
nPoint += 390;
" X/ s5 D ]( U2 Z6 q6 Z, O6 X* l% u. A
AddSkillPoint( nPoint );, i! [1 _) M! M0 ^6 O1 b7 C
m_nLevel = nLevel;1 I! k- `( O% B7 L2 v9 A" R5 \! ~/ M
: |' S3 K( ?5 L4 O# Q3 ] SetJobLevel( nLevel, nJob );; S( ?3 R, _; r' y# q, l) A- V+ @( D
m_nDeathLevel = nLevel;& x! \' J6 S) D+ h! t/ q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 n- D& J& { A* w& k, k if(IsMaster())
: |2 d$ b) h( U/ `2 I+ z { {* n5 S; l7 w& g) K
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 p! o/ Q1 P6 w% ? if( nLevel > 59 && nLevel < 72 )# o) t/ N& o$ D! R1 c
dwTmpSkLevel = 1;' W4 x2 ` b( p* h: `8 V
else if( nLevel > 71 && nLevel < 84 )1 H- j# E5 b, O
dwTmpSkLevel = 2;$ F+ b% [; a9 F( O8 Y$ W+ y, C4 p0 H
else if( nLevel > 83 && nLevel < 96 )
6 x( O$ n8 C) L0 j. Z dwTmpSkLevel = 3;/ u$ m6 N9 E. W; C, m8 J! P9 E: P
else if( nLevel > 95 && nLevel < 108 )/ I$ X) j. U. S4 P0 O
dwTmpSkLevel = 4;
: P" _$ B: S1 W" H7 F0 G: X else if( nLevel > 107 && nLevel < 120 )
/ I$ M F( p' ?2 C4 v5 N6 e dwTmpSkLevel = 5;$ o, i5 F; y5 d3 K" \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ H: Y2 L) y: t; V% Z/ i { - P) `1 K) D5 y
LPSKILL lpSkill = &(m_aJobSkill);
6 R& b! H$ `5 ]7 Q9 F if( lpSkill && lpSkill->dwSkill != NULL_ID )
* _4 |1 g; a! Z. u k- t {8 N* E" a/ V7 n/ o* e2 @8 }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& R0 J+ [# {+ @7 g# V* y6 T if( pSkillProp == NULL )
" V+ p9 M% F" L! e continue;
; R1 e4 b8 I |- [# z1 c# {" s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 T9 r( k( C/ }/ V9 {5 P! P8 Q
continue;
: ^ U0 R( ?0 I) l/ b$ R1 p2 o lpSkill->dwLevel = dwTmpSkLevel;
, D" M' j: `# D8 {$ @ }+ f8 K' j* e' J. B! M0 m+ Q
}
. ]' Q( _2 I9 I. M' @ }& @+ i6 a* h; w& \* ]
else if(IsHero())
. y- Q) @ m* o ~: ]. Y9 k {
6 S6 ~7 t) ?7 `: ?2 |. V for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; N( Q" q! X: U* D' n& H
{
$ C' u: p6 V( i9 k1 t) T" i6 d LPSKILL lpSkill = &(m_aJobSkill);7 M+ W% i) C) y0 S* X9 o
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ U6 V0 E, h( {8 s1 N! y
{' Y7 {8 S8 f; S* Q' j2 n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , G w8 P( X$ i$ l
if( pSkillProp == NULL )
' B# z- o7 O% G% e- [* l7 [ continue;* S }3 [$ L8 v( A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 n& U. Q( C' o7 Z# `
continue;! C6 ^4 m \& t" K( N/ l
lpSkill->dwLevel = 5;
% g% ^7 [( ^: [ }
. `. y* E& N+ Y7 a3 a1 W }% `$ M6 @/ A6 T/ [7 |$ G
}
; @6 B$ ?- o1 S5 ?5 j& {- W else if(IsLegendHero())
" }' N) K3 |0 u( [/ A; t {) Z2 v8 a3 s' j# d( t2 @7 s2 @9 o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 k; S/ T Y& _" k4 M; \ {
/ ^$ [3 y6 J% g8 V LPSKILL lpSkill = &(m_aJobSkill);4 H$ y7 m+ n1 Z/ P1 t
if( lpSkill && lpSkill->dwSkill != NULL_ID )( o4 H( i% y& [* a3 j, B0 j1 R
{, M* w9 F% n4 I) H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 ], e% ?1 }! ?: d6 p
if( pSkillProp == NULL )
/ y1 N T0 |( i y; o continue;
& @0 h5 t0 L; K& j/ D/ E. q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 z) @ o# X3 V3 s
continue;3 w4 d e; H& @) `" Y; d
lpSkill->dwLevel = 5;
& b8 `& J2 [* M; L* r. j4 ?2 g }
: N6 G g* D, C& D. h4 n } V' g9 {+ p5 r
}& E5 Z) R. ^4 s0 m# ]
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% J% ]7 [& D- |& D/ N! D- o if( bGamma ). i2 w4 q4 V6 n9 I# C. `
{
) V4 P$ T$ O8 x' o m_nExp1 = 0;
f/ |$ g: j& E9 Y. F8 w }
9 ?2 @* C% [8 H0 q( y5 Y8 ? U8 w4 ~% h$ [3 _' m6 Z+ ~* L
( (CUser*)this )->AddSetChangeJob( nJob );2 f# C- l8 L7 d
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );- K) U6 e: a# s) H, ~
D+ N* l- I5 T0 N! i
, F4 P, ~" l Z
#if __VER >= 11 // __SYS_PLAYER_DATA) N1 J h! y/ h( F
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );! x w4 E) v/ X: y
#else // __SYS_PLAYER_DATA
* F9 Q1 S( I4 A. g g_DPCoreClient.SendPartyMemberJob( (CUser*)this );' j. A, h, R$ o
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );9 b' d4 E& T& V% e9 B0 q
if( m_idGuild != 0 )
$ M; q& h) n, m/ T! A$ o1 ` g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' b3 ?4 @; L+ y, j) `- q' S6 C$ {
#endif // __SYS_PLAYER_DATA
7 M4 { y0 J* V- O1 i- H: h8 u SetHitPoint( GetMaxHitPoint() ); }# K) b$ d2 y3 _. C0 e% O; N
SetManaPoint( GetMaxManaPoint() );
) @# |) k& }+ \8 q( q SetFatiguePoint( GetMaxFatiguePoint() ); ]1 e/ l& C) R( S: a2 {
if( nJob >= 1 && nJob <= 4 )
) Q4 X& B1 K8 b! z5 `( D; \0 N {# d/ I9 C, Q( c* K: D
m_nStr = m_nSta = m_nDex = m_nInt = 15;: V4 S* N# w, U( k* z( s) A6 |* c2 k
m_nRemainGP = 28;& M+ {/ F- O d% }% {! s; e) B
}: @# Q2 y, y: ^# [8 ^7 J
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- g( }" u3 W! v: {3 u) d! O7 N' ~" W {3 b, t" j+ V3 ?) P* v9 X* U
m_nRemainGP = 118;
( c5 Z6 d! x7 W; t& `! B //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' ?4 P% [. s" `# e' l0 j0 O m_nStr = m_nSta = m_nDex = m_nInt = 15;# j% i, M% n/ }2 W
} k+ W3 H4 F1 M0 F: z5 S, B2 @0 t
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )1 N5 }2 \+ P: l! b( N
{
) s+ U' y9 J. f5 L; h8 Y$ x; p CItemElem itemelem;
. U( D, p! D8 M7 u itemelem.m_nItemNum = 1;
% v$ l. K3 Y* P# V itemelem.m_bCharged = TRUE;$ v4 u# B; P1 q5 z
BYTE nID;6 \! j5 |# I6 m9 B* q; x
2 ~, O3 z" B5 h( Z
if( nJob == JOB_MENTALIST_HERO )7 M1 I) P1 U$ u! Q6 H' W4 t ~
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;0 C4 n! M( c/ R! C- c
if( nJob == JOB_FORCEMASTER_HERO )
" z; x K+ J% }# O itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;" {4 }( k# v, k1 d
6 Y! l1 w/ [. v& A4 W
( ( CUser*)this)->CreateItem( &itemelem, &nID );
% @0 u% r* [8 I0 p" S) ] }8 C/ {( y9 ~6 e) L/ q. ^( u( O! h
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 q6 ~9 a C2 |8 O ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );# n1 T; w5 J9 v3 t1 Z
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
; P+ a( O5 `7 x8 i$ ?7 J /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 C5 T9 U7 u0 ~1 r( G2 s- ^
( (CUser*)this )->AddTaskBar();*/
% |% [& ]$ M7 z( X: n ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );. L3 t' w# P7 t' g5 o+ e( ?6 t
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! X, t: o% P# W* H9 w ((CUser*)this)->CheckHonorStat();
- z+ \9 a; G3 j5 S* p! o ((CUser*)this)->AddHonorListAck();8 I% @! W6 l" S, B+ K1 }
g_UserMng.AddHonorTitleChange( this, m_nHonor);$ X% m! V6 F! G& K- ^
#endif // __HONORABLE_TITLE // ′Tà?; _) y- ?! {& q; F
}
. d7 {, _9 e) t# M% q, W9 e#endif // __WORLDSERVER
& Z D1 ?* `% s- h5 N}
, ?( U8 f/ u' I% Q$ \- {; {$ a: A$ N
然后你进入functextcmd.cpp并添加以下
/ Z/ h/ R0 B! {# r% ^* @9 n1 O. u$ H) `
代码:' j: w$ M# x2 w# S- j2 o% D
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
; j2 C9 g7 y! W# z3 k3 y下面插入$ Q9 b# H9 J F' f0 N! @. s
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% q8 a; K0 o; U9 \4 `
. w3 o* o# J0 `- }8 Q+ c; n( a, |4 d然后你去
' P. b: N: Z& n/ U; Y+ V( ~" N* I3 t; T$ p, S& ?( o% T
代码:* D0 ~$ i1 u7 Y$ R
代码5 Y$ S4 U* L! W- N2 d- ~! V+ n
BOOL TextCmd_ClearPropose( CScanner & s )
2 i" H3 v% r/ A4 W5 K: l{+ A/ k7 ]$ e" U" A8 F
#ifdef __WORLDSERVER0 w# r- B- J5 k! ^- P
CUser* pUser = (CUser*)s.dwValue;
- s6 P( ]" U8 A k7 k+ W g_dpDBClient.SendClearPropose();+ x5 y( |' ]* t# e
#endif // __WORLDSERVER
2 |9 q6 T! L) h$ |' H. |, H1 l _ | return TRUE;
# f7 F# n; J; D9 {8 ~+ q# w}' o( C5 R0 ]% D% I2 B3 t) N2 A
下面插入
) @3 n7 o( Y! i( x4 K& Q9 QBOOL TextCmd_rebirth( CScanner& scanner )
' J7 D" B- S' ?! {, M# R2 Y/ m{
# p8 b9 B1 q/ c& ~4 f2 U#ifdef __WORLDSERVER2 Z m( Q3 K1 ~9 s
CUser *pUser;/ ` M7 t2 w$ x. I; {' i( p6 D+ v1 ^
pUser = (CUser*)scanner.dwValue;
, P4 o" }' A4 M' ]" wif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())5 P5 _/ }- z/ |! _$ k, h3 q* j
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( @ n" U9 L. H# \4 `* b5 i# C- U
else
- Z6 w% }8 P; D" j- m0 z) LpUser->AddText("你还未达到重生条件!");7 \1 s4 O; R; H3 ^% `; j+ X
#endif8 ?6 [) P5 e y* ~$ b9 n
return TRUE;
+ t( q' p) P5 {; K8 T* ~" N1 ~} 0 p/ a6 R' [5 t; Y! B, W4 ] {
) W8 ~2 a( W b0 g8 [" s7 q
. p1 w ^. \. v6 W& Z& P/ f7 g9 f% C" K4 U; ]( v' z
; a; |5 G& M* o5 c
|
|