|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, q: D1 k9 Z' L7 r' x! H
% h: C. j5 s& S* sMover.h
3 G4 `. G7 a2 N$ P/ ]& Q代码:2 @+ @3 p Z7 _8 ^
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü7 G; e" {" \+ S5 l6 H
% k% d( V* T( ~5 W* H
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 n" Y6 I8 x. Q" f2 y+ T0 n7 ?! o" h6 y' Y
然后你去mover.cpp添加* Q Q2 i+ L! Q: j& ^8 w: a
9 y; c0 | X0 H代码:
' C) }. k5 L( G+ c; ?void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* F/ b: O+ B7 H' ~& Z% \9 n{
; O+ O+ n8 U, b3 x" m#ifdef __WORLDSERVER) J" @ I: D+ W% t" C6 L6 C& J2 n8 }4 }
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó5 R. l8 r9 s2 |. F# O/ J
MoverProp* pProp = GetProp();
% d4 \( a8 w( s4 a' P6 l$ c9 C9 W if( pProp )
- O- a }( g# m# O+ R. w! n& O {) s5 ^; q$ i- @1 C1 L+ |9 H- L* A
if( nJob > 0 && nJob < MAX_LEGEND_HERO )% v; s6 b( f; T8 y6 j
{
) U- _! T: s$ V6 A& X- Q. @ AddChangeJob( nJob );+ ]: M/ T7 }7 ]- X! [: j( @1 n+ I
}else{; R; z/ p- F4 ~
return;
! f( A; @- t, W% q( q) m( { }
6 V% u2 z% e4 `7 X int nPoint = 0;: M" M% q6 Z& U8 e1 }4 E4 `2 B' t
if( m_nJob == JOB_MERCENARY )
' Q7 p# m0 x* W! _5 ]/ H, ? nPoint += 40;+ u1 y3 u" ]8 |. u
else if( m_nJob == JOB_ACROBAT )
7 i' c- l6 ]0 h. i! A! [/ @ nPoint += 50;
8 a @+ C R+ b3 Z3 X/ s else if( m_nJob == JOB_ASSIST )
" r m1 L0 I# I nPoint += 60;: s0 y5 e; i2 {! f; t5 y. w
else if( m_nJob == JOB_MAGICIAN )+ R& e+ E7 v* z! w1 o" m. f# M4 [
nPoint += 90;& Z- A: Z' p3 Z/ _. M
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 O) B7 ^1 X3 q7 z) C
nPoint += 120;: s- I( b4 `4 }" J$ r$ Q
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& u# E6 b8 H8 C7 d0 Y$ g
nPoint += 150;
/ ~1 P4 k; E7 @6 Z5 w: K' I3 [7 c else if( m_nJob == JOB_RINGMASTER )
% h5 m# B) h) U0 x9 D' p nPoint += 160;
: g. R! ^3 o; G$ v4 }* H5 s else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" H6 t2 q# h2 ~' U6 d. t! ^* S1 U. { nPoint += 180;
+ S# |5 V8 u4 m5 Z9 W2 i else if( m_nJob == JOB_ELEMENTOR )
* _* v4 s8 d+ a' c7 D& `- M nPoint += 390;1 f( C+ |' a2 u. c) d2 P7 s
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! i* Y }' m& L7 e& [
nPoint += 120;
: A/ g5 r; v$ C else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ), M8 B/ \# c9 t2 w, o4 z+ C
nPoint += 150;0 k, O6 h. Z" c; m! ]1 X( T; t7 w* ^: d
else if( nJob == JOB_FLORIST_HERO )
# n. }: m3 X3 ^4 u nPoint += 160;
0 T7 L9 p0 A; l; U6 T' }4 R$ O else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )# d% U. N( {: C, G* y- H @
nPoint += 180;
- p& K7 \" N+ |6 a. q else if( nJob == JOB_ELEMENTORLORD_HERO )
, A. w1 K- o4 M& h7 M nPoint += 390;! X0 V" N P7 }( N* h7 `
$ D8 I* x& A5 A AddSkillPoint( nPoint );9 ?, j- M* o3 z) `4 Z
m_nLevel = nLevel;
0 |( M7 D' D$ i* G
: q1 m p3 Y$ s& ]8 E5 G SetJobLevel( nLevel, nJob );
3 }) i0 \) z3 [( Z m_nDeathLevel = nLevel;
' p6 ]& e3 F# t. t: \6 `#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! F5 _: h+ Q# k8 t if(IsMaster())6 J6 c# y- {: B3 d+ J, _- U- h- ^
{$ f2 F$ ?- o+ u7 q. X. C- C8 ?
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: `8 X1 T6 M9 g9 Z if( nLevel > 59 && nLevel < 72 )
5 w2 [: W3 m6 o( U2 H3 Q: G P- e- E) A dwTmpSkLevel = 1;
3 Y* H0 @" ~6 e6 j else if( nLevel > 71 && nLevel < 84 )
5 o: a5 f Q# v* Y* s; z dwTmpSkLevel = 2;
: I) }" a% Q6 \) k% F+ k else if( nLevel > 83 && nLevel < 96 )
& R4 P: g. E' K4 | dwTmpSkLevel = 3;
) ?/ P9 W6 e- `2 b# u7 X5 F/ f1 S. H else if( nLevel > 95 && nLevel < 108 )
: f# n1 V9 E a- k& f9 z% _ dwTmpSkLevel = 4;: S# T; s8 w5 _* _6 p% J% [1 `
else if( nLevel > 107 && nLevel < 120 )
; F( e) l6 U' [9 b. C! H dwTmpSkLevel = 5;
) B$ [: ~9 u+ v4 X0 {5 H for( int i = 0; i < MAX_SKILL_JOB; i++ )
, R# w7 e, d- j5 } { ' i2 r1 e3 z& l& R/ h9 g; i* H
LPSKILL lpSkill = &(m_aJobSkill);
5 {* L1 p3 z/ H l1 d) D% w: A if( lpSkill && lpSkill->dwSkill != NULL_ID )& f2 K% p8 m; X& m3 g& T
{+ Y% S# P9 @9 _' I% d: K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 O6 O& j0 `1 l8 b/ k$ ~; h
if( pSkillProp == NULL )5 ^7 I1 j9 h' ^( |
continue;
, x6 F- `7 w' q" \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' a. C1 w# K+ H' y/ O$ F6 K8 M' v
continue;( [( u9 s9 v( ?, u2 n" G9 N) j- s
lpSkill->dwLevel = dwTmpSkLevel;% C5 A% L# z9 Y3 h4 n: b
}: s- y5 t. G# \' E9 m% z* c" U
}
3 M3 j) x, b" [% p) v% t }
3 J& ?5 T- v: u3 v else if(IsHero())2 m7 n9 _+ b* t& s( t8 @- ]# ~! C
{
+ _3 O$ A# B, D9 D; s for( int i = 0; i < MAX_SKILL_JOB; i++ ) & z1 n9 f5 N. x. d5 j8 P
{
/ a! l* Q: t% r: t( w LPSKILL lpSkill = &(m_aJobSkill);) N3 V9 W- V0 x! f& [. P+ Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 d4 B* H1 L! C7 k {' C0 e- q% D9 e2 V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + N; f4 N; z! x( U5 L
if( pSkillProp == NULL )
% W8 s p- k. n, T continue;3 b/ X; C! P9 d7 o. Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% ]& V& a( X4 {! `
continue;9 j: g6 @; E4 z+ J
lpSkill->dwLevel = 5;0 d8 M- o1 m) k/ _3 @4 M' y% [
}- e4 Z' {% }& l8 @( ?2 V$ a! w5 o
}
* w( E6 \( Z" g$ Z( J1 U }
9 J0 w- [" ]& {( L& H/ S- s7 o else if(IsLegendHero())" f' S( P e3 N4 a
{$ l$ w! @( Z3 s! y+ h$ D$ l
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 f/ O" J, e2 n
{ 7 [* S1 C! ]' L2 r# f+ h; K1 d }
LPSKILL lpSkill = &(m_aJobSkill);
4 H3 O# m+ f& m. ~+ T if( lpSkill && lpSkill->dwSkill != NULL_ID )1 [$ E/ t- y( R" a( T4 L
{
1 U. W r9 V" y0 ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & q4 q7 }8 C5 i! [9 C( i @! l. L
if( pSkillProp == NULL ). u! M- r. U* L$ |
continue;
3 Q: n* z" I; C) E if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ R' v2 i; G+ {4 f9 v
continue;* M# u& G; e+ C& W( T, ?. X# |
lpSkill->dwLevel = 5;9 X: C3 i/ A6 H1 y( Z) f$ W- d( l8 Q
}
: m5 f9 v8 i0 r1 U6 h! v# C }" h. G/ ^0 x0 `, H+ J
}* V' l1 k" r5 U" ^
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! o, w. b' ^* z4 ^ if( bGamma )
+ e" ~' m! h1 o {
: L/ e2 F+ x2 W$ M m_nExp1 = 0;
& _; X x2 ~8 I. A }
, @& k3 y; Y% K/ ~8 I8 }7 }* N, T' Q9 w/ E
( (CUser*)this )->AddSetChangeJob( nJob );" C: a, d; m: }' H* E+ g" ^
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* B7 w" B r$ @" K
7 y: g4 f' [4 D, m6 d, x7 M
& Y* Y9 M3 y9 L5 w' ]9 o
#if __VER >= 11 // __SYS_PLAYER_DATA
' T" `7 `* `/ u2 W) o! Z: x$ D: r g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
5 h" c9 |. v4 n) u% T" l) Z. K! Z#else // __SYS_PLAYER_DATA- V6 M8 c, `% Z& a' F2 y- K j
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 {5 P; M0 [- Z4 A/ S9 C x g_DPCoreClient.SendFriendChangeJob( (CUser*)this ); U# h: Q6 R+ t6 J0 f4 [
if( m_idGuild != 0 )
5 A1 N$ X: S5 z g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; a, t# \. k; L#endif // __SYS_PLAYER_DATA" e. |$ p/ m8 X4 ]* J
SetHitPoint( GetMaxHitPoint() );
3 w& z0 s) \! V( b9 S2 ^( }% r SetManaPoint( GetMaxManaPoint() );9 q4 N1 [& [2 c) H% X( H
SetFatiguePoint( GetMaxFatiguePoint() );
! a& J/ O7 ^; R+ R- S) X$ t, @9 m if( nJob >= 1 && nJob <= 4 )' W, k. l: \6 m( P f/ C8 P0 I0 k
{+ B& x: |" Q4 a
m_nStr = m_nSta = m_nDex = m_nInt = 15;. i! U* m' h. {5 O: Q
m_nRemainGP = 28;
! L9 g5 k: U! i; H }0 \. o% v8 V& ` F p. A
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' u( i$ h! V/ s) |& T% g3 c {9 V1 ?5 e& B' x4 f
m_nRemainGP = 118;3 ?2 l1 f2 ?, ]
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;5 B3 Z( b, D' } D
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 ~* Z u. Y J7 P7 ^
}
3 T9 _2 m; J- [8 d" t if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 V- L& t7 P, p0 {1 h9 A- d4 o {
4 S0 g! M) u* v. t; B8 I CItemElem itemelem;
* G% f; z) I$ |* Y itemelem.m_nItemNum = 1;
6 S2 x" ?2 ]. {0 a D$ a itemelem.m_bCharged = TRUE;7 P/ Q' e& @9 ?) b7 y+ p! n9 H6 s
BYTE nID;8 r2 M. v" h. t- u& C$ H
1 W* C" f/ l( o% J if( nJob == JOB_MENTALIST_HERO )
- b) d2 o$ v5 M0 k, O itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
4 }& t5 I; X- A* f& } if( nJob == JOB_FORCEMASTER_HERO )3 c9 u( S2 h. M( H; O t. f/ @* r
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;2 Y2 w! C0 \1 C3 k! F
: i; f2 w) [4 n! t ( ( CUser*)this)->CreateItem( &itemelem, &nID );/ O! R6 C/ q2 Q, j4 J% Y
}
/ ~1 X" x+ n( }4 }" f" ?+ E g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( s( K: a6 g& V6 T6 }( M3 y$ t
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
2 f3 M8 }1 Q' ^) `% s' x& h ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 |6 [; `; Z7 j$ j: n7 g8 h
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: f. I% S: d1 Y0 b
( (CUser*)this )->AddTaskBar();*/
3 n, V2 b! d; s% q ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 m0 i- Y1 O9 u1 w- p: m% N3 |#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
_, z% Z0 ^" [# O ((CUser*)this)->CheckHonorStat();$ J3 k8 e4 \( W$ Y, _# {5 e
((CUser*)this)->AddHonorListAck();
' ] `. i6 d, Q8 k/ ] g_UserMng.AddHonorTitleChange( this, m_nHonor);
" y6 Q. ~& X( s. Y7 g) |#endif // __HONORABLE_TITLE // ′Tà?. @/ K/ H: h9 x$ C
}
- S! [" `$ V7 K z5 o#endif // __WORLDSERVER
1 z) L1 x$ g) f3 _}
8 p' U9 N1 b9 d* V5 w0 l5 u3 g+ r! v/ p" K
然后你进入functextcmd.cpp并添加以下+ I4 s0 q4 I' I$ O% ]$ N2 ~6 k6 J
& X" z6 ^9 A7 Y6 e( u0 G7 R0 I n代码:
$ `% {! P$ p5 x7 _+ H' ?, J( ?ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
* o4 a8 [% c ?6 N下面插入5 K! @. L8 L5 K3 @/ b
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ e: _5 X J% ]
, N4 F7 `# ^$ N4 x4 Y然后你去, |3 q5 h; h$ ~2 n ?
& Z4 r3 ^( n1 c+ \; S
代码:$ `) D8 Y' I/ m) ]
代码
* T: J; G4 {6 Z4 J) M: kBOOL TextCmd_ClearPropose( CScanner & s )
8 ?# `& K% D/ s% v' E+ H5 s{
" g, Q; {7 X& m6 g: Z#ifdef __WORLDSERVER
- U t p8 X1 y4 \/ `6 L! a CUser* pUser = (CUser*)s.dwValue;: n) M0 h2 M$ O# X
g_dpDBClient.SendClearPropose();
9 R" k: y$ ]9 F& Z% m7 m#endif // __WORLDSERVER
+ U& Q4 ~& |( z' ^: }9 a0 |; w return TRUE;4 ^! s1 H1 ?) D# S/ W8 v
}: Z1 A0 `. t- P4 }8 K4 d4 _
下面插入
9 ?( t' r) m7 t$ ~) Y. g/ X( o$ RBOOL TextCmd_rebirth( CScanner& scanner )
7 B' j+ W3 {7 R{4 T) P6 Y+ I1 q' A
#ifdef __WORLDSERVER2 Y) R/ |1 k) ^; D
CUser *pUser;7 y- ^" F4 c y
pUser = (CUser*)scanner.dwValue;' {, } d8 d# g' _& C; Y
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: K8 `* v0 X$ q8 Z; A0 D u% HpUser->InitLevelPumbaaa( pUser->m_nJob-16,60); q7 s9 {. s5 Q! I( @
else' K5 J4 ^5 n8 z8 R6 m: G' g* ~6 ?
pUser->AddText("你还未达到重生条件!");
i: l" K2 Y/ D. T: W#endif
2 O6 o$ ]+ p+ _( f% _7 [return TRUE;5 m' e; ^; `( o v
} : Y1 V" w+ ~$ P! V& l$ e
2 J- L N4 ^6 Q8 O' o4 Y9 L
8 c$ y; ]! A M2 L: l* J; w
; r! V/ ^, c& V& ~3 S* Z/ t3 J, K, @% b+ @) m
|
|