|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel: R. h% a4 G# B+ z: P
! Y0 v/ A$ c! h( r5 y- w+ A, F- C6 M
Mover.h8 w9 A. ]" q" o' c# C* J
代码:
, h" I0 R* g3 r找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% W, N! ^2 o6 g
& {; M9 {' U) @% k/ f& N3 r
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; , E0 X6 R- D" P0 F: k! k8 c5 J& M
( E. I) ]" I+ V- a
然后你去mover.cpp添加( ]7 a9 _2 F" h+ L' l% t7 }& C" |/ [
) d1 s. m; q/ e" b- ~6 K; \
代码:" Y+ f u" _$ A# R/ Y: U: B4 @* d
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 p. A1 |# f6 P- p, y* f9 A" m9 B* Q{
& U; U$ r$ o5 f2 P0 P0 L+ h#ifdef __WORLDSERVER
0 l5 D0 g2 B! u // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' A5 H5 k) c \* a# p
MoverProp* pProp = GetProp();
& E0 H( J; z5 `+ O t if( pProp )7 _# k# U0 X1 H- T5 V' H: c
{, y Z+ o4 x" m+ d/ n+ c/ t. y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 ~, V! G" v( n, B0 s
{6 @3 i% Q9 X5 |1 w1 E) q/ Y8 _
AddChangeJob( nJob );
+ c: U$ C& d" ~# f4 o0 C }else{
# S3 F# D9 p; m2 w7 s return;
# a" |1 x: q; w# ] }; M v9 k3 X; U
int nPoint = 0;
) z8 }; Z9 q! F: \$ q7 O$ c if( m_nJob == JOB_MERCENARY )
! U$ [/ m6 E3 W: L. n6 U nPoint += 40;( `. \- N* d; B [3 A/ c
else if( m_nJob == JOB_ACROBAT ): w% @ `- O6 B; C( ]6 }
nPoint += 50;. y8 z& H) d" a0 ~* o) \2 M$ S
else if( m_nJob == JOB_ASSIST ); n o3 K1 {0 n/ W1 \% M A1 M
nPoint += 60;/ Q, r3 ]0 ^) N. N: ^) w" K4 g
else if( m_nJob == JOB_MAGICIAN )& Q- S5 {) {- k$ }$ D
nPoint += 90;( t+ X/ a2 R! x; P' f! q9 V
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )5 R+ |5 u0 O/ R% J* l# g- ^2 O9 U
nPoint += 120;
+ k1 ]( x( O4 }: G. G* I, v3 ^& l5 F else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& s% ]9 ?8 ?7 } nPoint += 150;# v' F8 S( A5 K3 q! q8 [$ N
else if( m_nJob == JOB_RINGMASTER )1 r: S5 O3 h# n2 {) r- h+ H3 ]
nPoint += 160;
/ R# M+ C4 h. _( L& j7 h! {- ` else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 r5 B4 v6 ?# C2 P. c nPoint += 180;# X& ~7 {: k/ ?6 U% C
else if( m_nJob == JOB_ELEMENTOR ), O! A8 c; t" F- R, J8 [ f, s7 i1 h
nPoint += 390;
) I- k' i, P4 z, w else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )4 m( Y9 R" `% _$ W) M: U+ O
nPoint += 120;
, F% h" O! Q9 I# }0 a9 @% ]8 [ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
o0 K; [( t3 ~) C7 t* t8 h: p$ J nPoint += 150;
. X9 N6 \; |- I, Y7 J else if( nJob == JOB_FLORIST_HERO )
( B0 O q8 \) R6 i- s nPoint += 160;6 z& t4 K w9 c
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
) H8 Y2 n' R- w0 O( V# X' c1 l nPoint += 180;9 `( Z# n4 O2 @; [
else if( nJob == JOB_ELEMENTORLORD_HERO )
0 c0 S1 i1 M. f nPoint += 390;% S1 c4 M2 c4 _! o( ]4 _
% h4 @5 [" W; U J* ?3 p
AddSkillPoint( nPoint );/ Z4 Y1 H/ J" f. i7 k( S% f
m_nLevel = nLevel;
. H1 M( Q7 F1 r% Z3 L6 ^) A8 g p& z+ s/ p. Q
SetJobLevel( nLevel, nJob );/ o0 z, ^9 @0 s1 I. p2 L/ l
m_nDeathLevel = nLevel;
4 c5 g$ N8 z+ q3 @, k& m" I* P3 }8 N#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ }5 R# k8 `6 p, d0 V. g* \& Z if(IsMaster())
4 R2 i( [+ N7 i4 X+ h) R) y- E7 S {5 k! N, W5 A" T* M, x* P2 I
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108! {3 z4 u; H2 C. i/ n
if( nLevel > 59 && nLevel < 72 )! C' n g9 O+ I
dwTmpSkLevel = 1;6 `- l) M9 }- i6 Q
else if( nLevel > 71 && nLevel < 84 )
* m* i* g4 T+ y) V2 V dwTmpSkLevel = 2;
" U7 c1 h) ~# z/ k else if( nLevel > 83 && nLevel < 96 )$ A! n2 a, L& H3 ^8 M1 G
dwTmpSkLevel = 3;" L. b. \: D# A; l
else if( nLevel > 95 && nLevel < 108 )
3 I6 T8 i5 b% \& y9 c2 R3 V" f dwTmpSkLevel = 4;
! [! Y3 r) j5 ~& V9 u5 |: A3 e else if( nLevel > 107 && nLevel < 120 )
0 R5 ]) e/ C/ N dwTmpSkLevel = 5;5 Y/ e# i. r5 n
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& I9 | D' t. u7 X1 v( { {
" b/ c. r- a' `& v LPSKILL lpSkill = &(m_aJobSkill);
& M3 ~* L) W- A+ ? \ if( lpSkill && lpSkill->dwSkill != NULL_ID )
" n$ C( e, C5 J6 R5 K3 p: ]- a! A {
( U* c# C0 _6 O0 O5 _6 S2 o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 B3 i. j& l1 J+ N! O
if( pSkillProp == NULL )+ V8 B8 ?6 }3 B5 d; c
continue;
2 b- a* x+ K1 f5 |" e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& m3 z0 x) c0 b; B5 v
continue;$ z& X3 z L# N' d+ g- n
lpSkill->dwLevel = dwTmpSkLevel;/ B/ x8 S, i P: H) K6 w0 Y7 |
}6 e) U' ?. v! f, I
}
* K* y7 b2 w. `9 W. o' y' n0 e }; z: T' c) M1 U9 C" ~
else if(IsHero())! r) v$ a* ]% k' x6 m* j! p! _7 B
{
, D% c. ~ U. `0 H; Z/ m1 @ for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ ], _+ m9 ]+ J! A( y1 l4 D7 f { * C2 R: S) V. A" \
LPSKILL lpSkill = &(m_aJobSkill);
9 u& F/ s" o; s" n# T) x8 k. G if( lpSkill && lpSkill->dwSkill != NULL_ID )8 m' U$ u8 s. B
{
: q1 b8 b- g/ S" K/ h+ g8 w" H$ Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; F6 |, e/ [6 _$ T
if( pSkillProp == NULL )5 i' _+ ?: f/ I% p
continue;
1 C/ @. `& A% ~' ?- Y$ a: w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ C5 e# Q* j; p/ r( B9 {3 a% n
continue;
2 H; X1 t$ w+ h' `( H. O lpSkill->dwLevel = 5;
$ t; k9 f; z6 } }: q) ?0 H& m# X0 C3 m$ a+ u
}
/ d, L/ t3 p- ?( m# X/ l }
8 z0 r% d T0 { else if(IsLegendHero())
% V4 C. x" @0 p( \7 Q {
* y! b% M, _- C for( int i = 0; i < MAX_SKILL_JOB; i++ ) * a& c7 k- W7 L/ \
{ 6 C8 u" f! `2 Q* `; j& v, q# Y
LPSKILL lpSkill = &(m_aJobSkill);
! r7 O, @* [2 L! ? if( lpSkill && lpSkill->dwSkill != NULL_ID )! e- f" Z/ q' B$ P) I. J& M
{
$ O5 I. M6 p7 a7 x6 j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % W0 W F" c0 x. v9 p
if( pSkillProp == NULL )3 N& C" S. a w4 I+ O8 h( h" ^
continue;1 @: y$ t* V$ `0 W. p* F8 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( V( D/ H+ n8 v, Q& O
continue;, t q, ?: q% f8 V4 m5 L6 z
lpSkill->dwLevel = 5; ~9 t; o" Z Y8 j/ ], z2 c6 c
}: B0 j9 o6 h; i% d i; o8 I; j
}( ?1 e+ ~7 J/ D# N5 U: F
}/ U' ]4 A0 }9 o) _6 t
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ w. K1 y! B/ `) v. c5 ^' U
if( bGamma )
. V6 |0 `' {' c) k, o {
* j v5 j. O5 q0 F# }3 P% |4 `+ V m_nExp1 = 0;
3 D! w" P% n& G3 k7 U }
1 f: R. M" O7 d4 s9 L J& t* r
! x7 L0 r- `3 v ( (CUser*)this )->AddSetChangeJob( nJob );% t# L j: `: v/ W. Y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ a. {. R$ b' P" o
% a: C' @, f( t, H2 b) e2 {; a9 ]0 k M$ s8 X
#if __VER >= 11 // __SYS_PLAYER_DATA
% B n5 X. {( k& ] g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" K& b$ G" \7 q9 o% Z9 i7 C
#else // __SYS_PLAYER_DATA8 _' s- ?' ~. L& z& a; F9 ^: g
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, A1 ]% H9 }* |2 X/ }( C( J8 A0 \ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* Q: U( S' j6 o2 ?4 A4 ` if( m_idGuild != 0 )
. i# \& I5 D% u g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. Z; a) {/ P, @: u8 p& A8 J+ ]
#endif // __SYS_PLAYER_DATA
2 M/ G g' W. O% e1 ~ SetHitPoint( GetMaxHitPoint() );8 E# P# v$ a' O' }/ I O. M
SetManaPoint( GetMaxManaPoint() );8 Z. j: v& h! g/ ?$ I
SetFatiguePoint( GetMaxFatiguePoint() );+ b. {5 p& M! f
if( nJob >= 1 && nJob <= 4 )5 S6 B5 k# g; x+ F, n
{1 P' a# _0 [: W* F9 G5 q6 e
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 M; e+ W/ l5 W$ Y( |
m_nRemainGP = 28;
. J( h* N2 U" ^( C% u2 l1 F" @ }0 L& f8 Q4 w* k l6 M# o) X& Q: [
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
B ]3 J3 M( w% C7 B7 w {
8 ~5 e: O3 ^; J# h. R* _4 i* j) G/ L m_nRemainGP = 118;( ?7 ^" e% y6 l. h# V. I
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
b: g3 |" B$ N. @" M3 w0 A5 Q7 S m_nStr = m_nSta = m_nDex = m_nInt = 15;# s# p" r$ ^0 Q4 b) d& W
}/ k' N1 B/ H) K/ [# E
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
, g- l, t. s3 w5 D3 A5 [ {
- q" r0 M n( s( R- ^1 J: K$ s# J CItemElem itemelem;* L& {4 N3 i7 E( h0 ~
itemelem.m_nItemNum = 1;" L: {0 O5 E3 j: l5 ? I* n; A
itemelem.m_bCharged = TRUE;
; Y _2 |/ p6 P! j2 s' h5 o4 q$ s BYTE nID;
* t! `0 B) ~0 g
- Q; T# x( Z- O/ D7 ^- T0 V( g if( nJob == JOB_MENTALIST_HERO )
' V) F1 Q8 g0 @6 i itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
3 S( m8 J2 C; s& C if( nJob == JOB_FORCEMASTER_HERO )! A8 m' s3 T$ H6 v& _& {
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;" Z# i9 ^4 |1 ]* `: d$ p, s$ i! X
6 L3 L: ~4 u( z; w1 i ( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 ?1 e, ~% \* m& D5 `( Q }
% F4 |0 c& Z0 h! V D g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) _, ]8 o! Z0 @0 I8 \4 [ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );$ }( \% s; P, p! H# ?6 T9 F& ?
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, n5 ]& p% D3 W0 z /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
( H. ] J. \2 x2 G ( (CUser*)this )->AddTaskBar();*/
% I$ [1 F" A2 O( g6 ?* c ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );& }3 v4 x- e* f f1 n" g
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 C' M- i% s* Z+ P: r9 ?% s/ c
((CUser*)this)->CheckHonorStat();
& W7 I! b9 o: D- R: D. I5 h( j4 Y ((CUser*)this)->AddHonorListAck();* s" y% |. ~' T; b5 N
g_UserMng.AddHonorTitleChange( this, m_nHonor);
* ~9 j. y+ c! y9 }! `#endif // __HONORABLE_TITLE // ′Tà?
* k. k) m) e* W/ W: Y* V/ c$ C4 d }
+ c' ^/ O" Y- R8 a#endif // __WORLDSERVER
* z8 s. _2 ~+ H6 f: [& k/ l} , n& y" {6 V/ E
- T6 J) {/ n- }3 X6 L" l! g2 c' t然后你进入functextcmd.cpp并添加以下
9 e% @" N* O7 H; f* a! T( F9 ] l' t$ D* n3 H3 o9 L
代码:
Z i y( s: _$ q9 V8 ?% EON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 W& w! N2 ~! M- [
下面插入
& M' n7 Y- H1 h1 a3 B( mON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! e+ K1 m4 n; H. W
! A9 p' R% `( a, G" g然后你去
u* Y6 m/ r- M" }
) ` }0 J5 l+ \5 e+ a) d9 [代码:
) n+ ?; A6 H) S7 s. e% J代码
4 z1 O' S# F2 G# P' v* uBOOL TextCmd_ClearPropose( CScanner & s )
5 q, ~1 [+ V& F3 b. S) F{/ G; y; k7 N2 S( s y
#ifdef __WORLDSERVER6 I# |/ {3 H0 r5 F( y! j# M' r
CUser* pUser = (CUser*)s.dwValue;
# g+ E" N( ~# e. U# [9 d g_dpDBClient.SendClearPropose();
( L* S$ [8 r K#endif // __WORLDSERVER
3 {6 U x1 X3 M" u, i return TRUE;* ^0 e- ~- Q7 ]- Q w" @2 [$ {
}! g. p# b$ }# }- A
下面插入8 Z9 R% w1 _$ m0 H
BOOL TextCmd_rebirth( CScanner& scanner )
# K' _* W8 Y1 R& _3 ?- _8 o, \: U5 R{/ o% P* w. j9 u% \+ R
#ifdef __WORLDSERVER9 L* q% w& w4 N- N4 v" k* f8 m
CUser *pUser;0 @: \" k3 Y j( j5 g+ [' ?
pUser = (CUser*)scanner.dwValue;
/ ?4 ]. }$ J. @" ]if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. _2 V* }$ A( b8 J* }pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 h# F F, `. o' |) A( ?/ ]. helse% G$ ?. Q; R6 F B* K4 t# v* j2 a
pUser->AddText("你还未达到重生条件!");0 N, d- N* b: b# K: U* C1 |) ~
#endif
/ [8 c" X) g- e) ~5 _+ Mreturn TRUE;
& q9 r& y* X; _% ]9 z: g} 4 ]. U" ~$ ~9 f
3 l% {; G6 }& [* s
' c* {' @) m" {3 H7 Q% ~. E- Z& Q. X J) ]6 M$ R( l
# A! N$ V) O3 h
|
|