|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 j) @0 P& K( }6 c" A/ l* Y* O6 W! q& J0 _; P+ s B
Mover.h1 q: B; B) @/ g; M' u4 Y+ j6 ]
代码:
8 a% F/ Z5 L9 X1 b0 x找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( A3 V* M6 F0 F5 i$ ~
7 _) l/ u5 C q下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! G! i4 `# F+ g( f
7 I& {, k# s B; _
然后你去mover.cpp添加
5 Z0 ]9 M) k9 v9 a" n6 `/ l E) O) U( J% S
代码:5 y# H; y: o7 b, w- B
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )+ {4 A/ X- p3 L
{4 i! N5 N; y$ `
#ifdef __WORLDSERVER
- T+ s8 g9 z3 z7 ?4 m // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 o, a0 B! E, v( _) K; ` MoverProp* pProp = GetProp();
" S0 F; m0 L, |4 b. T: F if( pProp )
$ f8 V) Q% U* l: v {
+ a$ U1 `/ a: N& z9 s' Q) S if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 O5 u0 e6 m: L {( V9 q0 `1 g; Z! C* x; y$ a( j/ {! F
AddChangeJob( nJob );
8 y; x% G8 |! [1 N1 Q5 Q8 p2 q# W }else{1 W) a l! h5 x: h4 M7 I7 ~
return;3 n7 _& t3 b5 u- M* g6 g
}! a" j4 H- N+ |- u$ B
int nPoint = 0;& Y/ C3 P9 J" F; [
if( m_nJob == JOB_MERCENARY )3 [+ H6 d' x; N; f' K7 P, e
nPoint += 40;$ }6 ^+ Y. U! g" W% R* {
else if( m_nJob == JOB_ACROBAT )! H y$ H8 Y. X
nPoint += 50;4 D3 Q" c8 M8 M R: c* `
else if( m_nJob == JOB_ASSIST )
% t0 d; O9 L+ W" F) Z nPoint += 60;
4 |/ e' T1 I4 f: E else if( m_nJob == JOB_MAGICIAN )
# Y' C( k$ Z$ D, a# z2 ], I nPoint += 90;
* W% V8 i/ P8 j# Y- e: H# X7 B else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 C2 `6 _, {. X* y' v$ u# P7 T$ z
nPoint += 120;/ Q7 T9 y7 G7 L+ ^1 D, n
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 L/ i' C! H& `1 w
nPoint += 150;
0 H% X- a8 Q/ X! d/ B else if( m_nJob == JOB_RINGMASTER ) Y+ u2 L* a: i7 I0 T4 A
nPoint += 160;
, A% i' v H4 P" S else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
3 c$ ^5 f; v, [+ r7 T" a7 E nPoint += 180;- }: L( W W: D) s9 D& A
else if( m_nJob == JOB_ELEMENTOR )
4 `) V" T. u* v nPoint += 390;
7 l: U, W& q& J" M+ X else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! H7 G! t2 r. {1 C' i* s
nPoint += 120;
! }: D2 G5 _. @ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
, p4 H C1 s% ~2 _- f4 b" n. Y nPoint += 150;
- ?6 X: k- `! M* N/ Q B else if( nJob == JOB_FLORIST_HERO )
; ?: I1 ]- s4 E* L6 V( h nPoint += 160;
% E. P4 D4 _! ` else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )3 F2 R8 t2 g% K5 ^
nPoint += 180; N5 u# \, h5 a, `
else if( nJob == JOB_ELEMENTORLORD_HERO ), X9 B7 l A8 @4 x, S* S$ c7 w& M
nPoint += 390;
; e4 }& n% X' J* A8 n. B" v- s+ ?. C5 F1 P' o4 h) M. b
AddSkillPoint( nPoint );1 d# f2 ~' e8 ?, e
m_nLevel = nLevel;
& f/ ~" s2 o) r& P$ ^3 V. O- D+ J" i2 i( L9 {. @
SetJobLevel( nLevel, nJob );
: i3 Y1 g9 P$ ~5 P m_nDeathLevel = nLevel;
# k* c7 K! D7 E0 D) C& _+ i7 J5 P#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 @2 O" t1 ?# w; f* F2 p q# ~$ n if(IsMaster())
, v; |, d7 W$ B6 N0 F; v {; e: M: T- T3 n3 T% M4 A
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
* z' e) L# Q& J- o# j: R) ] if( nLevel > 59 && nLevel < 72 ). h7 P f6 r# S- ]4 h! W% [. z
dwTmpSkLevel = 1;
4 E- q' p4 h$ j7 U7 ` else if( nLevel > 71 && nLevel < 84 )
& d! Q& R- Q! p: f. R dwTmpSkLevel = 2;2 m- d+ t7 z7 j5 {9 j8 M
else if( nLevel > 83 && nLevel < 96 )
2 p: S! ]9 k! H2 @& @4 a& n dwTmpSkLevel = 3;5 d @7 ?7 }3 M6 v( j) i1 h0 t
else if( nLevel > 95 && nLevel < 108 )4 X4 {. J+ N8 P
dwTmpSkLevel = 4;
- |( _( |4 i8 U: D# A8 U( ? else if( nLevel > 107 && nLevel < 120 )- g3 | j7 Y* m7 B6 k
dwTmpSkLevel = 5;
# \1 ?1 x5 Z* N1 ^( V8 E' z for( int i = 0; i < MAX_SKILL_JOB; i++ ) % S" P/ o: h, n J4 O3 n5 J9 [
{
x" _) I( ^9 ~, [7 d" ?% n9 \4 E LPSKILL lpSkill = &(m_aJobSkill);
7 a, Z( b5 c1 v* g$ D. b if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 a1 \* Y/ C% ^+ ]3 ] {
6 s9 N2 J. m, X# }$ E4 ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; s4 H! |5 L$ @% g- P+ d9 E
if( pSkillProp == NULL )
7 l/ @8 E' d% C8 f continue;
, P. w' Q/ m3 S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) l/ b: x0 \4 x; h& q0 n continue;7 z2 a# i6 L) p1 M( y9 C6 U
lpSkill->dwLevel = dwTmpSkLevel;
' f2 x6 `# W( V% Z' t) n+ ^; @ t9 l4 L! u }# Y1 t \3 X. }( M5 U
}5 _1 r' i( i( b' b; T* _
}
* T5 T* x# Q0 `% _9 E else if(IsHero())
0 Q( @ ~) _9 q# a6 V8 U6 x1 r! z9 m {, o5 V! g: F' k& M
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 s3 G* N9 K7 k( L; B
{ ! X1 H$ _) I L. |; u& y4 `" J
LPSKILL lpSkill = &(m_aJobSkill);- t/ @% N4 U) S( ?$ P
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 S: |" l& P8 u5 D! Y4 i! H/ y
{
$ R8 ]. J' }: a, a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! p( D( W! p/ {8 I: ~+ X
if( pSkillProp == NULL )
5 S& ?0 M: F& { continue;
& X! u$ c, U& d7 l& a0 V3 V if( pSkillProp->dwItemKind1 != JTYPE_MASTER): t/ A7 U6 t, c9 u1 F3 I- ^( h
continue;
. `5 P5 O- \$ l' ^5 C lpSkill->dwLevel = 5;
5 B3 \" V: j4 _* _& K3 _ }& T/ k4 J: Z# c3 V" e$ C. r# m
}6 i/ Z: B' f5 {) \; c4 r
}' \% ]4 j- _$ _( y# B0 B" R
else if(IsLegendHero())
" M9 ^' l, m& j {) G- @* G5 H& o' s* [( J
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, r. t+ {& Z3 w5 R* ^! o, r { - ?: O5 P7 v' U0 }& P2 s/ e
LPSKILL lpSkill = &(m_aJobSkill);
% C Z5 k9 D. \- W0 N7 F' q if( lpSkill && lpSkill->dwSkill != NULL_ID )2 A, y, W7 N; K4 R" d9 Q
{. M7 _: O6 \4 u, `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( K3 n# D% E* b; x/ l if( pSkillProp == NULL )
; ]# b `+ ~, Z continue;
. G# P# u/ Y8 _% p% C/ [$ J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 o. e5 |+ u) G2 l, o
continue;
3 P9 l2 W" A5 S) W5 I% d* X' _ lpSkill->dwLevel = 5;& m' E+ ^5 w$ s4 t H/ \
}
- l ^$ h' h% p, t' ]8 l" p }
# `6 }3 i- Z9 G2 Q6 ~ }0 p; q. O* } n: O
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. T( Y' L) h5 Q! \
if( bGamma )6 \. ]9 d7 ?$ w! j1 ]/ D
{
+ P& ^* z: d1 w* r- `4 t m_nExp1 = 0;: C y/ _( P, b9 I" H0 y+ y" ^( ]! k
}+ Y" ` Q# z5 W. Y+ F4 R
! M9 ^9 v/ c3 G0 e5 }8 I
( (CUser*)this )->AddSetChangeJob( nJob );
6 o1 K, w4 Y' |0 @ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );7 f! R, @2 r$ O" R s( @5 l
6 q: d4 g' P- ?. k& m1 N9 s' [% X6 V
#if __VER >= 11 // __SYS_PLAYER_DATA
2 x: E$ f2 Z+ ~4 O g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! E( l* f: H, D0 g+ Y6 P#else // __SYS_PLAYER_DATA
% I2 k4 n g* {- m g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( q3 u+ Z' r; J& X g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 X7 l/ \3 q( W, A if( m_idGuild != 0 )0 r8 ^4 J4 T1 W$ H2 k: o0 I
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' ?# H) T0 I1 e; N4 `& G
#endif // __SYS_PLAYER_DATA
2 P3 C( Q! @0 h. x& ` _# X. q/ n SetHitPoint( GetMaxHitPoint() );
7 _! l$ v, M! r B/ G SetManaPoint( GetMaxManaPoint() );
" P' A5 J0 o3 t- X( A& H' w& \ SetFatiguePoint( GetMaxFatiguePoint() );
) W1 I# w- ?% C6 E+ A. J# c0 b# n1 g if( nJob >= 1 && nJob <= 4 )5 ~$ p# F2 {) H' m
{
' i7 W0 {; Z$ _/ h6 @ m_nStr = m_nSta = m_nDex = m_nInt = 15;
# z' O+ ?3 a$ d( z$ l m_nRemainGP = 28;
% i1 y1 g* Z8 f( ~ }" }' K g6 O, o8 ]9 U9 C* _
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )9 g! N6 Y; q6 b/ P. Z( K" U+ n; e
{
4 o$ K3 C" g5 S) x3 \5 {% n) n m_nRemainGP = 118;* q5 w& f* b6 J% F9 ]
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 N( P1 H+ V/ y" l
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 F; ^7 R4 ?" e
}" y3 X+ t8 g( j
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 b; W f E* v- x8 D
{0 _4 }; P: Q" q+ ~0 S
CItemElem itemelem;
1 z% A2 A. C/ h- B7 D# a! D, b/ k itemelem.m_nItemNum = 1;$ ^6 x* O% G1 \, D4 [$ |
itemelem.m_bCharged = TRUE;+ g0 w8 S, X7 h- \
BYTE nID;2 a- A9 _7 U* J- X+ @
7 ]+ S$ q* X' s, C+ A2 T$ x
if( nJob == JOB_MENTALIST_HERO )
' m u. Q. G9 _8 n$ ~) y itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) n3 S* k1 ?. B/ V$ i+ } if( nJob == JOB_FORCEMASTER_HERO )# c# k3 ]# k' l/ E8 I: V
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;" `1 f- w2 m* `2 v3 [0 t+ w4 y
$ T$ S' ^$ Q( M9 c( `0 I( i; ~
( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 W! U0 E @7 q4 ~5 ^- C0 H }
m: e, p' e1 n0 {! B g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, M; e5 `- V) j, k% k1 ]& H ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; d# p! w* g: P' H) o9 a2 z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );# d$ ]% F$ q# w% N6 m/ r3 H+ v: e t
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* X# R+ f5 y* y2 p7 a3 I+ R4 b ( (CUser*)this )->AddTaskBar();*/0 b6 D, ^5 M* \' j, D/ h# G
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );2 m2 Z+ R+ W7 C
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 q7 a! Y) `! `. e% k0 P ((CUser*)this)->CheckHonorStat();* q* R, ?3 ^/ z' t
((CUser*)this)->AddHonorListAck();
" p- S4 l! v- Z; \& u. [( X4 G g_UserMng.AddHonorTitleChange( this, m_nHonor);. L' X, }" \# ~" k! W- E
#endif // __HONORABLE_TITLE // ′Tà?
# @6 m/ q0 I5 }; M }4 c3 N% n, v9 P% Y. ^* }
#endif // __WORLDSERVER
& ?0 F2 a, Z3 r+ H. B4 N& ~% j* A4 w}
* l% }2 x$ G' F( C9 j8 ?$ g* s- ^
! j- a6 d; n& j# x! g) M然后你进入functextcmd.cpp并添加以下' K' H( @. a, _) F1 z% m
; `) p$ i+ P0 ^# F
代码:
}; E8 N7 z+ a' {ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% m& g2 M5 Z" o6 m" C# B8 _, _( x下面插入: I1 @; S6 I# s4 U. u
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' Q$ H+ z, J/ F$ h; ?6 d$ p* h5 j+ |: r$ ?2 y6 r
然后你去
X k7 m% P" j9 A; ]
! b. F: m. c i! e代码:1 c6 G1 z5 o$ @; E; n# O9 r
代码
% D2 E4 U* {1 z- @* {BOOL TextCmd_ClearPropose( CScanner & s )- q0 o# h/ y+ E; |# b# r8 U
{& L2 E1 M- ~" X4 M
#ifdef __WORLDSERVER
$ q; ^1 h; Y! A; {4 j6 ]8 Q CUser* pUser = (CUser*)s.dwValue;
% _6 Z- x* M: q! |7 ^# r# m) p g_dpDBClient.SendClearPropose();2 p# D, ]6 S4 G8 Z3 H* K! ^6 b
#endif // __WORLDSERVER! x* E" l8 W% e; J: ^1 S
return TRUE;' j$ {" b' U1 _+ S
}/ T7 L! r1 v& I# X* c, b' `
下面插入) Q7 d' A, ^6 e E2 y
BOOL TextCmd_rebirth( CScanner& scanner )# W( }3 O8 h% _/ C0 Y
{/ k( ?$ `0 F- t) x2 S: t
#ifdef __WORLDSERVER3 F. ~9 ]& \9 Y: N1 c& w
CUser *pUser;
/ D& `4 B5 @) v8 R9 IpUser = (CUser*)scanner.dwValue;
- d8 m3 @0 H7 Y }if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 @2 g7 G0 P/ d8 p4 Q5 w" vpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) h9 v4 z; O- W4 Q+ D+ C' E8 L
else2 b. s3 {; [! v& Y- Q" v
pUser->AddText("你还未达到重生条件!");2 @) h9 }% Q6 P' |+ n& F3 m
#endif) \1 c+ h$ o3 W9 U1 i: }$ ^
return TRUE;
( E/ ~9 Z# N4 ~8 i3 T}
1 D2 ]) [7 I, Q. c6 P" A2 r( ]9 h& b# ~% @# ? v
" Q5 k. @' c- c
# G& ^9 {+ D- p- q6 d' r" p) w+ g3 P% O
|
|