|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel D Z. \& X9 U3 Q1 }! ]
$ v$ I* K0 Z3 a8 D% Y$ c- E
Mover.h
! w, o; p" [0 {; u代码:
5 g/ H" m9 H9 X! j& u找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü2 I2 ]6 f* F' [3 U
+ X" F' [0 r1 U" S8 d, d下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
D' A5 l0 L1 N8 u4 @2 l3 G% f6 ]& z1 p$ y
然后你去mover.cpp添加) C8 C9 I4 X0 Z$ o+ L4 ^
5 @* o. q# _" t+ O$ R
代码:/ R. g5 I I' r% |4 `# p
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( P0 J' x$ ~; H, u3 A
{) l ~; J( b; t( }* T- e: k
#ifdef __WORLDSERVER, h3 i s& I8 x. ~
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 C# e; h/ C- G/ I2 [
MoverProp* pProp = GetProp();
7 ~- a* _" \" Z, Y+ p* s) z+ u if( pProp )2 F, b2 b: p6 P
{
[& t) Q" i6 u8 F$ t4 U if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 T5 O! c5 i% L' _ {
0 _, e1 f9 d9 G- q2 X. j3 ]. A9 P AddChangeJob( nJob );$ J2 j- }3 x u u+ x
}else{
1 I+ I ]; ]% X* W- n return;4 P' y3 t) Y, }' h
}
. ?$ Y( s/ a, K0 p) n int nPoint = 0;& R& I5 U: R( H5 j" a" Y. z
if( m_nJob == JOB_MERCENARY )
5 L4 h8 w1 E5 D/ \" l Z nPoint += 40;
/ ]& i n, p; |5 f) ] else if( m_nJob == JOB_ACROBAT )
7 r3 t* Q t8 r( V nPoint += 50;3 i% P# S$ B; b, f
else if( m_nJob == JOB_ASSIST )8 y* z) {' \8 |3 r# l
nPoint += 60;9 z+ ~( g( f3 c" M" J
else if( m_nJob == JOB_MAGICIAN )
9 e/ C2 g7 q' V0 P) N1 { nPoint += 90;
) d2 s# d! i# e% _# k: f% h- e+ h else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ); h0 ?8 z& ~3 F9 X' K
nPoint += 120;; f& G2 c+ S R% c, Q/ c) u
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 [! K1 g( _, R* o0 W8 K
nPoint += 150;7 d: d) ~$ A. N3 ?+ M0 P
else if( m_nJob == JOB_RINGMASTER )
! \4 ^: x% L' r* E$ g nPoint += 160;
. M) B2 Z$ c, W+ W, I else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 M" E) U8 O5 B
nPoint += 180;
" |. `9 ?1 V* t+ r" m% i else if( m_nJob == JOB_ELEMENTOR )7 z+ ?& d% Z3 I2 w& R) p
nPoint += 390;
! e9 N- \/ Q; f/ V( y, g else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ E" V! C( r6 D) v nPoint += 120;8 Y/ V, k1 ~+ A1 R& G, L+ G8 d
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )' _, ?; q6 E% c' m
nPoint += 150;
3 O/ I) F3 ?* s else if( nJob == JOB_FLORIST_HERO )
% p! B/ n' R. ~: Z. G; i nPoint += 160;
1 x( O% T& t8 i2 { else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 [( K! X* s% a3 G( f nPoint += 180;% D. q1 [7 r' Q9 S' A* E
else if( nJob == JOB_ELEMENTORLORD_HERO )1 X+ d1 {9 l, v; A$ R: h4 M8 u' P1 s
nPoint += 390;
$ T. \5 w7 f L) ?- Y9 W, X8 Y- [9 X! W+ m9 H( n# f
AddSkillPoint( nPoint );
; N5 N8 g* [* Q: h: t9 k m_nLevel = nLevel;
) U) l- ^ x/ Q
2 A# l6 v- M+ V G4 p T8 p- I SetJobLevel( nLevel, nJob );1 m8 ^9 A1 T& D A# B
m_nDeathLevel = nLevel;. \; ~( q5 Z( H7 `7 A7 T+ X: r
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: f$ S3 Q _; `" y$ `& \& F0 u5 _- f* L if(IsMaster())* l2 ~0 t; T9 Y. e" t I& l
{
9 a1 U! l& G) ]! D int dwTmpSkLevel = 1;//60, 72, 84, 96, 1083 _" k/ u7 S; K" a
if( nLevel > 59 && nLevel < 72 )" u* ?% ]' l, Q
dwTmpSkLevel = 1;% h K- [+ s9 y2 m/ R1 b; p- H7 t
else if( nLevel > 71 && nLevel < 84 )" e6 F) b' P- W4 e
dwTmpSkLevel = 2;, o6 ]' W4 _* d8 J: Q; t
else if( nLevel > 83 && nLevel < 96 )
/ A6 [/ o( b8 n4 K dwTmpSkLevel = 3;
, x; _2 ]$ O2 E5 j5 ` I0 c- j3 _ { else if( nLevel > 95 && nLevel < 108 ): ^: t( R8 `/ v# ^+ n! N
dwTmpSkLevel = 4;' }" t3 o, c$ ~9 P, Q" u
else if( nLevel > 107 && nLevel < 120 )
$ S: T( h, |+ e+ }1 ] dwTmpSkLevel = 5;# k; q' }' b8 H: r" ^: m- ?* @
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 E, H9 ?9 ^1 \: m W+ V1 O) C
{ % o \- O( C5 c- m, W& d; p
LPSKILL lpSkill = &(m_aJobSkill);9 b0 f$ a# ^# J. u; ]6 m% A/ M
if( lpSkill && lpSkill->dwSkill != NULL_ID )" y/ E5 `# r l% B# K" z+ s
{
1 x8 z K. |0 } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . x3 x' i z4 \9 [7 ]
if( pSkillProp == NULL )$ J7 q0 B7 v# z! o" o1 k# w
continue;
8 M. I$ S' h1 h1 @) A/ q% f: l* z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ \: T6 ? q6 K0 B& p
continue;7 ]+ _0 A7 h8 q" O' r: ^
lpSkill->dwLevel = dwTmpSkLevel;" _5 f, V" S% D9 d2 z8 h" j1 }/ {
}% `- ~2 B$ `+ p" f. ^
}
g8 {- W( p ~% ^" `2 S }* _3 u2 X5 o2 Z$ z- A7 ]1 W8 J, {
else if(IsHero())6 Q- l2 \ k1 w- {/ _9 v
{, L0 y, S; H' u- n
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 x2 |. y6 @7 [
{ " o: D; [% R9 H3 l! z: h" F
LPSKILL lpSkill = &(m_aJobSkill);
/ ]- U. ?9 O/ H) ^4 X1 W7 [9 W. t if( lpSkill && lpSkill->dwSkill != NULL_ID )
- `5 i2 N' k& Z s; y! m {
1 H7 n) ~- x& z0 |# ~6 o B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 }! e; X' C7 h I l0 h: `$ @( Q if( pSkillProp == NULL )
" M# }- \7 w2 D2 I1 R continue;) y3 V4 V. T7 ]* m6 ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 |/ f' U: Z% N4 T0 d; ?
continue;
# l/ D7 }. d( z" [+ r% X lpSkill->dwLevel = 5;
3 p1 ~( o6 u( y3 W* H9 B }1 v" j+ {( H5 @+ l
}& w: B$ ~0 Z @ O3 K! T
}. P, v3 ?( Q0 V( e7 @
else if(IsLegendHero())8 }4 A1 O3 S+ a
{; v3 h+ T* a' Y$ H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& }( u8 a5 I. L0 c9 Z5 f { ' ~0 i. T3 ~) K
LPSKILL lpSkill = &(m_aJobSkill);
/ Y% q1 ?' F/ q4 c. F) b9 U if( lpSkill && lpSkill->dwSkill != NULL_ID )
" Y! e6 w( x' ]. _- P' I( S% p+ t {3 r: Q3 r- {, ~5 p5 I! @' I4 \. t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 b5 b1 {4 [* Y/ ], D; i/ `1 ~
if( pSkillProp == NULL )2 V( h/ w6 h5 p9 E2 d0 l r1 |0 n
continue;
# c: ^) ?3 {. o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* z r1 g. A4 i6 L ^6 e' E continue;) G7 ]4 y& ?: m5 U& `0 F
lpSkill->dwLevel = 5;9 z" L! V \8 O6 c$ g/ v
}
1 T1 {! M5 L: w5 B }
5 s' f' T- f( f# A/ E }% q) A C2 b& O
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! ^0 g5 S( P" I: Q" e if( bGamma )
; v/ x3 _' P0 f {
3 e: x4 g8 Z! Z8 f9 H4 Z X m_nExp1 = 0;$ L; N. Y- D* {4 Y: ^
}
E6 f; N. a) N0 O$ ?
5 U% Q, Z8 {* I% {& {& [ q ( (CUser*)this )->AddSetChangeJob( nJob );
" K5 G2 D, G" l% K% E g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) f7 Y' \, R; k- a3 e( ^4 x
1 ]* R' w7 ?1 y7 r' T# }6 ~ f+ s& S; l/ `/ E* H
#if __VER >= 11 // __SYS_PLAYER_DATA1 T' J( c% u8 O) d2 r1 h* \
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 S* Q2 J. O& e o5 c1 r9 v#else // __SYS_PLAYER_DATA2 Y% O$ e8 O. u. ?3 r3 i4 d( J( J O
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
^, \' k8 y7 [ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; J- {. u* m- W$ V" e
if( m_idGuild != 0 )4 _) P, W& z3 q. P5 I" K
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 I# }& z! s8 A( Y/ m6 q0 y2 \#endif // __SYS_PLAYER_DATA
: B( j ~4 Z7 q! _2 }' j SetHitPoint( GetMaxHitPoint() );! e4 A$ h3 ?! D$ z) G
SetManaPoint( GetMaxManaPoint() );
' c! ~. ^5 Y! u2 T: A8 A SetFatiguePoint( GetMaxFatiguePoint() );
4 X6 L3 C8 L' V. y if( nJob >= 1 && nJob <= 4 ). z6 g5 h3 C0 [9 K/ K" k' l8 f
{- h% X& S( ^3 h5 |# }
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! a- |. J* ? E' M( M, {3 x m_nRemainGP = 28;
5 |( Q% D: F- d7 O% w }9 a. q9 n8 b( @7 v9 [0 T4 R
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )9 Q7 p ^4 J# v* t8 v0 Y
{# _' Y; [, H# {( F+ I& H
m_nRemainGP = 118;$ H. }0 Z( n, f& h, D# D
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;9 Y* P6 i1 u0 e( M" a
m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 h# K X+ Z6 ]6 W9 W }
/ H' ^ Z/ w' L if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' c8 }" | t, w {, F# s" I# v8 G
CItemElem itemelem;
1 w& Z; j$ S" n, s3 X2 F1 D+ i itemelem.m_nItemNum = 1;
% w1 G( q# b# J# U6 r8 w) } itemelem.m_bCharged = TRUE;; Z0 C( T, k- I- H
BYTE nID;
1 }& u& H6 j/ ~' j8 u, a$ t; u- D [
if( nJob == JOB_MENTALIST_HERO )
6 V3 p) X% G; {# B" C; Z itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* {9 k/ O/ }6 N if( nJob == JOB_FORCEMASTER_HERO )
' S& R8 x) u& |- p3 U5 W+ v" w itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- \- Z9 v' [9 w9 i& G4 a" G: A
, `8 H5 N& F/ c# b, ` ( ( CUser*)this)->CreateItem( &itemelem, &nID );" [% X9 L% k3 ?% g* t x Y
}( R: G9 W4 M) H
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );! l+ G& j: y" l2 N
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, g- w/ Z0 `: O/ y5 P9 k- V ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 O \' t. s; Y" Z1 b0 u2 P! E
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; }( K' q: q$ v2 l: F+ ^# T ( (CUser*)this )->AddTaskBar();*/
4 W, {% w# s) n% J2 x, K ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! Q$ l* ^* v# S' Q#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?+ C4 J+ m: R6 ^* g' x; @
((CUser*)this)->CheckHonorStat();
& _2 y2 Y7 Y8 I6 Q7 @' d1 M& G ((CUser*)this)->AddHonorListAck();
9 F9 e y2 C5 ?2 m8 b% }" \ g_UserMng.AddHonorTitleChange( this, m_nHonor);$ [, G' c9 t Z, k7 z
#endif // __HONORABLE_TITLE // ′Tà?
i& V2 M" M8 {6 ?9 m }0 [% g0 A5 P0 S
#endif // __WORLDSERVER) a! p* ^( s2 j6 e
}
& [- H$ d2 u& b
8 B& T7 v1 b6 f( v然后你进入functextcmd.cpp并添加以下/ Z, v& o2 w' e7 A/ E, s, k
4 I6 ~* P* |' g) Z代码:
: I7 Q& L# U, s ~ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 Y$ t' z7 ? ?7 m& A下面插入
# L9 @' M6 ^& @* B2 O2 J6 i) ~4 GON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ! }9 D! i2 G* T* t
9 V, D; h& I/ O) D然后你去
" U I6 z9 L l" ]5 C- p# Y8 q% H7 \( {- C% W$ g7 K! e$ r
代码:5 X' N5 e9 p6 K6 Z w! x! C9 O9 @
代码& y6 B5 [; C! @$ z+ r
BOOL TextCmd_ClearPropose( CScanner & s )
! r, [8 @; ]& r% X% T{
" l+ t& a3 p- ]' E$ X8 x#ifdef __WORLDSERVER
- Z% V4 P) o+ p8 G* e) ` CUser* pUser = (CUser*)s.dwValue;! g# }; r. q% p. T
g_dpDBClient.SendClearPropose();
0 _7 }. Q. ~5 c% |; w#endif // __WORLDSERVER2 D; m* B5 @) A( t: ]" B6 Y
return TRUE;& x. N& O% e+ i# B( Y& o
}
; |0 \3 x7 H+ P7 T4 ^3 `9 }下面插入) i8 m) f$ C* T4 K6 h9 L
BOOL TextCmd_rebirth( CScanner& scanner ), V) q: _- I; x2 W
{9 {3 H% \! N. ~5 j/ d. j
#ifdef __WORLDSERVER) L$ y0 w i' e$ o/ f8 X2 Z* r
CUser *pUser;8 I1 m( k6 i; L. u) _
pUser = (CUser*)scanner.dwValue;9 M8 U2 ?6 ]* [9 X
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())' N# K `! o+ d5 Q4 ^
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* ~$ A L7 [- i; I7 z pelse
# W4 G0 ~7 \5 n) FpUser->AddText("你还未达到重生条件!");
5 g# W# o$ [1 P% z/ ^#endif$ I! e0 S6 R( a7 o9 ?2 F
return TRUE;
, B0 ~/ w, H: ^' R} ( o& J; Q( S$ n" }; Z
& W1 y9 b9 p5 R4 X0 h- G
. ` ~" k% d+ `* S& O+ @
; ~" u& q9 F6 C) l' {& ^
! T9 ]: I9 ?) v) ]. t- |5 j1 ]3 {) r |
|