|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# f5 U2 x6 q' a2 \" R. }* I' u
& l* m6 E2 U X4 u" f' ]" j g5 F3 SMover.h
" U# K( ~* }% g代码:4 p+ a* ~9 k$ o. R( J4 `8 g1 t
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" |/ B: T9 w* u n7 f7 F6 A
8 o, E9 G7 B# n$ `8 k, S
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ N7 c! ~/ @. s. z9 x6 q- B% ]6 K$ E0 s
' v5 Y4 \* h; |; A+ I( Z, c# q然后你去mover.cpp添加
5 s# C# H8 a/ f+ `2 n9 Y6 k
. K$ _0 k( X! ?4 H/ g3 h代码:) L* j: p$ \$ | O) ?8 [. O5 C
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 O; P$ i2 X" G2 n: D
{
9 z* c; N4 z4 b- D#ifdef __WORLDSERVER
% P6 x1 B$ Z& X% V- n8 O7 G9 q // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ m8 N' d5 J& m6 d8 Z* C0 }
MoverProp* pProp = GetProp();
# M. g6 a7 i* e7 J if( pProp )( `/ [, V3 u g
{4 z7 Y5 }& H/ B* |9 I2 Q: Y" u
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ p( b. I5 q9 h3 F" O {
5 |/ z5 F s5 U p' G# V7 E9 K AddChangeJob( nJob );( ]+ u: s) T w/ Y+ B) \
}else{
; E; ]& x) e/ V: c- K return;
, t* O4 Y! b) D) Z4 e }! w7 H' _( Q% r* ~. C; U; c
int nPoint = 0;9 s6 D" I% n8 G& J. A
if( m_nJob == JOB_MERCENARY )& a- l* E9 }& Z5 ^8 U8 P# o
nPoint += 40;$ |$ ] q) \8 m$ ^ U- W
else if( m_nJob == JOB_ACROBAT )
- p& `, K5 R# @ nPoint += 50;
' p6 H3 H9 C" K$ d# U else if( m_nJob == JOB_ASSIST )
8 ~5 t$ X' s4 q/ j$ [+ E nPoint += 60;# n+ B: y' g X+ o+ F$ n
else if( m_nJob == JOB_MAGICIAN )
; @1 k5 j: v" X4 M% j: | nPoint += 90;
! B( P) Y9 `% t9 l% V7 E4 E else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
5 h# A; ^7 v9 s& E5 z6 ]. K' | nPoint += 120;* M7 _; o9 D# a8 _* i$ k0 m$ ^* ?
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )2 r6 ]8 a3 {( P: j" Y& X
nPoint += 150;# U4 T4 Y) k- E- y7 e
else if( m_nJob == JOB_RINGMASTER )
3 m8 A. E" C+ A nPoint += 160;! m- X9 C* @6 z% L) o6 m2 `+ C2 O
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
! ~' P" Q8 g/ f( E- [* a- K nPoint += 180;
6 n$ B0 t) t6 d/ [- L else if( m_nJob == JOB_ELEMENTOR )) |* D$ Q+ b* [1 g% b
nPoint += 390;
; N1 P, T X8 L2 \ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 l# i( v$ z$ E/ w nPoint += 120;/ U, W% K. @. G1 ^
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 T; b/ F8 L+ J! n' b, c/ z* K nPoint += 150;, ?0 Y0 e5 d4 j4 [$ m, | D
else if( nJob == JOB_FLORIST_HERO )
m; \$ P( T: p( L nPoint += 160;
3 A( ~4 L- o7 N7 U/ n1 Z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 b" [2 j& n& g4 r4 s nPoint += 180;: J: J# o! h" M- _! ~0 r
else if( nJob == JOB_ELEMENTORLORD_HERO )
9 q9 J! A% h+ H0 [; w5 k nPoint += 390;
/ q3 O+ N* K, X& o
! L% B1 `& M9 J/ [+ U" _ AddSkillPoint( nPoint );
7 _2 C* U" q: h- X m_nLevel = nLevel;
0 j! d2 u* t3 F" S" Y* B5 z& U7 t
; Q: a! \" T+ ^+ {; B) m. s SetJobLevel( nLevel, nJob );4 a% z2 C( O. o5 e+ [
m_nDeathLevel = nLevel;9 d7 B% ]$ f2 n j/ g9 a1 w
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. R( ?8 H& c( g& P$ H if(IsMaster())
+ x$ `# S6 D5 l9 d7 ` {4 y/ t) [. l; o: n( O
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& U, H: b) J* w# C9 e if( nLevel > 59 && nLevel < 72 )( f/ z& d( S8 O
dwTmpSkLevel = 1;3 C }% f3 s8 B/ j; D2 @6 p
else if( nLevel > 71 && nLevel < 84 )# S5 G* w3 a, ]/ F6 N' \
dwTmpSkLevel = 2;
" @: m. g, H! ~ G else if( nLevel > 83 && nLevel < 96 )
# p5 g8 H& @: Z# M/ w$ q& N" d+ \ dwTmpSkLevel = 3;* t. j7 l3 w1 P7 `, ^9 p. _6 ~" s# Y e
else if( nLevel > 95 && nLevel < 108 )
3 f I) c! t# R h& u/ [ dwTmpSkLevel = 4;
4 N7 G+ G; C- m" q) A6 @ else if( nLevel > 107 && nLevel < 120 )5 t% f2 @, }8 G3 f9 _2 b
dwTmpSkLevel = 5;
) e- }8 a) i, Z for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 ^% p% ` ^- H4 O
{ 8 f$ _+ Z/ `' H0 I3 A' _( D) j
LPSKILL lpSkill = &(m_aJobSkill);
* u T' ?7 I# K& [! B if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 y% [/ |5 u$ y. k+ n4 @8 ? {- b4 h5 b" \+ f7 @" n3 F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + u l" t" I1 i. h
if( pSkillProp == NULL )7 q2 ]7 r' u- o2 x" Z5 e! B+ `
continue;
) @/ Y) Y- D* z$ s& \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 d+ X, Q5 Y9 h+ W& Z" o$ K2 v5 E
continue;
1 J; D" `0 M) |8 V lpSkill->dwLevel = dwTmpSkLevel;) |+ i- s1 B1 q4 Z" F
}
( Y. Z9 Y- D* S- |9 c, n }1 I( [; S- V z5 J
}; O5 X. [& T6 S! W$ k; g8 S4 k
else if(IsHero())4 ~9 \* J, y( t, p/ ]
{
( W- e7 E5 c; c8 z9 X for( int i = 0; i < MAX_SKILL_JOB; i++ )
, x% j7 ?6 e1 c/ [ {
( T5 C9 ]# v; c9 m/ Y* l* D LPSKILL lpSkill = &(m_aJobSkill);9 I0 _/ ~" P0 u& P6 u8 U+ E' i
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 u' M) u a1 f {
/ L( l( Q5 }8 {; w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 L# J8 T4 A; x& _% l if( pSkillProp == NULL )
) y+ H% H: R ^- ?5 K1 ]& B+ }! [ continue;; {. p; q+ @; L% [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* l% P% @8 u7 e8 g4 Z continue;
0 I; ]( I9 \, D3 W5 ?; d lpSkill->dwLevel = 5;" f+ x; r% |4 a
}
9 w" P% \- b. q }
0 R: A( G% u8 F, B* _: v7 b }" K q/ V! k- K* M' M# s
else if(IsLegendHero())( F2 l2 W1 V& u% ^. P
{
9 @9 C1 |' q O" t2 F' f5 d- J for( int i = 0; i < MAX_SKILL_JOB; i++ )
% N2 z5 q3 R7 |9 C {
8 X- d- g5 R. Z LPSKILL lpSkill = &(m_aJobSkill);
* ]( z- \2 e7 x+ b7 E4 ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 @9 S- c' q$ r, p {0 ?8 K/ P& t8 X3 r# Z& i. T# E2 h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) G: e2 Y+ Z5 n8 C8 s( ]& R if( pSkillProp == NULL )6 n$ I) F- P+ Y
continue;
8 R( Q& V- z) x2 j$ F$ H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 M1 E- ?( I! k( S0 i: b
continue;
1 p8 I( c( N- n% _: e lpSkill->dwLevel = 5;- ~, b& F' [# f+ s; ^
}1 ]. v b8 o7 p5 ]) D
}
( ?% I5 g. g# i O: F }: p7 L; m5 S! m2 ?& e" d
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& ~3 R! i! \- l6 P) d
if( bGamma )2 j6 F0 T# [% \* ^
{ ?' e% b- m! W9 v R$ {* W& y
m_nExp1 = 0;
+ I' ^" K+ Z9 Q( Q/ z }9 [ z7 G8 N/ l: X6 T: P
: F7 b& B+ m; Z0 x ( (CUser*)this )->AddSetChangeJob( nJob ); E* p% D$ e4 f% E, \( M
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" R# r" O. D+ `; J6 @/ h" G
k2 r! R+ S, a+ `9 C7 @- J
( i7 O6 _3 A# `3 u9 c% c1 k#if __VER >= 11 // __SYS_PLAYER_DATA
6 m$ A8 t% t9 n' i1 Y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- M/ O# u& f0 P) _3 ?#else // __SYS_PLAYER_DATA; z+ }5 K; g- _ ^, X( Y- N4 L
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ }/ a, i: Q: `3 `) g; J g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 }/ R/ j1 d @
if( m_idGuild != 0 )
5 r8 r/ h: h, |) d" Y0 s9 k- N g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: k' N/ T$ z, N+ _
#endif // __SYS_PLAYER_DATA
! G/ ~) Q) |- N SetHitPoint( GetMaxHitPoint() );/ l& w( t; l3 W- G- ^. u
SetManaPoint( GetMaxManaPoint() );
+ N$ |1 q9 y7 K9 Y SetFatiguePoint( GetMaxFatiguePoint() );- f. [" w5 h/ H$ ]. y
if( nJob >= 1 && nJob <= 4 )0 [: i9 V3 C0 d6 S& X2 M
{
7 ?7 I: h: M9 k1 [2 ?- J2 d1 w m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 g7 Z( X3 n; }5 M/ I m_nRemainGP = 28;
/ e* j7 w# a* B# a, [8 ], | }
" P3 V/ B5 y3 [& m0 U9 l1 d+ t if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )% n5 M. k( k, k3 u3 k
{
8 E7 k% f `4 B: E m_nRemainGP = 118;
& {6 x& H5 F4 ]& o" i //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( J2 t& k7 T: e9 j9 j- m# \
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) }# d3 X& b4 F) G" V5 O }. x$ b) }% e# N1 {/ w# V) w$ u7 \3 F. ^7 ?
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) ?- |5 G7 ?( v. H+ z
{
$ f3 ]7 U, e% }4 ?3 v( } CItemElem itemelem;
5 l3 m* J2 k: r" j3 m% G* _ itemelem.m_nItemNum = 1;
& [3 Q8 i4 k: X# ~9 I f itemelem.m_bCharged = TRUE;
8 k$ ^% |" _9 I0 l9 U! k BYTE nID;
# y2 k# X4 x8 W& b" Y% S* C4 J: M' w0 J3 Y8 n9 J
if( nJob == JOB_MENTALIST_HERO )- y4 O; v! Z' N/ q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 t* T5 t2 }1 G if( nJob == JOB_FORCEMASTER_HERO )8 ]* m- a0 L+ c) t; d
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 H/ J3 q9 m5 a- k% f
+ m8 _+ V3 q$ \+ J ( ( CUser*)this)->CreateItem( &itemelem, &nID );
; `) }7 ^+ \" R& R" \1 R3 M }* t4 R9 T. f+ L" m
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 h( p- v: f. R- i C
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' M- t q' w, X9 t
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
& Y, r ?- C' y! I /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );& K) Z0 ^ i# Y3 X) g
( (CUser*)this )->AddTaskBar();*/' k- H8 p' K" J. t
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 U& A' C) t# X4 f& p#if __VER >= 13 // __HONORABLE_TITLE // ′Tà? R, m, Q r# q8 s6 ?1 J- v+ q
((CUser*)this)->CheckHonorStat();0 j+ d- p, G- ?8 k4 o/ A
((CUser*)this)->AddHonorListAck();; i9 h- f1 j! u! j# c, G' Z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ Q$ v! i- B3 G% w+ b" z: z#endif // __HONORABLE_TITLE // ′Tà?7 W9 H' K" b$ m- D
}! y( L/ f$ u+ C3 [$ U/ V
#endif // __WORLDSERVER+ Q) `. z' a; ]( r5 c8 j: _
} * W. L' s4 d6 ?$ g0 X( _
U" W2 k$ V2 b( z6 h" I
然后你进入functextcmd.cpp并添加以下
$ G2 X/ H. n' H1 h2 C& h7 P4 A k
代码:# _1 ^! W0 L3 Z0 [
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )# N( g% n1 u3 ^/ V0 |, X! Z
下面插入
h5 u3 A0 e. d: V6 s. K& cON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) + s; o7 q; E' Q0 D; h
$ ^; c+ b8 D7 u0 F2 o" |6 \5 w: C然后你去
9 ^' f3 ~5 G& [6 b4 H
5 F' w8 C4 C4 e代码:" _% u) E$ }! H* }7 r* d
代码
) W9 r* z; P4 J( c8 |BOOL TextCmd_ClearPropose( CScanner & s ). g. }7 T# {) `
{6 _, l# M/ _0 C
#ifdef __WORLDSERVER, u; p1 A3 t+ T! [: n! Q
CUser* pUser = (CUser*)s.dwValue;3 k8 W$ t1 k4 Z$ ^7 d* V
g_dpDBClient.SendClearPropose();" ^& I9 R* B; ]# t% T$ Q, g
#endif // __WORLDSERVER0 I0 o% B- d5 Y j# i' E# |8 ] c
return TRUE;; n8 A, b H v8 E5 r
}; f: r. o+ Z+ K7 Q: I2 A
下面插入& Z3 k, C9 n. I6 N; q: \9 ~* x" T
BOOL TextCmd_rebirth( CScanner& scanner )
7 G, j0 Q% A' m) c{
2 A1 E" V* e9 G; ?' F4 j8 u- n, X#ifdef __WORLDSERVER
; {4 `4 g# _$ b. GCUser *pUser;
) @8 q6 [+ [2 ~; vpUser = (CUser*)scanner.dwValue;
8 q' R2 J$ E. [0 }" v# ^: t; fif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 Y& P* w* N7 H5 N2 I! G) c$ f3 {pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);+ M/ d2 d8 m7 ` Q
else
' F) j" J3 v/ X' ]9 o9 T4 j' KpUser->AddText("你还未达到重生条件!");
* E4 b5 l' [* z- W; L7 G4 B" c#endif" }2 T. A/ H: Y! H
return TRUE;
; X9 a) Z" _# g, L/ c) k9 {}
6 p1 e0 w* s- \/ Q5 b- U
$ |* b, a. B4 ]' m% }
; u U m6 M* E( Z7 S/ U. z- F- O+ I: l/ x9 m
2 r6 _' O7 a' E) y' g; T- s
|
|