|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel. M( s4 i8 W2 _' W. T. o* r; H
$ c1 C% a+ S9 h/ [& R% Q. C
Mover.h
p i2 z* }$ v. e4 Y% Y代码:
6 l! D: N% ~* S& s( s# T. S/ `' M0 @3 j找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ _$ U* I& g7 q
) ^. e8 R) e; R% B下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 V. j" B/ [( E# K7 `
3 u. v5 }) ~$ T1 w: [* R; }然后你去mover.cpp添加' I5 k" |4 J- c! _/ h B
! \5 u. Q' }$ J
代码:3 f. t& _2 [" y; y8 F0 V: U
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ ^; k4 d7 O$ ?4 Z{
- \, i7 ^0 a; H/ [#ifdef __WORLDSERVER8 I0 B9 l1 H, e: t
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó5 J8 l5 E! F- D- y
MoverProp* pProp = GetProp();
r! Q7 Q% A8 e5 U' J' J if( pProp )- }+ m: @6 k8 P; H
{
" X" L+ R; ~* C9 m* { if( nJob > 0 && nJob < MAX_LEGEND_HERO )( T3 S( `/ f5 h# ]9 q
{3 t# ?! t5 C- a
AddChangeJob( nJob );. L i" L( l: ^* q/ X0 J
}else{: D& d* U3 x5 M3 W) \
return;4 A. M. R9 ?5 K5 G: w
}
8 E" M& n- N7 u- W+ W, y int nPoint = 0; l+ I, M1 O, t
if( m_nJob == JOB_MERCENARY )' u% `+ x' y1 J
nPoint += 40; z$ \6 S& i* \3 T% X' v$ w5 e9 R
else if( m_nJob == JOB_ACROBAT )/ ?; {4 E0 n l+ n
nPoint += 50;4 o: w4 n; c X1 l* X, B: v \: R
else if( m_nJob == JOB_ASSIST )
, v+ k$ M* `) O% v- t7 U/ Y3 e nPoint += 60;
3 G- G' s& y F4 n7 k+ N; Z else if( m_nJob == JOB_MAGICIAN )
- b& b7 ?; A8 e6 W nPoint += 90;" u0 a9 |$ F2 ]5 {: J( p$ d
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% L S/ `8 K; M4 o1 x+ i, U
nPoint += 120;* Q z8 D! e3 t" ` `2 ]+ n
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 W# [; W! u9 v9 }8 a- ? nPoint += 150;
3 P1 J; P6 d* o" |9 K1 |9 j else if( m_nJob == JOB_RINGMASTER )8 o/ e4 L$ m3 [; ]% I" V _
nPoint += 160;/ _' G7 e7 G) S
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ). V" L2 C5 t# B' G
nPoint += 180;
. L2 }/ l( \( g; H8 w' W else if( m_nJob == JOB_ELEMENTOR )1 Q6 u& \; p3 b( p8 q
nPoint += 390;/ V. q9 B$ G- _9 ~" @; _
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 ^7 D- O! z. o) v* |* t nPoint += 120;- o7 F, M0 P3 I' [
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 }) J b5 G1 p% L' c( ]: g
nPoint += 150;
0 H2 I" v- }8 @2 ] else if( nJob == JOB_FLORIST_HERO )$ |$ C) _7 ]: T/ d
nPoint += 160;
) ^" O# k" ~5 s7 e else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 O* ^0 O1 \+ j% V% j nPoint += 180;
$ M& j j/ ^9 N6 ?" F else if( nJob == JOB_ELEMENTORLORD_HERO ). G! Z3 n. ~; _* v) V8 s. \
nPoint += 390;* U: U8 `) d: {2 P+ y. C! M( t6 `
* ^4 Y! m6 P' b ^ AddSkillPoint( nPoint );
4 m. a0 e1 q' f" z w4 M2 W* W0 t m_nLevel = nLevel;" r8 T1 U1 \2 U" v
+ D) q" p) |9 n. |/ N! s; ? SetJobLevel( nLevel, nJob );
$ n/ R+ M( M; J0 O9 L m_nDeathLevel = nLevel;
; X3 k5 o I6 u$ V0 q* e6 U5 t4 [#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% `, s, h6 y- b6 @
if(IsMaster())
: B# B9 i. R* h0 Y {
0 d5 d$ l0 |8 G% X' G% f' O int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 X0 N- \' E) k1 w& e
if( nLevel > 59 && nLevel < 72 )9 f# a3 o2 k$ _, Q0 K, q
dwTmpSkLevel = 1;
! O* k4 w# ?' N3 F& Z else if( nLevel > 71 && nLevel < 84 )
, v" O I1 c" _6 r: a7 b dwTmpSkLevel = 2;/ B1 n9 o( R) d0 E5 O
else if( nLevel > 83 && nLevel < 96 )5 E$ \; ^1 l/ m$ @# f Q9 W/ p
dwTmpSkLevel = 3;9 W; A/ {, X0 O0 [( n
else if( nLevel > 95 && nLevel < 108 ); J4 q+ k+ a/ {2 \9 F
dwTmpSkLevel = 4;
% P! W$ A: _: r5 y2 I else if( nLevel > 107 && nLevel < 120 ): k M. J( ^7 J( |
dwTmpSkLevel = 5;1 r5 Z7 u/ F; z1 e$ L! z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ r! |; l& U0 t2 ` { " b8 ?6 a2 h9 ]
LPSKILL lpSkill = &(m_aJobSkill);) g5 ^1 N" q% \# Q7 A: ]- T5 K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& h# W/ I7 x. ^ {
" l' y6 {8 W+ ^: l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 t$ p( U- v0 W4 C6 ]1 J
if( pSkillProp == NULL )& h" g! |' r2 G
continue;
& V/ P: i x' y* ~" R if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 b v( h2 m: G4 ~3 n# _# P
continue;
+ M/ d, a6 }5 L! n$ C1 ] lpSkill->dwLevel = dwTmpSkLevel;. _4 h$ P7 M& a# E5 D) k
}
m5 v& v, Q) T$ u$ o }
+ j2 O) _! Z1 H% G% \& u }
. `) g; F+ _' o$ b [7 T else if(IsHero())- h4 J' K4 h' k) D" ?; E3 Z9 E# e
{3 C- o% d; g, U% G
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 C( o! e( s8 h6 b! I a
{
& J, ~4 I$ f: o# c: z LPSKILL lpSkill = &(m_aJobSkill);
3 v) I% V0 A. ~; C- P# K9 g; ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
% \4 A6 y1 T. j {
/ D- s' O1 q* t4 Y! x6 W4 L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : j9 b/ K- h$ h& Q6 V- m, g) r3 k
if( pSkillProp == NULL )% J0 P0 c6 M H0 _8 `
continue;
c1 p2 O& O% F' ?( h) j8 l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( j3 f& o# w8 o3 {: Z
continue;
2 `; \; A3 c0 c' X5 v& O lpSkill->dwLevel = 5;! F, p2 G8 t P% J
}* I1 t9 F) f) u# v; S" K3 ]& s0 _- v
}8 u( _. U5 T) o% [
}2 o( ?5 X" q) w" K. t0 i0 D
else if(IsLegendHero())! @$ q6 \" {$ p+ E
{
& n$ m7 W+ T5 k9 w- m4 A for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ t( E: Q# K! i! Z$ j9 ] {
8 w- I, K1 V" Z- T0 q LPSKILL lpSkill = &(m_aJobSkill);( T, F: Z1 z3 K2 ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 g6 S" a, k. u3 r# r- v {" |7 ]" N7 p w1 P' p6 G0 {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 @% m* Z$ W3 C3 D* N5 s- [- G5 m2 u# D$ d
if( pSkillProp == NULL )
0 }* Y i1 ^- ~ continue;
7 y8 q5 a9 n; a5 w2 W if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& d0 G# v$ Y! B5 R0 F continue;4 R3 ?. O5 t: H# y \$ U
lpSkill->dwLevel = 5;( A! S' A ^& Q; O) x$ ~" C
}) Y5 |) T9 L5 ]5 h$ e; E
}3 E( m/ W" R: Q8 l# A) p
}
4 d3 m3 }) f3 d. E, {; u) s3 R#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 O% t+ L; C3 n: c! K% C- c% v
if( bGamma ): K+ i- U) j7 h" p: J$ c* E4 X
{6 C7 l9 I4 |! j" m
m_nExp1 = 0;/ q n3 a$ }" J
}2 P9 f0 p5 |/ V: g' ` t( C
# y% h4 L! d5 }- o/ H' r; E ( (CUser*)this )->AddSetChangeJob( nJob );
/ X. o; s2 r; {# l g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] ); d% D* A- J9 k( e, C1 n! F
9 l5 t( w" u: [6 p4 H1 i* Y2 _! T ]/ a! R: D5 j( A; X
#if __VER >= 11 // __SYS_PLAYER_DATA5 ?5 }4 N* L: n' x+ A- z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! O4 n. I: \8 l* A9 i: H$ z#else // __SYS_PLAYER_DATA
' s# f& J6 O0 D6 z7 Z g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ P( ~) J( w7 X# I$ l g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ h% `- S& h5 \2 T5 ^$ { if( m_idGuild != 0 )$ ]' W) U) X6 J3 {
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" o" j. J3 Q% X8 H5 v m
#endif // __SYS_PLAYER_DATA+ W% Q, ]2 k P _0 c
SetHitPoint( GetMaxHitPoint() );
4 }" u- |8 }! p' T8 d6 w: l4 { SetManaPoint( GetMaxManaPoint() );
7 z: O9 F: T; i* _ SetFatiguePoint( GetMaxFatiguePoint() );7 a3 A- Q! A9 |5 O+ T
if( nJob >= 1 && nJob <= 4 )
* v" I! j: y1 ~8 {* |; v" ] {, t7 L3 b. Q& H' }+ t
m_nStr = m_nSta = m_nDex = m_nInt = 15;" A" x/ V P @8 u: [
m_nRemainGP = 28;' ]$ q5 \/ L& U. Q9 B
}
& X3 n$ f3 Q* Z; D if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ L4 Z# I# I0 z
{+ T! p- |' i' A2 E4 v. c& ?
m_nRemainGP = 118;
^: I" u- x* f* [5 z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; e8 i* }+ h( ?+ [; y4 C8 M+ A6 k m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 [+ c3 `: t& J/ e) b- W }( }+ f! V- u, m& R6 x4 L; n+ k
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
, B- V2 w2 |$ W, } {$ k4 u. z" i+ o+ W7 R0 e
CItemElem itemelem;
2 I( d; l: b7 E6 z2 l4 n) ]1 v, b( u itemelem.m_nItemNum = 1;/ N9 v# ?$ D9 c& j+ B. k$ f
itemelem.m_bCharged = TRUE;$ c/ Y- E. X& I @, |6 }
BYTE nID;
( q/ J/ L# `4 G8 r. O% j! ^& }( i7 b) H) D; M k& g4 u( G6 R0 Z2 u: s
if( nJob == JOB_MENTALIST_HERO )
: x( I2 x( G" c$ i( a) T, I itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
N5 c/ P% G6 c1 m( f) v( q if( nJob == JOB_FORCEMASTER_HERO )' p n: y" A9 e, f$ m- x
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) I2 f& L5 ?6 L; M, c1 P# u# f6 n* h% J5 E' C1 [! d% z1 E
( ( CUser*)this)->CreateItem( &itemelem, &nID );+ {: _; \- M6 E$ m
}- k: H' _4 \8 e3 W, U
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 j% N: X7 T u% J; M9 @" k ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );# ]) H- ^/ M, v3 `5 d
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' p+ H( p* r9 U% T& y' | /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- O7 ~7 x% h5 f7 F0 `. e! E) A0 a u ( (CUser*)this )->AddTaskBar();*/
4 Y+ f: V$ i# R% w; R0 X ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 N0 ~" e& L0 _- D5 N; o1 z, x1 S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?; h1 ~9 o% @, @ l7 l: ?
((CUser*)this)->CheckHonorStat();1 q! F+ i6 z9 X" u
((CUser*)this)->AddHonorListAck();* u0 ~( T$ l, A( Q3 B
g_UserMng.AddHonorTitleChange( this, m_nHonor);- [9 K6 F8 k# Z
#endif // __HONORABLE_TITLE // ′Tà?
" S/ \$ r! D C' [3 E* d }
. b+ f0 O+ P* s @#endif // __WORLDSERVER. x2 g. Z* X& f# U# Q$ `
} 8 S" V% l+ y) P; ~; w& J0 u b
% R5 {! C* M! g: w& X
然后你进入functextcmd.cpp并添加以下& Q3 k# _0 h8 G. S
' e+ |7 }; X1 V4 H代码: ~) @2 A2 f; K: z
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )# b! D$ x3 c" _' c$ r% g
下面插入
2 c: x& H/ a2 J0 e8 e) a5 n {! AON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: `2 O8 b* G3 K7 N: V+ f5 J
8 ^: L5 n; M" X( |9 r, q然后你去
4 Q! k1 s& \5 m6 m' G% @8 n& E0 ]6 i- g; F
代码:5 o9 v; R% w) F8 u: h
代码
" v8 ~( x& G* O$ H, z9 |4 uBOOL TextCmd_ClearPropose( CScanner & s )" t* k* z) E* X: a: c. C, V
{9 X& j, o) M" e2 p3 Z) Q7 w, o5 A
#ifdef __WORLDSERVER! E* p' u1 g+ a5 f# X
CUser* pUser = (CUser*)s.dwValue;
" [# ~1 |9 m; L' ^8 p3 R w g_dpDBClient.SendClearPropose();
- c% n3 c: W, ?0 m1 f#endif // __WORLDSERVER
6 u2 N. B/ L8 Z6 N return TRUE;
3 O) d3 X8 _6 N. {+ Z} y* ?- t9 x- a$ t. W" z
下面插入9 [2 G P# K2 f" |, b0 K0 r
BOOL TextCmd_rebirth( CScanner& scanner )
! J4 l/ y: I, m( I; V8 F2 z7 v& a{
( ~& X. \* v& s3 x#ifdef __WORLDSERVER! Y' T) u r$ z2 j5 q
CUser *pUser;
4 v. D% t% y$ e, FpUser = (CUser*)scanner.dwValue;
9 g3 j$ C3 t7 |7 J" Zif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 [) p6 A# i! i+ apUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
: T; y9 i1 h5 E) n# m# P3 Eelse8 ~ [& x8 T0 f2 N) L5 B9 I* N1 w/ K: B
pUser->AddText("你还未达到重生条件!");: j$ Y6 Z5 d p5 _3 z6 `
#endif
1 q) `/ A7 [: m* \return TRUE;
0 a) X+ [; \, |. L i}
$ i7 I# x1 C) B# s
q6 {# t) P4 c: j+ w, I" v: W( o; [/ {2 X, s
; @. K5 y2 k1 E+ P: A4 c; ?' t
# E1 v' ]3 n5 X9 ~( o: j |
|