|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel. T! `* c$ o6 O5 i: @% ?
3 w6 C L$ t' l& m% e: x$ }! D
Mover.h$ f- j- ~+ a3 u9 S% t3 g
代码:
; e7 v: C6 [/ J( k7 X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü2 Q& x: O/ K* Y/ }; p' q* o# B
5 V* L9 J n7 g# I
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; * [' K& M5 `( F; X
^4 D$ O4 u0 Q' d然后你去mover.cpp添加7 q' a8 M( V7 l( f4 P6 i% S3 }$ k
3 u& H. V: z( u# P
代码:
2 {4 C; {6 t1 Y: W2 zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 l3 _1 |6 @; ?! X{
$ R; f; O7 V% m9 a#ifdef __WORLDSERVER
. Y, ?$ B5 @8 j8 `3 {' J // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó5 K3 b% c, ]2 e: H/ `3 O
MoverProp* pProp = GetProp();
$ W0 q e* u1 w; e4 V if( pProp )& S6 }1 m- z" a. X+ l% ^) [. h
{" s. `" b+ @: r4 b
if( nJob > 0 && nJob < MAX_LEGEND_HERO ); ]( w4 |! R2 `+ D+ t" ]
{
2 F" ?2 b! k9 x9 D7 T! P' g AddChangeJob( nJob );
, t( y5 o& I# V8 ~" D8 k+ c% F }else{
r6 \) ?* o+ O4 u: d return;
: ]6 H4 w: N( @ }
, K! x, A) Y5 T int nPoint = 0;
3 Q+ ^8 y" {/ L6 c+ N, o/ b% d if( m_nJob == JOB_MERCENARY )+ c3 D6 d% z) `& p4 q
nPoint += 40;
% P4 L3 Y5 P6 B4 C0 z7 k else if( m_nJob == JOB_ACROBAT )
: V2 m" i. f1 n! @ O* I$ F+ r nPoint += 50;
! r) E" C" ~5 c( F else if( m_nJob == JOB_ASSIST ), N: K; s0 x, A. C
nPoint += 60;
& B$ N* h& R( b9 i5 P E1 t- o else if( m_nJob == JOB_MAGICIAN )5 p* k2 X* ~) _, ~" a5 d
nPoint += 90;
* E/ h8 D' U! J! {, c8 ~) k! R else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* B, i. I( ?. t7 Q: Z M nPoint += 120;
8 W2 L( {/ B' k2 p0 P3 R else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )6 p Q$ U6 I1 L" R; H2 x
nPoint += 150;5 e8 B6 x% M o
else if( m_nJob == JOB_RINGMASTER )
2 U o5 ]5 ?2 G. n. \( i9 V nPoint += 160;% \! Z8 V# z# T- i7 P |- |
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# v( _& p1 |/ s! B: H4 y9 W. v. @! D
nPoint += 180;) ?; b; P3 A' q. C. `) b& v
else if( m_nJob == JOB_ELEMENTOR )
4 d& j/ ]3 B* F7 K) a2 i4 _ nPoint += 390;
1 o/ @# C' } Y; p1 B else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 n! m2 h; U; \# N" L* r( K nPoint += 120;6 ]* o$ W4 q' [% I4 n# F$ C
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% t6 N7 r7 H) T9 ~9 b4 B# \ nPoint += 150;/ x- X1 j/ M4 [* q( ]" r
else if( nJob == JOB_FLORIST_HERO )- b/ `) y9 c- v0 g. t1 T
nPoint += 160;
/ q6 A) b7 v f! X else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
5 r, N8 S# k! U6 a6 u9 X( N% ?2 f nPoint += 180;7 q0 [7 R9 f, I' d9 r
else if( nJob == JOB_ELEMENTORLORD_HERO )! W, Y, W2 m& G
nPoint += 390;
+ {* ~- G; R# A' G( p
+ T) L) o, w; B; T" \" }( o R4 `% o AddSkillPoint( nPoint );
+ o6 n: E+ w. Y m_nLevel = nLevel;
/ R! q' e, J# Z, u5 I0 E' C! M' c7 ~9 P; W
SetJobLevel( nLevel, nJob );; X/ B$ R; o3 z# ]) r
m_nDeathLevel = nLevel;
' B) I! k4 S% O7 l, v# b, H, B9 M" p#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. n! p$ l4 h4 K0 c7 V A C# s& f
if(IsMaster())
2 T, c* M8 P+ y k' j4 C {8 O! C3 ^ O0 x [) G
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108) h- Q1 |: A7 @7 H( T9 n9 \
if( nLevel > 59 && nLevel < 72 )
+ H1 }, [, e% C; f! g& A dwTmpSkLevel = 1;; j. o- l4 F" B( m% g, `3 h
else if( nLevel > 71 && nLevel < 84 )3 y; B6 Y# K5 b8 n8 O. w
dwTmpSkLevel = 2;
% `8 R+ \$ P0 |& ^4 V else if( nLevel > 83 && nLevel < 96 )
$ E$ L0 `9 b: G1 J" f8 N dwTmpSkLevel = 3;$ ~: _% ]+ m6 S. n1 {' Y
else if( nLevel > 95 && nLevel < 108 )* Z9 R2 ?1 X. }+ K& g
dwTmpSkLevel = 4;- \- U: A/ Z# w1 d6 C- e/ @
else if( nLevel > 107 && nLevel < 120 )' B5 I5 N7 O( }! \! U1 R
dwTmpSkLevel = 5;
- R7 S- r) f2 s4 `8 t' N2 f; g for( int i = 0; i < MAX_SKILL_JOB; i++ )
O; M C8 r7 f: J0 t3 ]* H$ E { 9 l- a5 h$ Z! ^
LPSKILL lpSkill = &(m_aJobSkill);
8 `" l# j% d: k0 ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )8 ~1 I) [: N. }% _3 Q
{
9 _! _1 Z# y: h% D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % C* ?! g2 n) H3 z1 |0 E N B. ]0 L
if( pSkillProp == NULL )3 f, ~: @+ K7 S! {/ a* Z
continue;
- D7 N0 Y- E' N9 _' a p; W7 I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! y& O# x' ^" K4 y# {5 g continue;; J" L3 c | m: r
lpSkill->dwLevel = dwTmpSkLevel;
0 J; [( J9 s# h% N- B0 s0 w6 `& k }
$ X D P. }" u% D }
2 s& ?$ y5 x T* S- P }2 t4 g1 I% ~2 m [
else if(IsHero()). O) u0 c, v9 @) i7 H/ V* r- _
{
2 E2 c% @+ q1 U% V( D; \3 q5 X for( int i = 0; i < MAX_SKILL_JOB; i++ )
: a! k- p# q' [0 v6 X2 n2 X6 f {
: V; P" h5 w# i0 F LPSKILL lpSkill = &(m_aJobSkill);" J4 {2 |. g: I- s% G# T
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- U& \& z7 ~5 o) e- c3 G% \ {
, r- s) L" N. F3 U0 e* P; U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 r, ? B2 n; S; h" s/ h2 ^
if( pSkillProp == NULL )% j& k2 N8 r" o% v) a# }# ?; L, z
continue;+ ^2 Y4 m! q$ x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 k" J9 c5 A; A4 w, O% R8 {
continue;6 c1 g3 L$ y0 S; M7 A" k" ^
lpSkill->dwLevel = 5;
) E1 e; o2 F2 A, z }3 u& H. v* j! l9 n# W/ Z
}/ _) z* O( u2 c7 i5 `: ^4 z
}
" e3 Y# k) W2 U) M6 B& V3 y& a& y else if(IsLegendHero())5 o7 k9 {6 ?5 Q, b$ ?
{+ k9 \. ]8 b0 _* c3 u7 U; J1 P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; z8 g. f( I4 D7 i( }
{
, O! r# l! p/ ?+ l, [( P0 Y9 x LPSKILL lpSkill = &(m_aJobSkill);) G4 V* H6 N J0 L
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ z E& K3 o/ d) E& ^" n
{
9 f& U4 H, b" y! ~# `! n- s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 e. M- E9 O/ G6 z% r0 } if( pSkillProp == NULL )
* b& w$ }8 U7 ]5 ~, s) { continue;
* p7 P8 d, g% q' B% l$ M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 q5 m( v1 |* d5 J5 T continue;; t. G; R! x, r' T# L
lpSkill->dwLevel = 5;4 ^, U0 L5 e' c9 Q8 f9 V5 ^# B* p
}
$ \: o! L3 v8 x3 V# a A }; {# {: F7 u5 T- U( b
}
' H0 P+ P) E0 f( q2 \2 {* l#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& h8 v0 V% C$ K
if( bGamma )
2 c1 [% f- ]$ t+ m+ o. [ {
3 l8 g9 K5 m2 W% i( x9 A# Z# a8 | m_nExp1 = 0;$ W5 J% Q" a% I) z
}
2 w, \( n* Y! R7 q! R( @! Y9 {5 l$ K7 ]( c: X( U5 x9 @
( (CUser*)this )->AddSetChangeJob( nJob );
+ ~5 \5 e7 Z9 l g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 g: @0 S7 U/ l
0 c) b7 {1 O' E! S% j% g2 x' G+ |! c+ p% ?' m! H7 v1 q! _
#if __VER >= 11 // __SYS_PLAYER_DATA
5 B- g# k9 _" b! ^ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );; _0 G' Z" Q. _; N7 }
#else // __SYS_PLAYER_DATA
- ^; U d! {; I5 j1 T, p g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; H- a% X7 {+ L7 I6 P- j
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
w7 o/ |0 l _: _ if( m_idGuild != 0 )
2 s+ P, B, J: ?* \4 I8 k. Z g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" L% c1 x0 O8 m: D
#endif // __SYS_PLAYER_DATA
f3 R3 E, W7 L: S# t3 X ?+ q SetHitPoint( GetMaxHitPoint() );
5 I9 w* l& }2 C; }. `! {$ i& U SetManaPoint( GetMaxManaPoint() );# N3 o/ O1 X+ S5 o9 Y
SetFatiguePoint( GetMaxFatiguePoint() );
! H$ ]; l# }% x V if( nJob >= 1 && nJob <= 4 )
+ g1 D+ h5 R1 ^; F0 R {
. i6 k1 J% O+ l8 z$ V. p5 m m_nStr = m_nSta = m_nDex = m_nInt = 15;
! |& H# L3 R: t* Y( [6 S4 c- F+ H m_nRemainGP = 28;
1 w8 d; e# Q7 ] }
4 M. w* A0 ?& g' A if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
& f& \( o+ R1 p& p {
% e% K, U0 S/ j m_nRemainGP = 118;7 `0 ]' @" |, |7 Y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
) j0 L, ]4 i) S: m/ l m_nStr = m_nSta = m_nDex = m_nInt = 15;9 V) A- I z: O% O
}- |# T2 d$ j1 n. z9 u
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 Q4 v8 Y4 i4 V% l4 f5 Q" F {
' A) Q3 D8 b- |, ~3 d. F$ h- k CItemElem itemelem;, q8 K, o; L) `; K0 ~
itemelem.m_nItemNum = 1;
7 P$ R9 Q( @! v ]& e itemelem.m_bCharged = TRUE;
* I$ z/ T- E' D. R x Z( E BYTE nID; r4 Z4 v( ~4 g' q' n0 X
! U8 m9 G: C" \8 d) n6 i5 y$ [
if( nJob == JOB_MENTALIST_HERO ); y) f2 s+ ` k6 z. W. S2 i# _
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 o" U9 G) X J1 U- T) i4 {5 L
if( nJob == JOB_FORCEMASTER_HERO )
% Q% e, {3 M K$ i itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 V9 W3 _( p, r
/ H0 X4 Q. q9 {" Z ( ( CUser*)this)->CreateItem( &itemelem, &nID );
, {5 n0 v' y* o- B }
: z1 `6 V4 k* g! W8 g g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ l& p) D5 j4 K4 I; w, G5 D/ [& K
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* O. [/ X# @# t% w9 E ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );; ?8 ~3 \& }/ \7 R7 u
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 Y4 p. R: l8 k8 Y& O+ ]$ w
( (CUser*)this )->AddTaskBar();*/
W/ p, V1 ]! R# a; s' v ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# y: j% d% n, F0 @
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?: {3 E! o" C0 j2 T% i+ A8 w
((CUser*)this)->CheckHonorStat();
0 Q2 T+ q3 H* u1 N$ U ((CUser*)this)->AddHonorListAck();* ?5 n J8 G' c6 {. Z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
D; V4 s. J5 {1 c#endif // __HONORABLE_TITLE // ′Tà?
% d' w) T6 v7 j0 J9 i/ r7 } }
, I- E8 u# ^4 \5 V% T# X5 A/ |#endif // __WORLDSERVER: f/ [, z; n5 b5 u
}
8 j) q+ q6 h: r# r" S1 m/ G9 [2 J/ g4 Q3 h
然后你进入functextcmd.cpp并添加以下9 m. y( C6 W9 j; |0 ~
, \) g- |/ \. f r代码:
* m/ a7 w# |) W) d- F% I uON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 n# B8 x2 e5 S* E0 \
下面插入# b& {% E1 l: i( _; m
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# s, @( j$ O# g; ^
2 X% j- {. p% u然后你去" a) Q9 a' L# U2 X8 N: o
# X6 Y) u4 r9 d s* }7 B% E
代码:
8 a4 u6 I q" K4 Z代码
3 _$ G& Y: H6 m% ^; [BOOL TextCmd_ClearPropose( CScanner & s )3 F$ z( F* J/ `) R# R
{3 n3 @8 L5 [. \
#ifdef __WORLDSERVER
u: i% a/ @7 Y/ h3 m CUser* pUser = (CUser*)s.dwValue;
% g7 X0 }" M' h, D! l& x g_dpDBClient.SendClearPropose();
( G1 }& u- u- w' V#endif // __WORLDSERVER. m9 {+ M5 b) }
return TRUE;
, x* {4 k5 ^. p& S0 v}) \7 E$ D2 C& ], z) z$ o" E' D
下面插入
! ~6 s" r* Q5 M1 R- T) xBOOL TextCmd_rebirth( CScanner& scanner )
+ W. O5 W1 J5 s; T( M0 `* j+ B: f{" t: ?, Q4 \# a' k
#ifdef __WORLDSERVER, q, d: Q' x# h3 v# w
CUser *pUser;
2 B8 |& A: y. V; h i- TpUser = (CUser*)scanner.dwValue;, ?2 P5 d' B; S. X8 u/ R! Y
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
% g/ R0 D: ?) e7 e& MpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 e/ ~- v$ s5 o) M
else8 z1 W% \% R" H5 d
pUser->AddText("你还未达到重生条件!");1 Z) L$ V* J+ I, Y Z6 v
#endif
8 ~0 Y* Q9 B6 q5 ]/ V9 y( Oreturn TRUE;
* m, f7 R# w) M7 S( ~}
6 j' e6 m3 G8 |6 ^9 T" _! n) L6 k( \/ i: ?8 o' K1 g7 C2 V/ W" S! L
7 q# |9 f- r: ^4 }8 Q3 i& C+ q. D; h
- A9 R" U' P' o' M
4 n+ P$ P0 ], I2 g! A |
|