|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 T- \! x6 i$ {1 q) D5 q
8 k4 F$ T6 K/ @2 F/ cMover.h/ ^, m3 ~+ e- _7 t+ t/ @
代码:4 S$ a1 S: f& j+ M0 g( I
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 }0 }' u k7 N$ m( V
) ^$ U+ b @" z Y* Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; m! t+ ^0 f) c& Z
3 L* X/ ? _( B1 o* r然后你去mover.cpp添加
/ Y. I' l% a& `# {2 i z9 j" f. J6 e# P6 v! k
代码:$ L0 {; q- L0 y. X7 }3 W% P
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 b5 d9 d( _& T0 {- U) f{
. t, v* x, M1 r& d#ifdef __WORLDSERVER6 O% f, c* X; B: E1 L& B
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 y: d2 p$ Z) U7 Q u- J. g
MoverProp* pProp = GetProp();8 l7 F% a2 M" p, C8 a/ ~
if( pProp )
. m- E3 d7 k& ~ t8 X p. p {$ M% x$ b9 C8 i
if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 p7 H* r6 l3 s! I& o
{
+ n+ m7 `8 s9 U* J/ H0 y AddChangeJob( nJob );( g+ }( E% B! @3 l6 J- F$ U5 o* l: ?. ^
}else{
1 J& g" b+ | q$ ~& [, H return;) f" i; k0 D3 L( N
}
0 M& Z4 j* _$ n1 y int nPoint = 0;. e- Q! i0 ?9 w) G, T+ {
if( m_nJob == JOB_MERCENARY )3 M7 Z8 d8 B* U* R3 N3 l! O9 W; C
nPoint += 40;7 i! ~! E' R) J) s |
else if( m_nJob == JOB_ACROBAT ): \6 g& H( f( Y3 |9 U' [$ F
nPoint += 50;; `, H/ ^$ _- U4 t6 P5 C
else if( m_nJob == JOB_ASSIST )5 M) u4 Y8 l- d) X6 ~. j: [
nPoint += 60;% b3 c5 h! C( G3 X
else if( m_nJob == JOB_MAGICIAN )
, H# W* g& v% E+ z nPoint += 90;, h9 g8 F" _; k( M
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. G% D b, [2 }- @ nPoint += 120;
& n) ?% X! x, s8 L% W, w% ` else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )+ Z, F% k- _. p+ V( `6 ~( ]% F
nPoint += 150;
3 Q. b/ L, S: x; M8 O- s else if( m_nJob == JOB_RINGMASTER )8 G- A/ D! E% P: G# W) f
nPoint += 160;& \7 R+ Q! r+ n6 k+ m
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% I4 L, Z* c4 {' n* ^7 C nPoint += 180;
% A- m) |* X! H else if( m_nJob == JOB_ELEMENTOR )* c: F9 k# O2 b9 w: p9 J
nPoint += 390;
4 D5 C9 s' o6 r; \$ I% b" o else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )7 h5 m( e' B$ M, c3 w" _1 ?
nPoint += 120;9 n9 G, B8 p9 Y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )& q! X1 p" p# \; G) `
nPoint += 150;
* h4 I+ i! I+ f# F5 g9 O else if( nJob == JOB_FLORIST_HERO )7 n( i" `% I9 e
nPoint += 160;' O9 X* B5 T: Z) a
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 |- M! p1 D# _+ H: ~
nPoint += 180;; @ s& W. H9 s+ i8 q
else if( nJob == JOB_ELEMENTORLORD_HERO )
, v* K+ \: \+ J; q* I$ F% r3 y3 H nPoint += 390;% e8 y1 H; [& h0 B
" x- M5 f% L) k# Z: S3 E AddSkillPoint( nPoint );
( k; r4 J! y3 H! K5 Y9 [ m_nLevel = nLevel; Z J/ }( ]' M5 L: O0 ^- D
# a+ j5 G- Z* D9 O3 c( f SetJobLevel( nLevel, nJob );: B _: m, l4 M. x
m_nDeathLevel = nLevel;* y; a7 Y6 `& l* C
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 F5 a L- A# g( _9 {# e& D8 Z) ^ if(IsMaster())
( f7 W+ }; u1 ]5 a4 ~, V {
; v5 ~' x, G; i& \! H7 D/ J6 S7 c int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 P/ d0 E, s( [" T: _3 b" L if( nLevel > 59 && nLevel < 72 )
' u5 L5 ]2 L/ a dwTmpSkLevel = 1;
3 k/ @4 _5 Z' W8 b# ` else if( nLevel > 71 && nLevel < 84 )6 B) u- J- x; M" _! s
dwTmpSkLevel = 2;
7 R& [: H: W# y/ S6 v: n else if( nLevel > 83 && nLevel < 96 ). ~/ L! }) u$ M0 g4 b0 R$ t
dwTmpSkLevel = 3;
& l! [, @5 I1 ^ else if( nLevel > 95 && nLevel < 108 )
! ?3 {. n5 A) ~& @+ o dwTmpSkLevel = 4;
5 u6 M" X+ a& R& V B8 b+ R else if( nLevel > 107 && nLevel < 120 )6 r: K, N( d2 B
dwTmpSkLevel = 5;
) L% \/ N5 n, P+ ~( a/ ~ for( int i = 0; i < MAX_SKILL_JOB; i++ )
( A# M/ G. O, l F& \! J: H5 O+ Q { ) ^2 L3 Z0 ?) a* e3 J
LPSKILL lpSkill = &(m_aJobSkill);! V+ k0 @/ x& `* l% H2 D& l
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 N8 L! ?) u: L+ a7 I
{
* S) S/ J, t$ C6 k; i" ^7 N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); f& S1 L( q! A0 l6 r: `6 l8 d
if( pSkillProp == NULL )$ @6 M% p+ O7 V8 I7 k4 E: p
continue;
- T5 R/ P+ M; h1 X- Y, ]* e( _' Y- U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; v }9 V! a3 R continue;( s% d% a1 p6 e
lpSkill->dwLevel = dwTmpSkLevel;, F9 X) P+ h! w! J4 I
}8 v' m' }/ t7 d& Z
}. f) J5 c& Y6 [; ^6 [
} n" u; ^$ U6 ?1 ^0 ^
else if(IsHero())4 O! D6 a( n9 b1 t
{3 J5 k/ O3 ]* E) d0 _" O
for( int i = 0; i < MAX_SKILL_JOB; i++ )
x9 \* O+ `- {$ K2 n9 u {
9 Y: }# O4 m; d& q0 Y! M5 x( ~ LPSKILL lpSkill = &(m_aJobSkill);) q* ^9 N5 a4 t' n
if( lpSkill && lpSkill->dwSkill != NULL_ID )" ^! F8 r8 R* K/ ^8 |2 l2 ]
{
" t w8 z) x4 j2 f" I) Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; ]6 X7 a3 A/ k7 P z- Q# }4 F% b U
if( pSkillProp == NULL )
3 u: K! u% g; K1 q/ ~ continue;
- Q3 p, C+ c* I& m9 z& Z7 \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* _% E4 O/ T( X$ z: O
continue;
. ?5 A, q( E$ q4 c lpSkill->dwLevel = 5;2 R+ H3 G3 d1 f
}
* ]$ u. n1 i9 e( I }1 Y3 ~/ i5 e3 R- d0 r
}
/ E2 H) O2 D% J1 l7 K/ w else if(IsLegendHero()); i0 h* G ?1 |
{ ]" v9 f7 M# n/ o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 t% l5 Z* g" V* w( s { , h7 K" o' _" f7 K. ?6 k
LPSKILL lpSkill = &(m_aJobSkill);
5 }8 S, m6 I/ r+ D ? if( lpSkill && lpSkill->dwSkill != NULL_ID ) I" L, O) p# H/ A: r
{0 s3 N C: n- W$ T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
g" o6 i) R# J" o: Q8 j K7 L if( pSkillProp == NULL ) @/ ]% ^+ r4 x# \) e
continue;" c6 z/ q& I" H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& P0 A7 y l3 j" a: l continue;
% @! P3 T* H3 P) U z5 H lpSkill->dwLevel = 5;5 Q, i8 C5 M0 q+ u1 O
}
: ~( h' j. |+ @4 [ }
; c; b$ M8 ~0 ~- q$ J# v' l( J }8 y7 [8 e4 B; A6 _7 o0 V0 F
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* ~6 w, I g" F' \" ?* z- q( d
if( bGamma )
6 C! y& V3 ^1 C( V' ? {
9 F+ h6 ?3 Q' m; z% e m_nExp1 = 0;$ z# m; d2 B0 |2 i) G, M$ T
}
' Q0 S1 F% i/ f$ O" w% K$ z" Y# t5 |. t$ b0 Z5 U3 J
( (CUser*)this )->AddSetChangeJob( nJob );$ e1 Y8 h) ]/ d2 N
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );. a: F0 ]6 F5 Z: t
, B( b# F4 |% U* ~ d P; r! O- f7 {& l* @
#if __VER >= 11 // __SYS_PLAYER_DATA
8 r/ ^' I+ z x: C. }5 y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 Y& i% \/ h7 f# F! Q: ^#else // __SYS_PLAYER_DATA+ K* o% G! {: ^% k( w
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );$ L# u, N$ u" S0 \9 @) r
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, q& q8 `/ K8 \% o. E2 B) ?9 v if( m_idGuild != 0 )
5 s5 \/ f" P/ g$ {2 Z" s/ J& y g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );/ K/ v0 F+ U5 Z$ S5 L& i$ V9 ^- \
#endif // __SYS_PLAYER_DATA
5 E9 o, m6 F! t) t A, h5 _ SetHitPoint( GetMaxHitPoint() );, z, Z# l9 n5 f, H/ w% f% H' ~2 c
SetManaPoint( GetMaxManaPoint() );
7 m* E+ K# b% U9 q" |; m8 u SetFatiguePoint( GetMaxFatiguePoint() );
/ M: v3 {1 \0 `6 ~; J if( nJob >= 1 && nJob <= 4 )
, h3 Q; n, S. K2 c, ~5 u7 F {8 O' N$ P& H6 a+ ]: k
m_nStr = m_nSta = m_nDex = m_nInt = 15;" k8 F6 J' d& q
m_nRemainGP = 28;" J T# R# m$ x: K% q
}' b7 J; B* q3 C( b" `% G4 B6 C* b1 E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )& G8 A Q9 Y* n9 `8 |3 f1 X' ]0 n
{: G% m$ t6 ~* z/ C' y. k, I3 C- I
m_nRemainGP = 118;
) H; s4 W2 h0 R: v& y //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 G5 _' ]! P/ R7 E( x& U& ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;+ i$ ^8 Q2 v' T2 Q1 N7 S
}
. Z2 K; E7 m- `7 \2 G: r+ C if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 y, }/ Q7 r( s# [" b {" K1 r) l/ ? l
CItemElem itemelem;$ J- I# ~: n+ f* I! s
itemelem.m_nItemNum = 1;
% ?+ W1 w! C: p# j' u! t5 X9 i itemelem.m_bCharged = TRUE;
+ O& U* j, ^* p) I2 }) |( T4 k BYTE nID;
1 ~' x$ u3 J" x& F, u! T2 T0 i9 _6 [0 J
if( nJob == JOB_MENTALIST_HERO )
c% H7 \0 r( f7 c itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( Y; w5 p6 w1 O ~% @/ d2 C) o if( nJob == JOB_FORCEMASTER_HERO )
. a8 m8 R* _ A: B itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- ] i3 ?6 c- T! E8 V& l5 v* n) t5 }, g
- p& |0 n9 [( M6 R/ H( k/ @
( ( CUser*)this)->CreateItem( &itemelem, &nID );3 G7 t& u" Y: T" c7 A; y, M
}
, W% K( l8 S/ g* `, ~- m" ~( V g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( I" ]( ^& w/ `: ?- i4 x9 f' M- M# ]
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );% W' P5 {+ b, t1 \
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );9 a1 b# Y0 n. N/ j
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );- c! y _4 s) G% g: i
( (CUser*)this )->AddTaskBar();*/
7 `/ b0 L {# z9 }6 {/ D ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ b# v' n! y9 |1 L8 N K9 ?#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?0 R7 W" h- s: K* V3 f$ A
((CUser*)this)->CheckHonorStat();
2 \3 c7 E5 O4 q ((CUser*)this)->AddHonorListAck();
; {( N) W; ]# [5 g g_UserMng.AddHonorTitleChange( this, m_nHonor);
, C4 O" B' \' [$ D1 U- B#endif // __HONORABLE_TITLE // ′Tà?
( a$ W, `/ P* o }$ O9 n0 r- M; X! }3 A
#endif // __WORLDSERVER; }8 L3 ?& g7 X* X( d0 V
}
3 K( x4 ]+ l4 [ P* o S: E. R. z# z9 p
然后你进入functextcmd.cpp并添加以下
" s7 {! d/ O) L! Y* `! U) E# p/ g! Z( e3 r
代码:/ V+ m' N v Y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ L; U9 o' x4 p" y5 {, R: p- {
下面插入. ]& D4 F$ G- ]' j6 J- i7 N J; N
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" G5 @" m: w( m) [6 O+ z3 k3 |
9 Z" m; l- |. W然后你去3 R, x% T5 v1 M" H/ L& K% k8 E
2 b( f1 V" ? ~: \. |代码:$ H; M% s5 G* m0 k! j
代码
% r4 j z8 T+ k( h& L, H" BBOOL TextCmd_ClearPropose( CScanner & s )
! i0 c+ S7 \# c# R3 P{
3 L- U! d. q8 H) `1 G#ifdef __WORLDSERVER* N: i. _* U9 ^
CUser* pUser = (CUser*)s.dwValue;
% _$ u/ w2 j8 l9 U2 A: J! _9 J) p. J g_dpDBClient.SendClearPropose();0 V) B0 G E& J+ k
#endif // __WORLDSERVER. m& G6 P( p; Q# g5 w
return TRUE;
- K0 P6 j/ w; k z) b6 w}
' [2 a; B" t+ x5 r下面插入( ~; i0 p8 U5 o2 }5 t3 o8 c
BOOL TextCmd_rebirth( CScanner& scanner )
" C$ C3 w% s) u' Y9 @, Z* p# R{ Z+ j9 X3 S* }+ A0 B( H
#ifdef __WORLDSERVER! W8 w* e% w6 e. g0 d8 m
CUser *pUser;5 g4 H& q4 V8 E# T8 d y! e
pUser = (CUser*)scanner.dwValue;. R+ f7 s1 w3 D: k2 ]9 i% N
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())# g4 \' {* y9 t/ R8 C* R
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);% M W' s( R8 ^2 N1 r
else
. v9 ^, {4 f: k9 V: H O& upUser->AddText("你还未达到重生条件!");/ o) b) E0 K% `! c+ \/ u
#endif! k& D! }$ ?* u8 b" E
return TRUE;
; ], L R, L' ?) l" {# R}
- r8 ]% Y @2 U" S8 F$ F9 a( K1 X7 G7 {; ]0 A k* Y# F( u h
2 k; i) X* @0 C* z9 P( z q4 H s' z
9 [" q! Z& |- ^! q% @9 c
8 S6 d3 n4 \$ {. m3 M: f9 d |
|