|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& q. k' O0 k, z
' s" I7 A: n* O) X, q
Mover.h1 D/ _# O+ C# U3 y; V+ ^
代码:& ^; ~' R) r4 B
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, I8 c7 F$ L% o! y4 G& s/ X* C4 P6 ]
$ X5 }. }/ B, ~ f) ~下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & U6 \+ i9 D2 R( K
, r `* s; C, ^+ B* }
然后你去mover.cpp添加9 F# ^7 z+ n; m- L( {0 d1 F
% E- D0 {; U! H' t0 @0 a
代码:7 ~+ S5 I% \* f& e# T
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( K: [" l$ R0 X& f{
- I2 ~( Y5 k! V4 `! b% r' Y: P#ifdef __WORLDSERVER7 |: c8 Q+ w3 _. u& Z3 x& u% t
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' h r% c) m7 o' r2 x7 l. f
MoverProp* pProp = GetProp();
" R7 o4 D2 {8 R0 x if( pProp )
% S' E! L! ~- D; `2 b {
4 C6 s; j% v6 ~! |: j! Q if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 I# @: ~+ n( R) \ {
( w; B( k. [- k$ I4 h AddChangeJob( nJob );& X# ~6 n! ~( t: T
}else{
6 M" J* S, f! h* v' z) ` return;
- O+ C( J+ x( Z& j/ u }
7 q& E1 w1 I* f, t! Y int nPoint = 0;
' y& j, q5 j# b5 i. h [# @0 D if( m_nJob == JOB_MERCENARY )
9 K0 u7 J7 d7 n" c, q3 a nPoint += 40;+ L8 T* o& _! G" S
else if( m_nJob == JOB_ACROBAT )" T1 q; ^+ `& Z( W: \' _1 o
nPoint += 50;7 |7 X( O {8 @9 D2 O0 n
else if( m_nJob == JOB_ASSIST )
# U- J8 H3 B- q+ o nPoint += 60;
3 W+ k/ [. w2 P else if( m_nJob == JOB_MAGICIAN )) Y9 w+ S8 t$ P$ R n0 b
nPoint += 90;
, ]- e0 w/ d3 k; W& D9 b( y( s1 X0 Q else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 |) M7 s. F) b( l# F nPoint += 120;9 ?9 }* _' a' V: h
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% N; P. ~* N' J' w ~2 o& \
nPoint += 150;
% J. _8 e8 h8 h- f else if( m_nJob == JOB_RINGMASTER )$ @6 o5 f6 @% l+ y' r+ n6 a% [ O
nPoint += 160;
( K/ U4 D! {2 p {& s6 I else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 b' d A( j, o! e5 Y7 D$ `- W nPoint += 180;
4 g1 A1 a% {) y: b else if( m_nJob == JOB_ELEMENTOR )
' U1 h6 w5 n/ W# `5 g! K1 \6 O nPoint += 390;
4 h" u! e# K9 M; E else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 |1 [$ u- b. M# e" K nPoint += 120;
) T& } A( j3 b else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
+ o( s0 e7 V, Q; |2 Q/ B nPoint += 150;
3 H( Q! _( f6 |3 {8 Y( X+ V; z9 H. g else if( nJob == JOB_FLORIST_HERO )9 n0 C% j1 T2 P" f$ M" d( J
nPoint += 160;5 p# n' y+ |' o% t4 \9 [
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )" k2 s% T6 ~6 }3 z, |
nPoint += 180;3 S* m3 q7 X6 }$ v8 [% j9 O! N. ^- _
else if( nJob == JOB_ELEMENTORLORD_HERO )
" i& i) z- O6 M& w6 V5 A1 m: } nPoint += 390;& C) A/ h/ p. K
9 v; Z1 b+ Y! I$ z
AddSkillPoint( nPoint );* N. O4 ]+ n6 u0 \
m_nLevel = nLevel;5 M) U U4 r# P* \) @3 V( e
$ T8 p1 ?6 T& P r; a
SetJobLevel( nLevel, nJob );
- P9 u7 C9 I' M7 H6 i9 h: x m_nDeathLevel = nLevel;' c" D |+ Y% y1 e: {) \
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 g* o0 i( u% V; A5 M( a
if(IsMaster())7 b. B/ s! h% `" a5 f8 A
{
2 W/ d1 S ]' o int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
( \; w, C+ E4 u/ V+ c( a* f | if( nLevel > 59 && nLevel < 72 )
8 i4 w% o& }% {: P; C" D dwTmpSkLevel = 1;. C# T: B0 k9 R2 U
else if( nLevel > 71 && nLevel < 84 )9 M1 e+ A' \, g' g! M: R2 m: c
dwTmpSkLevel = 2;3 Z- _& o: P4 Z: ^/ F) k- L3 E- E
else if( nLevel > 83 && nLevel < 96 )
3 F6 U) G: Z: n& I8 B* u! C3 Z3 ` dwTmpSkLevel = 3;
g5 Q- z; ^. _ f, |$ ?- I: { else if( nLevel > 95 && nLevel < 108 )1 A" f9 U4 Z$ ~$ a! J) |
dwTmpSkLevel = 4;; \# A3 y s; ?! `; s
else if( nLevel > 107 && nLevel < 120 )* z0 R. c' g( x5 V8 {% i' J, K
dwTmpSkLevel = 5;) q- R( t; b9 f6 u. ~
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 M2 _3 t- e; U; m' Z5 P+ c { 5 j v( T$ f i/ j( P
LPSKILL lpSkill = &(m_aJobSkill);7 v" Z4 d( ~$ e6 [0 I% |
if( lpSkill && lpSkill->dwSkill != NULL_ID )& E4 \% n. a' c( e6 o3 a' Q
{9 X: e2 ]1 _0 z. o8 U
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 B3 J! M( x U% F: [/ V if( pSkillProp == NULL )
. H' |/ w9 w7 s2 u `- D ` continue;1 R* y$ E4 f7 [$ o) {& i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. M d" m: [+ Y) `3 |, s: }% V continue;, \5 r! D5 ?3 Z! S6 M
lpSkill->dwLevel = dwTmpSkLevel;/ X1 ^0 v; H9 P$ ^
}, N% v) L8 D# }+ e5 h m
}
! F W# M& y% d5 L# _ }$ P" v; o" P" N8 ?
else if(IsHero())4 }2 A- R1 ^! }' N
{
, ], i6 T8 I+ I! J) M4 O3 o for( int i = 0; i < MAX_SKILL_JOB; i++ ) W4 Y+ g7 O% P( I
{ 0 R/ k3 T- a$ E. `
LPSKILL lpSkill = &(m_aJobSkill);9 y1 X6 [" Y4 M% c. [6 N8 N/ {% ]
if( lpSkill && lpSkill->dwSkill != NULL_ID ): ]4 {" l1 r. i, e3 R u7 `4 i. D
{( S3 O7 E, n" ~, N; N {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ e- X+ l$ W& t9 [8 c
if( pSkillProp == NULL )
; j( I, S/ y" Z6 _; V0 a; N' N3 U continue;, q/ ~3 U, E6 _0 c8 [; g/ X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 W6 q9 o/ r* ]# {3 s* D continue;/ {3 h# t% S; e* S/ ^! s
lpSkill->dwLevel = 5;$ Z4 k. e) Y6 P0 Y2 ^: N
}
7 R0 v) }. ~0 h L x }1 I0 \$ N' H1 i* c3 u! y# H, x H
}0 V# `: a8 p( `2 e3 V
else if(IsLegendHero())
( K1 x1 K6 V8 P- U" l( x# r& ] {* N8 |6 b5 ~1 f6 O
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* w% u9 \! t+ Q1 [$ q {
/ a: E; A& K$ E& L, J S8 { LPSKILL lpSkill = &(m_aJobSkill);
( Z. P( c& d8 y: b if( lpSkill && lpSkill->dwSkill != NULL_ID )8 i0 G5 h, W( K& [
{6 @5 m+ G5 a R1 ~$ O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. k$ W& _, r4 H) B/ s, z9 R if( pSkillProp == NULL )
1 A; z$ N7 A0 j! `* B% v/ \ continue;
, K- V3 v/ d6 J9 N* ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ D3 |5 k$ e# m4 Y6 k* R [$ N) P continue;* z: p' B( g N/ [
lpSkill->dwLevel = 5;
. G( B/ w q8 _% B }
) B+ Q, T9 M& W4 j6 {1 f }
5 R# m. p: d: a G5 R+ ^8 }/ f& C" @ }
9 l. G7 @' ]! r1 f#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans O1 t7 [& r, n8 \
if( bGamma )
/ z0 y0 ?$ R$ O+ G2 T {
. u/ I5 l* z7 K9 f- S+ s6 x" @ m_nExp1 = 0;% Q! X2 y+ R# K5 R( J, }1 {6 p
}
; U* c7 J, v. q- E$ W& @" C/ k0 l
% ]4 c: k$ }2 O8 i ( (CUser*)this )->AddSetChangeJob( nJob );- D# q9 ], A/ T
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 c6 i ^" [+ I/ [( {
* h4 G# m+ [2 ]/ M
8 x9 M7 _* W3 E! u
#if __VER >= 11 // __SYS_PLAYER_DATA0 L) n7 s, F, w) m# c2 o
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" o& @+ r7 l$ @$ ^8 P2 A
#else // __SYS_PLAYER_DATA R& A7 z2 m2 E r- _1 Y* {+ \
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# X( Z" P# K( z3 L
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ k# Y+ S# Q, p
if( m_idGuild != 0 )4 Z! w9 z8 g/ V4 X6 N
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );! b# q4 a3 [3 n
#endif // __SYS_PLAYER_DATA: m9 }2 \9 Q9 P* v: x
SetHitPoint( GetMaxHitPoint() );( `- u) t; ^# U/ Y
SetManaPoint( GetMaxManaPoint() );4 w- P! }& d$ i8 R) ?/ \' _
SetFatiguePoint( GetMaxFatiguePoint() );
9 g; h1 m0 n; N5 O) K' L C if( nJob >= 1 && nJob <= 4 )
2 w% I" r M% [; u' j2 a {
8 [* L3 _2 r% D- P m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 r- ~- a) `$ }, k* o( l# L m_nRemainGP = 28;- X7 P2 M3 s; j2 B; [
}
1 X: O3 j* |" P& u. B7 E if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 Y) M: J% e5 J, \. w% O
{; J7 `, L/ \ ~, f
m_nRemainGP = 118;
3 |9 q7 K1 K5 m //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;- w( | p" c/ ^6 k4 C& _
m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ M- ^+ E8 Q* A3 v% v7 @7 W- K9 M }
" n7 e2 `5 A$ x if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 M O! p9 T6 F W+ I0 G8 z- c
{4 B% f' Q% s! q' \! [) @' q
CItemElem itemelem;/ W- M& F" b7 i4 c6 @& ?- u3 I8 n
itemelem.m_nItemNum = 1;. M+ N, b4 `; h; o
itemelem.m_bCharged = TRUE;8 ~7 _7 L) O' o3 ]9 a( [
BYTE nID;: c" p" M0 y* W, k l1 H
2 r2 o3 }+ G6 i5 b: Z
if( nJob == JOB_MENTALIST_HERO )
# g1 I, x/ A9 {7 B( u# z itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% h( y, ]3 W5 Q& W" U' y
if( nJob == JOB_FORCEMASTER_HERO )! X9 D$ P- Z' e2 A" b7 V5 \
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;! @" `) i$ _3 [2 i. S5 v* C
$ ]( _/ M& \. ]. h6 y" A ( ( CUser*)this)->CreateItem( &itemelem, &nID );% w: K; R; [9 j! T( L3 w) W
}
2 @5 G$ s, x$ I! `0 H g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! F8 y6 d# a( m: C1 T ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. O2 [7 L8 b3 j ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. X, W# Z7 F, D8 e
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );9 x* E. O- z1 Z! P. W
( (CUser*)this )->AddTaskBar();*/( I1 u/ ^/ r( ?! u" H. X2 ?
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ h9 }/ ^1 ^# \+ d. O& W8 A# l
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
# L4 N4 Q" h# O. x ((CUser*)this)->CheckHonorStat();* @9 ?$ j n7 Q2 _
((CUser*)this)->AddHonorListAck();( n. X1 C) {0 A' v0 i
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 s% ~# Y. |! V, z/ {#endif // __HONORABLE_TITLE // ′Tà?
8 T9 U" M" F. v# K. j0 M0 k }
U8 P9 `' [, t+ B0 F$ o#endif // __WORLDSERVER" S5 T; U- c# T# U5 P8 t' I
}
4 I7 \+ ^2 H7 J
; `: y. M3 Z* _然后你进入functextcmd.cpp并添加以下# D: m0 q2 G) t7 G+ E
$ V* I* T$ e$ f6 ]
代码:
$ O% v& }" @5 [/ J& X2 G9 NON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' g2 s) Y8 t+ y6 m( m4 k$ t8 b下面插入
" J5 e: O/ c/ O2 q" VON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 @% s$ R1 Q! }, P# E- a
* a) u5 Y- W* {然后你去
# p* G/ z) s. m) V& E( D3 F2 L0 N! R; O2 K1 Z8 q2 {0 w @# d
代码:; v# w& ^- @( f% c. g. X( T( `
代码0 ]3 K' t1 X0 P! @% w% d) a
BOOL TextCmd_ClearPropose( CScanner & s )
3 j4 u: j$ [: n: R{
3 g. c. x' r _/ ?( ~* _#ifdef __WORLDSERVER' l+ _! g$ ~% ?$ Z( a' P
CUser* pUser = (CUser*)s.dwValue;
. ?9 K* T3 ~- l* U7 D7 p& x+ Y$ r# D g_dpDBClient.SendClearPropose();
3 I2 u9 x" f4 k: I, i* t- f& K% M& F#endif // __WORLDSERVER
2 o% e, v- h, m& [7 h; D return TRUE;
& T: @1 m* r. ~& L( d3 S2 h* d}- `- w+ Y' A; m
下面插入
5 `: m& S$ ^- p0 E' {BOOL TextCmd_rebirth( CScanner& scanner )- c$ z% t' v3 j0 D
{4 |7 q* V0 A* ~0 Q* }$ c' }1 r6 D
#ifdef __WORLDSERVER
4 r. f$ c9 Q2 ]) J' |9 |8 ^8 c' UCUser *pUser;+ d; E. A# A0 w0 p
pUser = (CUser*)scanner.dwValue;% I# R6 I: G9 f. M& T) H8 ` e
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())9 [0 a4 t- h% x9 \; F( X
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);+ f; M( w3 L, x3 j9 z8 K
else
- @# Z" M; I; w2 N$ g- KpUser->AddText("你还未达到重生条件!");
$ k$ \. n& R2 H8 p#endif6 j- f& H& k: z. z0 V
return TRUE;8 S: T6 B! R- F; l7 D- f
} % f3 I& K, H6 c6 Y6 X- |/ x
6 a, g. P* V: B; G! }
& M, I" [) ?) x$ Y' c; [1 Z4 R9 q
5 W+ N: x9 v0 g) I
( A! ~* Y# g/ X) ~/ z |
|