|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel8 c+ G* J$ N8 v
/ M( Q. T7 Y1 U* DMover.h
0 A" U* E; Z. G+ _代码:
. a* h. m$ `# D" ^8 D找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. M6 W+ H5 u6 |( y3 a$ [) o
5 D; R% v+ ?, R/ p1 v( `/ f下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 X7 P I' f K ]: ?
* b+ w6 T; K ?6 t0 n$ l$ q1 S然后你去mover.cpp添加
( f) E" p5 A% Z2 {
- o0 y# Z5 m# f* L( B2 R3 z代码:
$ p9 E8 v" L4 I) y* M4 R6 [' Wvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )+ N- w8 D. m/ i, ?9 c% X
{6 Z+ p( C q1 n6 S7 w
#ifdef __WORLDSERVER6 Z9 v# A8 I1 k! H& U
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó5 e' v1 n+ l! Q0 I! [
MoverProp* pProp = GetProp();8 s$ X/ |8 T9 x& s
if( pProp )# }2 S6 A @1 H1 S6 h
{
$ _2 n& |' H- m% E3 ?1 F if( nJob > 0 && nJob < MAX_LEGEND_HERO )
3 i; f0 {$ A# h8 [/ W! s8 Z {
# s) z& ]" ^( C$ @) z+ S8 h AddChangeJob( nJob );6 c3 ~# W& |* X# b' s
}else{
5 Q5 J% X: M# g# S/ z/ Z return;8 r9 A( m) }6 o) Q% F# T( r
}) V8 n4 W1 d9 S+ g% B5 o4 A
int nPoint = 0;
( X9 _$ `- i9 J& d8 z1 j! G" V if( m_nJob == JOB_MERCENARY )* E& [/ K6 f& D
nPoint += 40;& Y8 H5 N# u$ o% {* J
else if( m_nJob == JOB_ACROBAT )
& X; s' a z$ ~6 ]/ P, v" ] nPoint += 50;
& ?7 ~+ t$ i" u @; e else if( m_nJob == JOB_ASSIST )
2 _0 l2 H/ k8 @! \; _ nPoint += 60;) l0 |& \ H6 f
else if( m_nJob == JOB_MAGICIAN )
6 H9 U: [) d% o/ }6 ?; F* s9 s nPoint += 90;
5 b/ [9 i$ E" ^8 \: ` else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 M, `" k) w& H3 A: l+ T nPoint += 120;& _$ d. ^3 Q4 r9 L$ p, x
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" x( B( p% x& Z nPoint += 150;
2 i, q$ W2 }3 s else if( m_nJob == JOB_RINGMASTER ): v$ b% m' i- H4 o- X/ A
nPoint += 160;
% M0 x$ U2 P+ V5 K( r' g" S else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); ?/ T6 z7 g3 n. d7 ~6 w
nPoint += 180;
a: q% H3 x7 H% {. @3 k& O8 y% A else if( m_nJob == JOB_ELEMENTOR )2 [ R4 N) C) M; Z) j* j% l1 }* n' C
nPoint += 390;$ v; m7 a. b' G5 r0 y6 s
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )0 c! ]! x, B, Q' a7 E V' Z* l& @% B
nPoint += 120;
/ J3 m& {$ U3 m) V! {* A9 Z2 W else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )& ]# p6 o) f3 |" m* [1 d- i
nPoint += 150;; _8 E6 w! e3 n' U" _
else if( nJob == JOB_FLORIST_HERO )+ h+ c4 s9 B$ [( a) |* w
nPoint += 160;' V' o N* y+ G
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ o; G6 w5 d% v3 t. T) u
nPoint += 180;
9 ~6 u8 z8 T+ M- n I. r; V else if( nJob == JOB_ELEMENTORLORD_HERO )& I* Q7 `) k X; `) \$ M) b
nPoint += 390;% S/ R! {- c J9 V+ o% V# I, t
0 k1 q$ L/ x. L( Q4 H! q6 X$ A( R
AddSkillPoint( nPoint );
6 i" ~" p" |6 e& v0 B+ V5 e$ m$ f m_nLevel = nLevel;
$ P. k2 T9 d m' h% j8 u2 C2 d' |( G! h, {! i2 K
SetJobLevel( nLevel, nJob );
0 p6 q9 s0 P" C! M; B, G( U5 O3 A, a m_nDeathLevel = nLevel;
+ ?4 M: M7 Q, ~3 Q% Y8 t#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ I: G0 W# ~2 d5 D6 A, N+ l5 ~% s if(IsMaster())8 N* ]: k! u( R7 @5 q& w
{) W8 d7 a3 M: p k
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108. |3 N0 w% w3 r$ J! t
if( nLevel > 59 && nLevel < 72 )
" s) F! r; p d; ~, ` dwTmpSkLevel = 1;( E% m5 U5 r, Z- z* Z' _
else if( nLevel > 71 && nLevel < 84 )
1 W- t( _5 w4 [/ Y1 O$ ` dwTmpSkLevel = 2;/ E7 C# H% t( u# y
else if( nLevel > 83 && nLevel < 96 )
4 w5 q/ T# S3 s! ]" | dwTmpSkLevel = 3;
3 \7 V2 W0 T; y5 g! e else if( nLevel > 95 && nLevel < 108 )
7 C1 f8 b& ~$ r' U* e3 f1 n: q dwTmpSkLevel = 4;
/ x! _$ ~1 S! J( s" n) t: F else if( nLevel > 107 && nLevel < 120 )9 ]' A4 v2 O1 h5 M# h9 U" `& {
dwTmpSkLevel = 5;9 F$ M7 a3 [7 W, b! l n, j7 f
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 `- R7 @- h* G) B
{ 1 A. ?+ N) J# M
LPSKILL lpSkill = &(m_aJobSkill);5 ?% p9 s0 c! `/ s0 [* y0 B' Y/ {
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# r5 v# g; A0 j5 T* u {# a9 o6 ?" n) }+ A$ |# W/ Z8 L: f7 l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 T4 Z* n5 Z5 ~5 c& x' O
if( pSkillProp == NULL )# W: d0 D% @1 N" e# E
continue;
# H, }4 Z& P! I% K; m+ O/ a( Y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 N+ p; ]7 V# `0 S- g9 ]. ?4 O+ j
continue;/ e1 S _3 w) t& E9 E: A
lpSkill->dwLevel = dwTmpSkLevel;2 X5 r, y# y) j8 C5 G" k
}
2 T$ i2 P, m2 B }
# M0 e) F/ r+ C2 e' E$ | u }
+ `5 ?$ ]" m, g9 b# l2 B. N h8 [$ l else if(IsHero())0 p& g- u' z8 g9 O/ Z0 i( d2 m
{
+ E4 |9 J2 X, f9 o6 }$ W for( int i = 0; i < MAX_SKILL_JOB; i++ ) / T; p- _" k" e1 J( @! c9 S
{ & s7 r! a+ T# W/ l B4 k
LPSKILL lpSkill = &(m_aJobSkill);
' K3 f' [% O2 h4 _1 [0 s( b7 ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )& v: Y( X) V% Z
{0 W! y0 m! h* X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) i3 @1 a4 g9 b if( pSkillProp == NULL )) a8 {& z4 r7 i+ k; K [
continue;' S$ i* N% v' |2 N' X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 _5 W) \: G: P7 N+ v0 J- ~. Z
continue;
; @0 M% {! ^3 \+ r lpSkill->dwLevel = 5;
/ N- Y2 ^* ?( c }4 A5 |& h+ M' M+ j# p
}. Y( e9 m$ }# [; G
}5 o4 I$ I5 |( W
else if(IsLegendHero())
1 c0 a! t8 t& v7 e3 ?) Y {
0 q* z4 {% w, |0 @ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 G+ ^) V- k8 T9 [) M
{
}1 j2 Q) S; n% V A: t LPSKILL lpSkill = &(m_aJobSkill);2 r4 G7 I' a4 T% P u6 V* l" x
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. Q2 i: l" l. @6 r# L! f2 P {: i% |) ?" V" X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 T& G! e5 j Z4 @* `- x
if( pSkillProp == NULL )
# q$ Y! N$ Z% C9 n( K, e continue;
7 V& d, n+ ?( S% T$ e3 f) i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! h0 z/ f) e4 C% [ continue;
1 |* ]) K, C e8 c4 s: N/ j& z lpSkill->dwLevel = 5;
& j6 t" y- u2 i: F }
9 x7 y- q, L, q& m* o9 X }. r: f! k/ [9 C; K2 y, a* E2 }; h, F
}
8 b2 x) L& j! o E#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* i0 v9 R8 R- o9 l
if( bGamma )9 X( p5 P- a2 w2 j" P
{
" f9 r: T9 P. h2 O; ~: m) s/ |9 V: t m_nExp1 = 0;% W/ m( e3 @. T. t. P8 c s
}
& i$ t/ S. ?! T: F* B/ ~0 [5 ^5 v
4 W7 a2 \ I7 k; w ( (CUser*)this )->AddSetChangeJob( nJob );+ A- _& w! [' I4 t. F" v# K
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' h$ q" ]) B5 e; ?. _7 z
5 Y$ r7 g% r$ y3 P- R) x
# U# Z( `3 e# V5 D9 t e
#if __VER >= 11 // __SYS_PLAYER_DATA
! Z4 N: `1 z, x6 P! s g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
" p# B) K2 g% X& `8 t#else // __SYS_PLAYER_DATA* K( ]* G i! v9 K
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ O5 f- k: b+ p
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, s5 J/ k; A! ~* }2 V8 P- l if( m_idGuild != 0 )
; M) ?& q) O+ n g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# L6 g3 S* K* J7 L! ~
#endif // __SYS_PLAYER_DATA
7 r! ]" S3 d" p3 G6 J* | SetHitPoint( GetMaxHitPoint() );! w4 O3 U2 Y( B# ~
SetManaPoint( GetMaxManaPoint() );
2 V2 H* u5 P; `: |, R/ g3 E SetFatiguePoint( GetMaxFatiguePoint() );
) ~; t" K8 _- y3 |! G* W: l5 l8 Q if( nJob >= 1 && nJob <= 4 )
6 u' ^8 g8 Y% f0 h& G6 h7 X {$ x! D/ N* d: Z4 F; m* J
m_nStr = m_nSta = m_nDex = m_nInt = 15;" @0 A" s, X* \5 f
m_nRemainGP = 28;- U. k2 M0 W# |$ F R
}0 R6 y6 _2 G5 M; O* g4 e+ }1 b( z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 Z# y l' J2 _
{
1 I h1 g0 m$ J B6 T m_nRemainGP = 118;4 g/ U# V0 E: F- }; G3 H
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 v6 s; q; s. O, }5 m( A' w
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! z$ C' z7 D. u% f" O( E( T }4 T0 m% J" o4 d6 x1 }" Z
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 i- l3 H% Q9 G) w" C3 N+ Q6 s {8 [, ^ g; T/ B7 ]9 \
CItemElem itemelem;
' K8 c* \/ W9 {# u$ Z itemelem.m_nItemNum = 1;
# N( P, ]. _' }2 |7 D itemelem.m_bCharged = TRUE;5 i" p8 M3 {4 j& p M
BYTE nID;' r7 L5 e! E! \0 a, [% z
6 S6 p0 Z' U- `0 ]$ F if( nJob == JOB_MENTALIST_HERO )
! H& u! d/ x: Q" h itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. Z5 B7 Y B! A$ @0 T; k) ~/ D if( nJob == JOB_FORCEMASTER_HERO )+ y% f7 f5 r$ c9 p
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 U) O S. U. q, h1 N
0 ?" h" O; ~& G k
( ( CUser*)this)->CreateItem( &itemelem, &nID );/ g7 [7 k4 ]" X6 D) G
}
% |0 ?- R. u$ m g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
3 ?3 I- B: I' c# h2 T) J! }$ g ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
5 M3 E. `: n3 G& N ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );% ~. ^) y" F3 m4 g5 H$ ]4 R
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% f2 y* I7 K6 b$ F6 B ( (CUser*)this )->AddTaskBar();*/! F* V! Z, l8 u! y
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. T, ~/ K+ K- \( S# _" F0 Z#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?4 E0 O$ L: \1 ~% D3 Z
((CUser*)this)->CheckHonorStat();2 e+ R* K& w/ P' X2 G& C0 j9 ^
((CUser*)this)->AddHonorListAck();! \7 }% F, v2 X3 `* Z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 B+ A4 y( O j3 a; G) B Z8 T5 K6 `3 T#endif // __HONORABLE_TITLE // ′Tà?' h- w) C0 x; g$ ?+ ]8 L
}( w, f+ `! d+ A0 w M
#endif // __WORLDSERVER
( C' u J7 r" u. `2 X1 f% u}
. K) m R! Z! R) \, \- Y X! u+ E. g* m" Q% E1 j" |$ e
然后你进入functextcmd.cpp并添加以下4 b( I* Z. C0 P& n
% c7 A. x4 A! {9 |( F
代码:; T* a; N% s; Q- e+ ?$ \
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% m% `: Q0 Z9 D s. \/ r下面插入, l [6 k% ^, |8 g s" d" k
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ) o! m2 f+ ~6 I$ \0 @* ^+ j$ e
, w+ r3 C+ x( y7 l f然后你去
# V2 u; p9 Q' Z- @+ ^+ b [9 N: F; P4 g6 Q$ `
代码:' t: e# Z w- y9 W3 }* @
代码
! O1 d7 x. R: Z+ }3 RBOOL TextCmd_ClearPropose( CScanner & s )
3 E E0 q0 E5 e2 w* y3 z1 u& X{! X% t( Q0 [( a0 U% e' C: {: e3 m
#ifdef __WORLDSERVER
+ H2 v. v! j0 f9 e% J CUser* pUser = (CUser*)s.dwValue;9 B8 X, P5 X! D2 }
g_dpDBClient.SendClearPropose();2 D, ` P5 A* I3 L% c& }
#endif // __WORLDSERVER
5 G" O) e3 a' V8 U: L return TRUE;
! j+ G* U1 i: H o, J8 @/ Q8 c: k}+ t2 P: j% C- c' H! b
下面插入
1 s. v: {- Q7 ~: nBOOL TextCmd_rebirth( CScanner& scanner )( i/ H* {- V, s+ M. x
{$ `3 H6 I6 U. h. ^' _
#ifdef __WORLDSERVER: c$ ]6 D( J N/ p
CUser *pUser;
' g3 K2 n6 X% F2 xpUser = (CUser*)scanner.dwValue;
5 a- U3 c6 m! k2 ^% p# bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())* F3 w3 f$ G- S
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ A/ Q. [/ H4 B: b
else: B4 R# G6 M' F2 ]- n
pUser->AddText("你还未达到重生条件!");
. @: D$ k: m/ q U! x#endif
& j, v0 t3 F B7 w; P3 ereturn TRUE;+ w+ T; Y& O$ K5 X/ @
}
6 q; u7 P# H; [4 t5 D4 y! Y
j% T" j; K; ^; [
f$ R/ j$ ~: C- ^, G1 h( c4 A( i: a1 A
! u. x* F: L; ]- M* B
|
|