|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, W8 }4 t* e; a7 U0 _" x
5 G; ?7 s8 ]8 H9 A- j7 i
Mover.h
4 g, e$ k$ C6 L% q代码:
; H6 I6 B; `: `: \7 G! M Z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. M8 r" N$ r+ E# A' a
) w8 f# _, Y* u) q- z下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 ~' L- k" D+ B2 j- v6 X' r1 ]/ _+ z0 W |2 _- G; v
然后你去mover.cpp添加
/ _4 t& Z- l6 f' i" D6 I3 n2 y- D" a( R, ?6 h( r9 S3 J+ q
代码:4 y+ r9 W% J# Q& f) D
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 f3 B5 h Z8 }7 I- {0 O1 j
{4 A ~& J3 ^0 e3 ~2 j+ |7 _
#ifdef __WORLDSERVER
" v/ X, M1 e9 W9 K Y# X$ A8 Y // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: c: e4 y) ]+ O9 M$ C
MoverProp* pProp = GetProp();2 @2 K6 M% ~6 l
if( pProp ) @$ q" R) ]' o x0 Z: O) Z1 D
{, a- r3 E# n. r
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 [; L; D6 N l. {5 D0 x {
, ^ K4 [# U, f1 v4 q AddChangeJob( nJob );
* Q5 s `5 z4 ~- d& ]! c# V( J0 y }else{( s+ w4 K/ T4 E. }) ?& M8 [+ A
return;& K5 F* D+ q2 }" N. j5 W
}
4 T- m4 R j$ ?$ Q4 c/ G0 ~ int nPoint = 0;
6 w- V6 M5 `; q3 o* U# n if( m_nJob == JOB_MERCENARY )
' A: H9 x7 O, A- i nPoint += 40;1 K" t0 n8 M" W; I2 G* ^8 g+ I6 _
else if( m_nJob == JOB_ACROBAT )
4 a& g: n8 \ k3 Q nPoint += 50;
% n# `: ]0 ^, o h7 _5 a else if( m_nJob == JOB_ASSIST )
l" a8 T3 A2 _' l' H5 m nPoint += 60;+ F' Q: M2 R% `% p1 o [$ }& N( q
else if( m_nJob == JOB_MAGICIAN )
3 |: ]0 K5 N+ B* t4 B nPoint += 90;5 J# S+ |9 j) t" [5 J2 m
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) p' A! f7 b9 h, C nPoint += 120;: n* D5 d4 s+ x& n3 |0 E% U
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )2 n- d$ D2 S: Y
nPoint += 150;
. p- k. ?5 u# E3 i. T& M# I; l' f else if( m_nJob == JOB_RINGMASTER )
, T9 O) s' ^4 h- x0 _ nPoint += 160;
8 d2 S* X6 {# u4 Y else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 k+ `5 j E' I7 M nPoint += 180;
" M0 \2 I# t6 b! y9 Y) i else if( m_nJob == JOB_ELEMENTOR ): o& l' B) ]/ \
nPoint += 390;/ L! O! O; Y* b4 X9 V$ q! e, L9 @
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* ]# l7 u u3 d D
nPoint += 120;. u( e9 W! U6 o& j& g
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: t# g6 A! i/ Y nPoint += 150;
+ @; n' z; y2 Q3 S% y5 g( H: V5 n else if( nJob == JOB_FLORIST_HERO ) h9 T- j$ N7 B: z/ ?7 C
nPoint += 160;
d* I+ w( I, N O else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
) ~6 H# t% s; n$ p @8 i nPoint += 180;. Z. _ |3 S9 u. |4 O/ R' y
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 K2 j# M9 P; u+ ? nPoint += 390;
7 ^5 o+ M' E3 r7 K1 S; {9 s3 Y. }1 X$ n4 D6 Q! w1 ^( f
AddSkillPoint( nPoint );3 [2 W* e) r- N
m_nLevel = nLevel;
# a5 K/ l9 d) w
0 @0 @; L% N$ }. O( ~5 ^. k+ ` SetJobLevel( nLevel, nJob );
% @$ m6 A2 K0 B' P+ d' X/ C m_nDeathLevel = nLevel;" y/ t+ ?# j, D0 r5 V, t3 L
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans G2 o% i O( D; e! U7 m
if(IsMaster())% X8 d+ @ ^3 {8 }0 j& V
{: l. b$ x2 D4 s9 C
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 f: ]- d$ N/ ?! W# O8 H6 I if( nLevel > 59 && nLevel < 72 )" _" D' O4 E4 r; d( L7 V5 N
dwTmpSkLevel = 1;
" F/ N% i& }- d+ ~ else if( nLevel > 71 && nLevel < 84 )
3 s$ l8 x: x$ H( u0 ]5 @ dwTmpSkLevel = 2;
- p. a$ t1 A, O3 S+ m else if( nLevel > 83 && nLevel < 96 )7 w7 Y3 M- I7 {' B
dwTmpSkLevel = 3;
3 K: Y3 u7 `3 R' y% u else if( nLevel > 95 && nLevel < 108 )
& Y" z, Q$ e( S8 y# g dwTmpSkLevel = 4;
. S( E2 G0 u' k8 | else if( nLevel > 107 && nLevel < 120 )
/ }& E- i5 i7 _: j* T* X dwTmpSkLevel = 5;+ Z- @5 x1 W& |; m N% L. H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" w% O3 R0 I1 x* v { ; `. l" R- k6 o; r2 \
LPSKILL lpSkill = &(m_aJobSkill);
9 i5 ?6 D9 B) ?' X4 t3 o% u2 A if( lpSkill && lpSkill->dwSkill != NULL_ID )4 y1 P$ @$ I# l
{
( t4 u2 F5 D! |4 p- v' @( P2 t k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 h* H* I4 a& Z# h5 K/ N' V+ z if( pSkillProp == NULL )( ^ ^5 c/ r) d$ d7 v) P
continue;
+ Q2 l) L0 A: a/ G3 i% x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* U+ T& a5 W3 T$ U- W, D$ {0 b
continue;) v+ I9 m/ f9 P( W7 e" ?; J
lpSkill->dwLevel = dwTmpSkLevel;' u/ E( {) f+ z9 l% u b
}
4 O. j) X! u7 c$ J }% C; y" a; B) N6 R1 `
}; d: U3 ~/ j1 H& K5 @
else if(IsHero())6 U1 p2 G2 u7 P7 O% Y
{
+ z, E9 n. y9 C: q for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 B% p# j/ G! }4 `7 V$ s
{ - G: L! d: g0 b5 Q0 G+ ]
LPSKILL lpSkill = &(m_aJobSkill);, t$ h8 y+ g: d! z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' r1 \+ a% N+ G; y" w1 V# j0 S+ C3 n+ _ {, P0 i9 ~" d2 G+ s. |$ Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 h4 [% s0 R0 f: G( }# p1 Z if( pSkillProp == NULL )/ V' I2 Z% `' F1 U2 V1 V& d
continue;
7 Z! z' m/ u0 L- s: E* Z, t0 a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 S ]' Q" A- e continue;: Y! h6 A* [# D3 U( B
lpSkill->dwLevel = 5;
6 A: b, C, ~7 y, `2 J K1 V+ N }! Z2 m, T7 {9 f# d# {
}9 D. b8 c5 B9 O: h, e5 P; m
}$ Z: E9 g' M+ F$ b
else if(IsLegendHero())5 M; R; W* O4 U
{* a4 \& ]6 }2 @( h. X; D
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 _6 i6 d0 D7 E$ f0 T3 w
{
7 C* P3 X) R. p1 L/ v8 z LPSKILL lpSkill = &(m_aJobSkill);
+ p0 S/ j7 _4 u# q# T: f# q, C if( lpSkill && lpSkill->dwSkill != NULL_ID )
- v1 ]$ X) D4 ^9 a; H7 g7 V1 j {
# I" x0 ?/ p; E- o) ]6 k _7 a K# a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 J9 ]/ ~; y6 k# K
if( pSkillProp == NULL )
- u2 |: T* F) G/ U6 H3 H continue;: Y! e4 d# c% O0 v- r" j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# l% V, q! d: X+ P& M0 s* W, c7 u
continue; q, G5 o( h9 h$ _
lpSkill->dwLevel = 5;1 n& A1 U( Z3 o9 O9 o
}
+ B: k. B1 F% w2 U o" p8 }) ^ }) a; K+ x# V; ^
}
2 D7 R& G' `; k; P; f( s; Q#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! u# N& q0 l6 I5 ?
if( bGamma )' H# O; Q! F8 t, u) N4 U- B
{* h$ W. H3 Z3 x! \7 e7 `7 c
m_nExp1 = 0;! X& u! _* Z; o7 r: G
}
/ u/ l" u4 m" }* e8 p# ~$ z8 U0 d) u# c: L" U8 }' s S2 R
( (CUser*)this )->AddSetChangeJob( nJob );
, H: i8 ?# \+ x$ c g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 c& u( S( P- i2 ]
; i# i2 }% K0 N7 c$ V) W8 I7 a' b9 [2 c% i$ Z/ _* m
#if __VER >= 11 // __SYS_PLAYER_DATA
" t( z+ A9 Z% X; ^. ? M g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
7 w+ o% l! S3 M6 @2 J) g: }" q#else // __SYS_PLAYER_DATA! } Q, ^7 n" @
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ M, M0 ]# Q7 a5 m L8 S$ } g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 a \& B T1 y9 ]* s' x if( m_idGuild != 0 )
0 [) v0 \0 k4 d: n# k+ x- u g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 b8 n1 w: y) S
#endif // __SYS_PLAYER_DATA
7 G. _$ ?0 x% i: {# h- V7 {9 L SetHitPoint( GetMaxHitPoint() );
# i) l( M. o) @9 A SetManaPoint( GetMaxManaPoint() );
7 w4 s5 G$ U# u/ Y0 P SetFatiguePoint( GetMaxFatiguePoint() );% O/ O, H( C; b
if( nJob >= 1 && nJob <= 4 )5 y8 P8 ^ v2 c7 n# O2 r3 ~
{
* Q& b' j2 O$ o& S+ K! g m_nStr = m_nSta = m_nDex = m_nInt = 15;3 F# L& D0 g+ b5 e
m_nRemainGP = 28;
E0 ` v6 c- ` X- {6 c }4 B1 Q: \: p' ?: x0 K; s# L% d$ t
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ) z1 W4 {+ w L" p$ w) W
{/ @/ F6 ^1 P l6 C
m_nRemainGP = 118; r+ q* J5 A' l
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 [" Y m/ f* w6 J
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( y+ i+ p3 e& d) y9 P }
0 e; u% Q8 J& h8 Y# y2 _2 v3 Q) d q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 B2 n, Y5 I$ ^3 u2 { f% s* c. h {- b( u G& p8 U% Z$ B7 ^% p
CItemElem itemelem;
. c1 P& j; q( c! H itemelem.m_nItemNum = 1;' z; B+ C5 R9 g7 R% Z# h
itemelem.m_bCharged = TRUE;
$ n+ ^1 h8 Y: P2 M$ N, J: W BYTE nID;1 J1 i, x6 `* S/ N2 C) E+ s3 o
4 v7 V) x+ d, l/ C4 ^! E
if( nJob == JOB_MENTALIST_HERO )
7 ^, \5 d" p k+ l$ L itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 {' N( x( L3 v& w: e
if( nJob == JOB_FORCEMASTER_HERO )
|* @+ M* v7 F2 E itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;$ ?% k3 K- H K$ U$ i f, a, Z
2 B% b$ `, O8 J- P7 K2 d ( ( CUser*)this)->CreateItem( &itemelem, &nID );
" `$ R+ V/ G! D3 k: X" U }/ I% W6 k9 J2 K, m* ]
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 p. ~! E+ F: p6 L
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& g. o7 h1 B1 V! V9 U
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) B- |4 c- U/ V6 D ~; ^ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ S( D' Y7 d' K; U X! ?7 |
( (CUser*)this )->AddTaskBar();*/
2 K, K( O7 N4 c$ U* f ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 D& w. z& ^' w" K) m! R9 h#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' N2 v8 }! q+ } L2 F3 ` u2 ?, l; h. }
((CUser*)this)->CheckHonorStat();
E) z5 S' P. F' V; |% _* @6 O ((CUser*)this)->AddHonorListAck(); Z- v& N. v/ S
g_UserMng.AddHonorTitleChange( this, m_nHonor);$ A5 D5 p5 w" i9 w8 T' ?
#endif // __HONORABLE_TITLE // ′Tà?
) w0 q/ o9 d" S3 K+ E }
( r/ C, r& C6 f& T& K#endif // __WORLDSERVER% H# v' \) M% n8 K7 L
} ! m M# o+ f P; L7 C! a
" X/ [6 B, z- o4 D+ G
然后你进入functextcmd.cpp并添加以下" Y% z9 ]; F) e1 q: E/ Q: m
* P& _9 y) r6 z) T" {6 j* j9 X
代码:
- ]) l) B, t V8 J- C8 ZON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); _$ m/ z1 x- o0 s
下面插入$ x8 y$ [! i1 \* E9 y2 y2 e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ m' n* d1 p/ M4 ?) K, J; \1 `5 |# W7 C$ L
然后你去
( q8 X6 A9 M, R# I
) y. n2 O$ P$ ?3 Q代码:
* W& s6 y' D% G5 \% w. T代码
6 i* {. T- r( S: F' l/ s1 N8 LBOOL TextCmd_ClearPropose( CScanner & s )
0 G: z2 O0 T1 V3 B' _, g5 w{
$ ^) L0 D& `. g# e( g5 m#ifdef __WORLDSERVER
' ?0 W* n4 V2 R" {! F& u CUser* pUser = (CUser*)s.dwValue;
8 ]4 P( @6 @8 K6 y3 C; G g_dpDBClient.SendClearPropose();
& I5 M9 |4 J4 @- P* T$ z) L3 M#endif // __WORLDSERVER0 |2 q* Q$ p% Q2 b" w& s6 u
return TRUE;
( Z& W- s, j$ S- \' ~" F}& {7 i# S0 B7 a/ ~9 J
下面插入
) [3 t6 r# I, s. dBOOL TextCmd_rebirth( CScanner& scanner )5 K2 x8 s" ^( t4 L( q# s, Q
{
* B% |8 a& R. B- L9 q#ifdef __WORLDSERVER
' j. j+ N- i3 TCUser *pUser;3 p& W1 Z# X6 M9 V: r+ k, t! v
pUser = (CUser*)scanner.dwValue;2 Y' P$ s/ I: [ u g* T. {5 j
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 m0 b0 b; u" C* f4 U8 }
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); F( m0 E% [1 @) {/ i
else) H* y; ^0 p, ?: C! g
pUser->AddText("你还未达到重生条件!");
9 N* @4 j! D3 |! r1 K5 @#endif+ R2 ] K. s$ D+ u+ Z# c
return TRUE;
1 T8 ?) a; r R X" J} : ^8 E4 B6 N6 L6 i; s; x
& I4 c K; m6 M8 b* K
. B7 s# Y& B+ e+ y( _! F' P
/ t+ x8 Z$ R3 g# q# Y2 h3 w
& P4 M) R/ V# _6 s; q5 {5 @$ ]
|
|