|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
% M. M4 `/ |3 g# z. z T$ N9 ? N. Z: J1 X" ~2 Z
Mover.h& k: E0 u, T% r* B5 V/ N; I4 c P
代码:
% W h: z, o+ z* E* @1 Y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' y( a) V2 T' R3 b6 X; F7 k4 G2 N
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 @/ g' n, h0 r
/ e. W# g9 w5 O- D, n* B2 @+ V# z然后你去mover.cpp添加9 K! r4 o9 n1 ]& H% d
2 g& F5 H& v6 @, d2 D e, i6 S
代码:
# {* e* K7 C5 A. n1 Nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" ?. O8 m h' I: K5 b{
" `% w. }. q6 ?% O. G# z#ifdef __WORLDSERVER
5 }: w% {2 P1 V- ]3 B: _7 q // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 l' o! g& `- W/ A; j MoverProp* pProp = GetProp();
: Z9 j2 |" j, c* { if( pProp )
9 j1 C6 m0 P+ `5 Z1 L# { {' q& |! [ N5 N/ E4 d' K' n, T
if( nJob > 0 && nJob < MAX_LEGEND_HERO )& J9 i2 b/ Q6 `* {7 K1 v+ n/ B
{
( M ]' C& ]- l2 Y0 g AddChangeJob( nJob );. B8 H6 [1 G6 L
}else{
/ y" y4 X' g2 ~7 W return;
# T. h8 r" C" E }2 f. p6 {: D& H* @; z
int nPoint = 0;$ L9 U0 P5 g' u V- Z6 P' r
if( m_nJob == JOB_MERCENARY )# g9 R5 E0 ^! J+ X
nPoint += 40;1 ^0 h4 }$ ^9 v( k4 Y
else if( m_nJob == JOB_ACROBAT )
3 k4 @* @8 f- g8 k2 \! Q# ]. | nPoint += 50;
9 T m) w9 w8 ^# x5 b else if( m_nJob == JOB_ASSIST )3 \# W( f) m3 z
nPoint += 60;
$ e- `& Y! h; j else if( m_nJob == JOB_MAGICIAN )
# I# N4 Q8 q+ } nPoint += 90;0 J) l. J5 ?# l) ?
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): i& [/ ^. s; i0 D
nPoint += 120;
4 b( ?; d+ S: g4 o' t else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& V/ Z; y+ t; {$ V2 H' V% h nPoint += 150;; ^" T: p! B; x: ]) m
else if( m_nJob == JOB_RINGMASTER )
/ S1 ?/ ?9 ~; a7 o4 U0 Z0 k1 ~- P nPoint += 160;$ V* N Z' `" u
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ G, ^8 Y& l( g# Z: `2 | nPoint += 180;
9 S: V4 K& _) X) w! T2 {+ L else if( m_nJob == JOB_ELEMENTOR )2 J1 Y2 t8 H0 J3 z! T! T8 w/ i" a2 z
nPoint += 390;% d8 n( n C9 H; o. l E
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: _. I9 s3 i. F% y* T# C nPoint += 120;
/ G0 h' I3 I) D5 R R3 Q else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) {' g3 v& F+ k: }, M3 g nPoint += 150;
; T5 l6 N- C9 o$ a' K else if( nJob == JOB_FLORIST_HERO )5 g3 x T1 O1 g4 F) F/ A. M
nPoint += 160;
0 S1 _, Y3 x% `4 z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- k8 e: l8 w4 [) [- U/ } nPoint += 180;# T* c, z- n" _% ^
else if( nJob == JOB_ELEMENTORLORD_HERO )
- e% V( L$ _6 C W2 _9 c6 v1 I nPoint += 390;
! ]) J, e. G1 ~9 f0 e
; i0 c) s+ h( f, T' ~* D6 A9 | AddSkillPoint( nPoint );& v3 B; _9 i) Q
m_nLevel = nLevel;
' ~% j ?1 D! Q S
' Q1 ~' v5 x( x. S" z" y/ v, R SetJobLevel( nLevel, nJob );
, g( d+ |; j+ C9 ~( @" L m_nDeathLevel = nLevel;
7 e1 B" f5 t( e# l9 B K2 S! i! L#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' p2 C3 ^$ O: u- P8 \ if(IsMaster())
3 z" ?9 n- n) Y( } A {# V! V9 Z0 N m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% X" q8 \' ]. K
if( nLevel > 59 && nLevel < 72 )( q9 s( M0 o" \4 x# T# }4 e) N
dwTmpSkLevel = 1;
4 |9 k; p+ ?; `$ ^) ^ j else if( nLevel > 71 && nLevel < 84 )" \% M# k5 z# V- ^4 r, c
dwTmpSkLevel = 2;* d: S+ R) t2 v H
else if( nLevel > 83 && nLevel < 96 )" Y7 s" g6 n1 y+ N Z( g9 A
dwTmpSkLevel = 3;
1 M# Y3 M' @" N4 s8 s7 }! R# H7 Y+ D7 [ else if( nLevel > 95 && nLevel < 108 )" s" E, V% ?5 n2 F; E
dwTmpSkLevel = 4;: H6 ^( V4 R U) r a; m! O
else if( nLevel > 107 && nLevel < 120 )
* {$ z6 O/ M }$ u3 l# D dwTmpSkLevel = 5;* ~. U8 S# @% {; T/ h# m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* R j9 f, I& c6 i5 I ]9 i9 B { + e6 K; D) r* K2 z* H! ^
LPSKILL lpSkill = &(m_aJobSkill);
4 e, g/ n; X- n; Z% ?1 K1 U, T if( lpSkill && lpSkill->dwSkill != NULL_ID )$ o) s3 A/ M/ X5 ]
{
* ^& g- w& C* p8 K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); b- ]- c/ C* j5 d# L `9 }
if( pSkillProp == NULL )! g4 J8 U% t8 @
continue;! u% |5 n2 z* _. `- I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- t, [# k/ b. v% O: K
continue;
h( \5 y& R8 M* d lpSkill->dwLevel = dwTmpSkLevel;
- B" J( @ Q& ~5 R2 H6 \ }* ^: K- g. s5 r9 W1 ]
}; V7 g; j7 k5 I$ j0 `4 T" k m
}
1 H* v& e) H5 o* ^7 b else if(IsHero())
/ h2 O( D7 a2 G2 {' r' k {
6 R" E8 Q- J& g2 d9 Y U for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 \( K" |4 @# s4 D* d, N- ^ {
- p% ~$ j- G" p6 y LPSKILL lpSkill = &(m_aJobSkill);2 R) `( ~ S/ |0 T6 g [3 i. ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 K3 ]- ?7 G0 b {
/ f0 \$ o) Z0 o- Q- Y5 Y0 {9 `2 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 Q) v: f; E- @ q, z
if( pSkillProp == NULL )
, c. L6 H }5 \; c0 M0 R! t; g( j continue;. W' R }$ c d: X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 c* r. G' G& e continue;
. m, k) k9 Y2 I% C1 t8 r' | lpSkill->dwLevel = 5;7 `9 m2 o6 G% D$ L. S
}
k$ V6 ?1 f: [ }
7 _& x/ @0 T' t& d }7 O3 T$ U1 D4 p0 @
else if(IsLegendHero())
' Z6 ?. y6 q) U( q; T0 q, ` {
: D" n% a- r$ ?' D, X for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 Z$ Y! I' E* B! q B2 L. n" a
{ $ H1 C; f0 p# e# i: \
LPSKILL lpSkill = &(m_aJobSkill);- @6 s- @- C5 h0 n$ @: O- G
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. q) h) p) W, {7 b {6 w- l m& m. _8 B# ]& H0 y+ R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 F$ w8 K* ~1 y% c if( pSkillProp == NULL )) L% [ c0 g; J5 O) k
continue;
9 S# ^2 ? r3 p; z# c6 C; p5 x: f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 A2 u+ ^; j7 B, H
continue;; u: o) i1 S) u8 p7 P* v: f
lpSkill->dwLevel = 5;
9 N: W. Y3 c, V# p2 h! [- m# e) h }
0 `$ B+ [8 f) x- D7 m# g }
+ E" q% g9 P% J1 I8 @) z }( M! {$ F4 R" A3 b
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" x' G; O" y- z6 n+ ^2 B Z1 u
if( bGamma )
5 k! v. X9 q2 ~0 v$ V {3 g$ X: a9 d; B1 F5 @4 [ `
m_nExp1 = 0;' X9 w) z8 N3 V/ x5 ]7 W; [! g! x7 X" x- B3 |
}, O {; S2 M& P
0 k" r: B t$ `+ } ( (CUser*)this )->AddSetChangeJob( nJob );
( u4 |3 F% G7 j1 R2 e' v. w g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) r- Z& |5 X0 ]7 C# Z
: W6 {' Q) k- ^3 o4 b) _0 S: Q5 b' c
' ^2 l- ?3 U* c% N9 _, |+ h#if __VER >= 11 // __SYS_PLAYER_DATA
; ~5 h- c4 `8 z4 B. ^2 {7 X g_dpDBClient.SendUpdatePlayerData( (CUser*)this );4 F/ _) ?" F1 a' D6 D A2 ]* c/ o
#else // __SYS_PLAYER_DATA
8 w7 c+ L: \" p! O8 h# f$ J9 N g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ m W+ L# \) W- Z1 B3 F
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
7 J" [! W; ^$ l+ _' b if( m_idGuild != 0 ): i1 p" W# Z0 P) |0 Y" i: p
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% n* T! Z; n2 f( b9 m
#endif // __SYS_PLAYER_DATA
: H3 t/ D4 U7 k2 j3 ~ SetHitPoint( GetMaxHitPoint() );% K% W8 _# `" K
SetManaPoint( GetMaxManaPoint() );1 p/ P, I' _4 a. m/ ^1 Q
SetFatiguePoint( GetMaxFatiguePoint() );
6 p' b% R" z: y4 [' D$ M- Z if( nJob >= 1 && nJob <= 4 )4 x0 y1 g% B C6 T& R& c9 j9 E
{
, h9 D" k% d1 ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;1 i2 p( ?. P3 E, A" N& E
m_nRemainGP = 28;
' f: V( x1 p$ i8 i } ~* j( W; v( {* [& Q: @# V0 t
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )% t: n; O- K4 O, Y
{6 W9 q. I6 F* A: _) L$ \! X& [
m_nRemainGP = 118;0 P) a2 o; K: @! ]0 A
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;9 [/ x. M, \ |5 M8 P7 q9 _0 U
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 j+ f9 n! y( S+ h* P- l u' B8 D }
; Y9 S6 p6 z3 i) g# q, k3 t# B if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# y1 [% q- l9 P
{* E( s t* r% g, {9 I, w
CItemElem itemelem;
: H) B3 G) y; E: ?8 i0 G0 P itemelem.m_nItemNum = 1;" y: s! S. J1 _, O
itemelem.m_bCharged = TRUE;
+ I7 A" U$ i- a. o) o- c* U3 j BYTE nID;; l: |, x6 W+ x' ~
* ~' v/ g% }, C {: N$ @ if( nJob == JOB_MENTALIST_HERO )$ r+ ]" p: ] I' E: M& Y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;. j6 h% ^, V0 |) g: [
if( nJob == JOB_FORCEMASTER_HERO ), S- W; l( E9 |1 z) S n+ U- D
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- G- H* s4 K7 S5 N& G2 P7 i8 ^ T" h
( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 b$ i3 I4 W; Q( d }+ z6 `( n: V+ _! c( x' \
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 F6 N" j% q# P2 D G" |7 c ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 ?, i8 o0 I- O! j: Y
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 s, L/ @# L' j" u+ L5 o
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );+ w$ t2 H4 S1 c( m, W. X5 ~
( (CUser*)this )->AddTaskBar();*/, W$ }) e# J" d; G7 e8 P6 \
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
) R( L4 ~( t& t0 [- d#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, q% }- D% ^0 O! V. U. v
((CUser*)this)->CheckHonorStat();, g& L# i) N1 D& M9 Y' U5 s. U$ i
((CUser*)this)->AddHonorListAck();
3 U0 b7 f% o+ E% J( J* n g_UserMng.AddHonorTitleChange( this, m_nHonor);' l4 N, K1 r0 Y, [; u @
#endif // __HONORABLE_TITLE // ′Tà?
! ~6 Q$ p& X4 r( F/ T" s }
, T! @: y8 M" v. [( B: q#endif // __WORLDSERVER
% |1 j8 W) D! B4 J# O} 4 d$ I: d+ Y, G
, W4 t! f% }$ D& Q8 d然后你进入functextcmd.cpp并添加以下
9 P! o" v4 B9 d) W1 p! U# v) J- C. |" U1 ~& P
代码:! z* A) B7 k3 p& Q: }4 p
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 W3 e! w+ m4 w# [3 y
下面插入. F8 K' F4 _6 V& r4 P* C0 o# ^& V& h
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) - N, G. }7 J' G
* @5 s! F: r, _7 H& P8 U9 x然后你去% S8 R$ j% z8 h6 k# d
( j) E4 C. V$ ^+ X代码:' g6 [! I* o: ~! s
代码
0 N0 r- L; X h) [4 r- u6 i6 N( [+ IBOOL TextCmd_ClearPropose( CScanner & s )
+ y* p: ^, ]' a{; L! v6 k D5 _' D0 Q7 }) ^
#ifdef __WORLDSERVER
% `& I Q1 ]/ P% O- D- ` CUser* pUser = (CUser*)s.dwValue;8 c7 n1 ]" U% P; ]0 g$ g) b
g_dpDBClient.SendClearPropose();
6 `% B) H+ ~9 [" l7 L. U$ E) G#endif // __WORLDSERVER
3 A" P& r9 E& f2 [ return TRUE;
% Y: `9 I! s! O ~7 U}+ v! c5 C9 K, U( O. O) ]
下面插入; X$ \: M" e( F& g
BOOL TextCmd_rebirth( CScanner& scanner )
0 G7 @/ e+ I5 D4 b3 N{, }' m0 _% |1 D' B- ]# t' x
#ifdef __WORLDSERVER6 S/ C& y$ L8 f( L# z
CUser *pUser;
: y9 d$ M" ^: k' m' \1 w$ TpUser = (CUser*)scanner.dwValue;- L7 R8 a& T5 s4 C1 ~5 S& ^
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 a" ^. k) T8 y+ YpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);! L d$ ~7 Z; p9 U, M) I
else
, x6 @6 }" S! w4 n8 \" Q: D5 TpUser->AddText("你还未达到重生条件!");
2 Z2 W: D. e* q#endif
1 Q9 i+ N0 L/ n) Jreturn TRUE;
$ T+ l' B8 T7 G K; l}
9 }3 R2 X: R5 W( Y8 x& D9 c" q" u/ K1 t% {
3 P% B- H) r3 F. }1 }( ?! `9 Q- Y
' }* p6 \, \; I8 |$ A0 {" e
, J5 e; V% u% k& G$ R& Q$ Y) w |
|