|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
9 }/ ~ u+ S$ U6 u5 ?$ T* A
6 N* b+ }0 i5 S; q3 WMover.h
, s- v4 i. N, v3 O1 a代码:1 ^; p/ Z9 [8 P; x! `$ N: }: @
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" M3 B# [, h$ S+ c8 ^
5 [0 H! V8 t6 _4 t& j8 X0 [) L: ^
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
8 i; i' V: o# ], o% R) r, ]% p7 T/ x5 Y- U$ l
然后你去mover.cpp添加
) w7 _) |! M2 x' I/ v/ |* u6 @- r4 F! U% o+ I; ^
代码:
( Y8 g s4 v h, i. mvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 ^% x8 R, v1 q2 A- d+ }' d7 }
{
F; c: I. Z+ M& M* Y2 K7 ~) r" L#ifdef __WORLDSERVER
: B H- a% V: M' _) Y0 [4 B // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' ^: {! e5 ?' h' O9 c d+ L! c
MoverProp* pProp = GetProp();, S, \' y" H/ q
if( pProp )) z0 K y0 p) R$ f9 H9 }3 q) L
{! c* `& \. U( C1 d8 f
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 S2 W3 _5 \- D9 [ [" e4 i) x3 u- q {
$ \6 M f0 h& R, f R m AddChangeJob( nJob );+ }; t! R6 l! l6 K+ Y( S
}else{
# r7 r0 n# E. E. x/ ? return;4 X4 q& Z' U: \
}9 Q& ~% _8 [+ [' z4 ~5 V# K& l: c: _
int nPoint = 0;
& o+ Q3 _/ c8 M3 m, ~/ r/ C; l if( m_nJob == JOB_MERCENARY ): w) u2 R% X/ E! o
nPoint += 40;
5 L8 g4 U6 a" X2 x. I# R else if( m_nJob == JOB_ACROBAT )
6 g Z& O8 y& q nPoint += 50;- S$ u4 Y( j! }: r9 } S' i/ l9 A
else if( m_nJob == JOB_ASSIST )' \( `+ a8 p& r
nPoint += 60;: F) j9 I& f% d: Z" {1 C
else if( m_nJob == JOB_MAGICIAN )
1 S n" Y$ x1 j% m5 v6 |% q nPoint += 90;$ w6 ~/ }- Y' q2 W6 I w
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 [/ a, w) H8 D. e nPoint += 120;
4 c+ o/ P# B$ }7 J) _2 C else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 u6 c' X' g0 X1 Q% ~/ \
nPoint += 150;
/ J8 [- [0 v8 t, r* c- Q: b$ i2 \ else if( m_nJob == JOB_RINGMASTER )
8 t; ?7 u6 {* h1 Y2 }; c nPoint += 160;
% t: f3 k, t% J" |# @! E. X else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 N0 ?1 `$ b; \, b) }( I: j nPoint += 180;, J7 z+ j8 f7 [/ r8 z8 r: _
else if( m_nJob == JOB_ELEMENTOR )% I7 C0 j# [# Z. V/ [: J1 O; L
nPoint += 390;; M6 |- v# U: [7 W0 t1 p7 m
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )% q! Y7 J% K1 e6 n, D: N* [
nPoint += 120;4 e! }! y0 E0 J8 ]
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% ~ F' u) q! G( k- j( h& y
nPoint += 150;% y% M- M8 o6 W0 l/ v
else if( nJob == JOB_FLORIST_HERO )
& @2 t, D+ G( I8 S' u* m+ ? s; |# U nPoint += 160;" I' ?, @$ b7 N5 o5 G0 @+ B. c
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! ^9 j" m' A, A nPoint += 180;1 S" e8 o. B) N: r$ S$ ]
else if( nJob == JOB_ELEMENTORLORD_HERO ); m6 [/ U% v" S& r* P6 |
nPoint += 390;
- ^( q4 K+ h( c' u1 a6 J4 a, G+ l0 F( u0 V# d; q Y
AddSkillPoint( nPoint );
: E- Q, f! s: ^ m_nLevel = nLevel;
/ Q) I6 i: f2 |- L2 N2 g
( y- ^0 a" y0 V: ^8 r/ r ?/ U+ N SetJobLevel( nLevel, nJob );9 Q/ W& k1 d6 v; O/ i z" T
m_nDeathLevel = nLevel;2 }" R; a/ p A2 ?, C
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 E7 Y6 _* g# T* |: @8 W if(IsMaster())
7 k2 ?# u4 |4 B8 ]4 N {- m: X/ \* Z2 z2 m# g2 J- Q; x
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
r# D! y/ d% s# c2 d if( nLevel > 59 && nLevel < 72 )0 f3 t! X9 ]+ P% J: u2 ] u( E
dwTmpSkLevel = 1;
3 \. ~. _6 _0 _1 Y9 b H& p7 R else if( nLevel > 71 && nLevel < 84 )" D# I* A! p2 D. g7 H; n
dwTmpSkLevel = 2;
3 @; t2 A% K4 r else if( nLevel > 83 && nLevel < 96 )
! Q2 F- N$ Q- c6 E dwTmpSkLevel = 3; b+ a3 P' s A6 {" y+ X
else if( nLevel > 95 && nLevel < 108 )) Y5 K0 \- ~ r* C/ g! H8 X6 [( m+ R) X
dwTmpSkLevel = 4;4 j* n3 ]& y0 U' S; x4 l4 X4 ?
else if( nLevel > 107 && nLevel < 120 )
4 E( w3 O& r" [9 O) [! J4 X dwTmpSkLevel = 5;
& s' n2 s6 ^( t9 G& F& B Y% D5 \ N+ r for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 R- M' i, P, Z( s! U: c7 e3 N {
/ n# g) k' T" Y3 w% j: e5 a LPSKILL lpSkill = &(m_aJobSkill);/ c* F q5 ?. @$ P* b; ]$ ^. I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( @$ f1 `2 H$ b/ L- X$ E( u+ c+ { {- R0 R4 h5 [+ P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 J+ D" p3 X7 i; \. G! t- x
if( pSkillProp == NULL )4 x5 e; L* @2 K/ h) H; r9 e* o3 B
continue;/ f$ x# K0 g8 m f4 p. s: v- u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. Q1 r N; J% |+ a continue;% |& o) r3 L- s* P! J/ p
lpSkill->dwLevel = dwTmpSkLevel;
9 V' `0 N$ {$ _6 ^2 N. q# h }
0 }7 k0 Z3 U/ `: o: C* q1 m+ A }6 y) m# C& [% j' t" E
}
- v: p, V& r& h ^3 d6 W4 K5 ~ else if(IsHero())
& n4 {3 Y3 R8 G# @( @ {
6 Q: I; y. E$ Q, Y$ ? for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' c. d7 H6 U5 d" v# L# V9 f
{ # l2 H( t# U- p6 q& W8 o3 J. g
LPSKILL lpSkill = &(m_aJobSkill);/ W7 I! Y% L K# C/ [2 P
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 t; i; I) F+ B& _. B
{) x1 h: C. E7 o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 _+ L/ Q' R0 c5 k" D4 W" t if( pSkillProp == NULL )2 q2 m `0 u# a7 Z ?. Z: F% ~
continue;
6 _$ H. N; H% c9 u if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# v, ^4 R. P; _! T3 A m
continue;, F ]9 b) X: P" h* _) `0 |
lpSkill->dwLevel = 5;" ~/ k- c5 y2 A
}; d4 V1 u) @" t
}! u, u6 G+ z( f. ^) x8 r
}
0 Y, j! g4 G) p" V else if(IsLegendHero()); y- s* v! }1 Z3 ^* d3 m+ F+ e$ A
{( r; v# W0 Z2 A9 p
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ B# n) l+ |0 E/ ` N$ z, a {
- M$ I; E4 j' Z5 i3 _' S LPSKILL lpSkill = &(m_aJobSkill);$ n6 M6 C) ?2 T: t7 W. H
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 T( M. t: I8 N2 G) J) N0 W( U8 M {0 b( `4 H; |$ S4 t) f2 V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 B$ N0 r4 F' V5 D/ z" u if( pSkillProp == NULL )
" r) C/ {8 ]: c* o3 C2 i* O( E continue;' ?' z9 T" A" k3 C( K* h- h
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): I3 B9 C' U. D4 O2 ]8 {
continue;
; H0 g2 {$ p9 X% ?4 ] lpSkill->dwLevel = 5;7 s# J6 `& s* V e$ L7 I$ d: o
}1 H* k& ^! N. ]7 d( ^" {5 ~9 }
}4 G* q) y9 Y( a& X" z
}
8 ?1 i( j# j1 K' \9 F4 q0 L#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, b5 K" c6 n& I4 G p
if( bGamma )
$ T1 I- Z9 E+ p* _& Z9 \ {% W! E* K$ y3 B: p
m_nExp1 = 0;, n4 g7 ]0 Q$ a# Z
}
( i* R. F3 W6 n7 @/ c* o8 N
/ u3 @7 \. e3 h$ x ( (CUser*)this )->AddSetChangeJob( nJob );
) k/ b6 `# u# L o1 y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
0 k6 W$ x, Y/ ]9 k
. H: i: P$ x% c+ M) `& P; U; `6 F' H4 {9 x
#if __VER >= 11 // __SYS_PLAYER_DATA2 a" V: {4 y" o; ?) }" m
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; y2 b4 A: H0 ?/ z#else // __SYS_PLAYER_DATA
6 s; e! j- s" v" Q0 X g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# d8 b! Y) S: u9 p/ c# V
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );* W* u4 F, }1 N1 n$ }
if( m_idGuild != 0 )7 K9 B: F) M/ h+ `: }
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; s# g P# }! @7 V1 X#endif // __SYS_PLAYER_DATA
) n: ]; E8 T9 H) l- a5 e SetHitPoint( GetMaxHitPoint() );/ ] J; T9 L" f" |
SetManaPoint( GetMaxManaPoint() );
# \. ^4 y2 f# r5 t% c SetFatiguePoint( GetMaxFatiguePoint() );* N0 {: p) q" l, i. M* u) J
if( nJob >= 1 && nJob <= 4 )
% \$ D* w' H1 \2 w$ ?2 k {8 g0 x d) E: c1 X# t
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 W# C8 k% Y- K( J" y: }, T6 j
m_nRemainGP = 28;
. A, r( X* e3 B) k1 a9 ?# \+ B% V }) z/ C1 C, H o+ m4 L" Q5 `8 A! |
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 O% e, A& H4 ^+ W1 ` {; s& c" J3 ]$ R0 a7 o$ m
m_nRemainGP = 118;
1 p+ w+ ^; v3 H //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 Z* @2 D1 o. H! S
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- I: s1 b9 w7 x, x% l! N# L3 j! L }
: H P' K/ F# H7 I& i if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 K" {4 u& S. {2 i0 @# ~
{$ C- i7 G$ z( R1 b% @( Q/ j
CItemElem itemelem;5 I( B1 R) P, L0 t( X
itemelem.m_nItemNum = 1;9 Q! [) s; s6 q, I: r
itemelem.m_bCharged = TRUE;
/ P6 x5 j% z* G1 m' r5 |& ^5 O BYTE nID;8 C7 }" B4 v f+ J
: C7 w: y& f; b/ }
if( nJob == JOB_MENTALIST_HERO )+ X, j( s' p/ l, c5 {: o
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# }! C, _6 e5 g: j: M/ ~ if( nJob == JOB_FORCEMASTER_HERO )
8 A- ?. t+ d: j( B% U% i itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
1 D" y! P7 T7 w9 J/ G* P
: ~9 J" v9 F% ^" Q( ^0 V* s5 T ( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 O% J; ^! E3 ]+ \ }7 V* ^% \4 a8 L' N
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );) S: z$ \3 s. k5 O; G
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& m+ [$ m+ J1 F) ?: b l7 M1 O. T! w ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& y6 e! e) g+ M1 n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 b' B0 D$ M. s5 Q2 Q ( (CUser*)this )->AddTaskBar();*/
3 `; }1 O" w: [, k! S0 G ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- _- B* G- _7 L' ]#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" q; N& F6 N; ^# b* x. S' I$ t$ j/ w) J
((CUser*)this)->CheckHonorStat();* {' d* Y2 h) e" e
((CUser*)this)->AddHonorListAck();9 i3 X1 M; l# ]3 @( h) V2 Y
g_UserMng.AddHonorTitleChange( this, m_nHonor);. [5 F, H8 e0 l$ a! _) T
#endif // __HONORABLE_TITLE // ′Tà?
( Q% ~8 u' Q. P }- y2 H7 ^ a7 ] b
#endif // __WORLDSERVER& q) D( {) Y! b3 `: a' v1 U3 h Z% C
} ( G4 @' B- V8 p l8 X1 c
: i2 v- {/ x) z! o然后你进入functextcmd.cpp并添加以下. n' \ t4 u7 o2 l* A% H
) q4 i- O3 Y+ O/ V+ q" k5 U( e+ z代码:7 d+ Y5 t- V) ?) @; n2 O+ |
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ q4 L8 ]% R) m3 J8 K( u下面插入& W% w: i3 ^( A% E& z8 f4 z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : o/ N( I1 D) l( y* o/ N& N
6 e* O+ y; a/ n( ]然后你去
( I* h2 M( O8 l% {. z7 | S6 |* W, n; M3 W9 j$ A, H7 a; X
代码:
r. c9 m+ E( j- I8 A代码
1 U; v6 V6 f+ P6 aBOOL TextCmd_ClearPropose( CScanner & s )
% D2 H8 D. O g) Z) R/ I; q% v{. P5 t2 u) b# Y. u+ \8 I2 W% h% P
#ifdef __WORLDSERVER
" a1 l1 C% `4 C" B! h! [. s( X- m% F CUser* pUser = (CUser*)s.dwValue;
7 n. A' d0 c- e. h- v g_dpDBClient.SendClearPropose();' o$ s6 ~. ^7 L* r9 Z# _8 V, z, t) I
#endif // __WORLDSERVER
& k- m4 j) B% {: W) S: H return TRUE;
0 f8 Y* |$ K) ]( `* E) [$ d6 m4 s: I! v}2 w( W' o+ P: e, M: p3 G
下面插入
% i& Q- t0 G. U: ]3 N; k9 o% ]) ^BOOL TextCmd_rebirth( CScanner& scanner )* n# b+ X! b% P% v
{8 t. l: b5 T |4 l8 i
#ifdef __WORLDSERVER0 o6 K5 {- @ V
CUser *pUser;
2 c8 m' T1 N* p# zpUser = (CUser*)scanner.dwValue;
9 ? s8 k7 p) d- x* y& a: Dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- A! @$ l2 c) K* {, L* D) F* LpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 X" v) y2 y2 _% x
else. t5 T9 n- k* u1 L1 o8 q
pUser->AddText("你还未达到重生条件!");
! x" C1 I' f3 h4 d" O#endif0 d, R* ?/ f+ I) }+ U
return TRUE;
2 S3 u* [1 j e) W+ r' C" b} ( N# C, X/ a% |- a' A5 {* V0 i6 |
4 d: X1 Y- \8 Y8 S# |( E+ I/ v" r4 S" O. W6 j* Y) ^! U
" D, K2 U4 T& z) C4 y* d% h, h0 P$ J" C) n$ v
|
|