|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 ~" {6 E2 K1 ^2 j1 @7 u5 l% K- V# Y8 _6 s# }; ?1 ~* W8 t
Mover.h0 {+ \: E; K0 l6 F! @# N
代码:/ E( |( p$ H& s$ {
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, N& m8 M# _0 [4 ^( n+ \# ]# s( b* b m1 R2 ~
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 b7 [1 s( |/ Z$ L" b
$ P; s! e5 u' }% b' D( o" t
然后你去mover.cpp添加
2 Z( R- [+ R) i& W/ j6 Q6 g
* w# w3 u- Y; _3 k代码:% l6 N* {" b& G; i, W
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )" Q0 M/ x& P' m( } n8 m* R
{9 _7 G6 z& |, `
#ifdef __WORLDSERVER
! r' Y, a2 p0 Y5 Q // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
$ q$ x ]1 g) ^1 i MoverProp* pProp = GetProp();+ L5 m% Y' {0 s) X: d s, e$ ]' V( [
if( pProp )6 M* r4 R+ w/ f5 X5 @( a
{# i3 q6 [6 s! |/ D
if( nJob > 0 && nJob < MAX_LEGEND_HERO ): P$ Z( ?1 l/ k- j2 n! J
{3 h* U4 W/ `" q1 n
AddChangeJob( nJob );, c1 D. ~) j" Q* k0 @2 j5 E, F
}else{
) j, C* R( u( P9 c! z return;/ s p: u# h4 Q
}
) }+ A) a* T3 E% S) O int nPoint = 0;
( x1 j G. h8 h$ |# n if( m_nJob == JOB_MERCENARY )+ P8 E( S+ R( `) P6 J
nPoint += 40;
+ M4 L+ f: A) R; l8 Q else if( m_nJob == JOB_ACROBAT )+ {) q. P: x8 _/ Z2 E
nPoint += 50;6 ^# A% x9 b w7 w% s$ U
else if( m_nJob == JOB_ASSIST )
% @# N0 C" T3 @ P/ N nPoint += 60;
# G' b P& a0 J) }+ L else if( m_nJob == JOB_MAGICIAN )
% n0 d0 Z4 w% ]9 b nPoint += 90;- b2 ?6 p/ Y! l! p9 Q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): i* S0 t' z8 p5 ?7 k( W0 W. Y
nPoint += 120;
2 m# y5 ?* O% i+ b5 Z3 N4 h else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ _! X% m2 }% \ Z. e
nPoint += 150;
" g2 d! ?2 s) r) W& {2 A* d6 m" C else if( m_nJob == JOB_RINGMASTER )
$ Q. j0 _7 [$ P% n* Z- t nPoint += 160;5 O2 h; o; W( F8 W% y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
Y d% I7 N3 i: E# [ nPoint += 180;6 Y1 ]% v+ d9 o8 U4 r: ^
else if( m_nJob == JOB_ELEMENTOR )
% O% w0 _- D c" T% }" } nPoint += 390;
6 _: m" ^4 w. u' w( F. f* r Z% A else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )1 B/ x9 f% I& p9 W* a
nPoint += 120;9 c4 s5 C! E1 z8 w% p/ A- @
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )+ i8 o- {- `7 a' b
nPoint += 150;0 f( K' p4 [6 i% p* G% \
else if( nJob == JOB_FLORIST_HERO )
/ l Z, x X7 Z# }% @! b2 D nPoint += 160;1 o1 l: x8 N9 @/ x1 e: g) e
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& a u" A* c. V nPoint += 180;6 D4 p* t- i1 q9 h0 k) O7 @* \
else if( nJob == JOB_ELEMENTORLORD_HERO )
% ], ~$ S8 g, p# {; K/ V nPoint += 390; C! c$ F) L8 z R- F; S. C& N6 q. W
, {8 ]$ W p/ X& c
AddSkillPoint( nPoint );
: Q X/ m/ T+ S, m% g, U m_nLevel = nLevel;
0 R0 k( ~3 n7 a$ b- q# \8 r/ L4 F6 K$ [
SetJobLevel( nLevel, nJob );
& s8 W3 ]* q7 h! g* \ m_nDeathLevel = nLevel;: _# y$ E+ Y4 q( g: i& }9 z
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ `, P" e/ ]5 Q! c: o2 F
if(IsMaster())
. t% @' x- M, Q* B7 _9 e _ {
+ b) A, U8 p! U1 S; O, w h int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. \5 o% e- I7 d+ @6 y& t2 h if( nLevel > 59 && nLevel < 72 ). ~ [& R- Z0 c! t6 ?; o- g% n
dwTmpSkLevel = 1;
# \! C. }6 o( U N/ A3 N( P else if( nLevel > 71 && nLevel < 84 )0 \( D) l# P+ X* f
dwTmpSkLevel = 2;4 W* Q. H9 T7 t ^: d4 I; g C& I7 Z
else if( nLevel > 83 && nLevel < 96 )
+ t* Y( X# s( G+ N7 M& M. r4 x dwTmpSkLevel = 3;8 H/ w& |$ O7 T; B! R
else if( nLevel > 95 && nLevel < 108 )
5 j2 B# S" @+ ?0 |: `6 } dwTmpSkLevel = 4;- ]& F$ B; P* N8 E3 m, F
else if( nLevel > 107 && nLevel < 120 )+ K' J |3 A1 a
dwTmpSkLevel = 5;: @8 V4 |$ j- b& W1 X* Z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " ^% e7 S) S' c0 Z8 F& R
{ & ]; Y* s' s6 L
LPSKILL lpSkill = &(m_aJobSkill);* N9 i+ K; k0 A- }
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 I3 w) j2 u2 K2 x3 Q
{
- ~7 {8 {% ?2 N: d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, y) M2 d/ L0 H5 `5 f8 i* R/ K if( pSkillProp == NULL )
$ b. v' }( `' r; t' r. h+ s7 a continue;
) P) G: p9 g; R# ^) d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: i" z- s% o, Q2 V6 `6 e3 \: d continue;/ p- Q5 t1 G3 S6 J
lpSkill->dwLevel = dwTmpSkLevel;
- J, w. k" K# a }
! k) M2 P7 A; S/ F* A' ~/ v9 ` }+ l3 L. t* _) u4 H2 C
}- J* @6 G) e. z+ l$ D; r1 m: B1 M, z2 S0 f
else if(IsHero())
1 Y8 ?' |4 v0 |. } K& ?0 ? {
$ H8 j7 X- h) i) C* P' b1 G for( int i = 0; i < MAX_SKILL_JOB; i++ )
* a2 M/ \8 W* y7 v- H' N {
; [3 d( m) ~6 P LPSKILL lpSkill = &(m_aJobSkill);
( s4 }5 D, [' B) T if( lpSkill && lpSkill->dwSkill != NULL_ID )1 j& z! Q6 K' e
{- X. s* R9 J* Y5 x1 n4 C2 S( Z9 H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 t+ o* t ^9 Z9 T5 Y7 p
if( pSkillProp == NULL )
: Q& v1 _. j3 M2 g# p& q0 a9 h continue;
# r" W3 `2 v. K7 ^0 O if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 Q7 K+ Z% S3 d& U# F continue;# `6 U* R! @; a. B. S1 o
lpSkill->dwLevel = 5;
9 m' h: ] E; n! D9 c: [( D0 K: y6 e2 A }& `6 e9 f! n% S; m: x% m! Q
}
' l( ], }0 J3 L3 W7 [ }! J' z# D3 H# q6 z
else if(IsLegendHero())
- T& {3 R$ N- z% C$ S" M P {; h/ e6 w* J M+ Q( g" {! n
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 E$ R# N2 x: J; I; q* { {
, p. v2 Q4 p! u2 g% c) a j* S LPSKILL lpSkill = &(m_aJobSkill);
7 }0 p) Y1 M) X _8 X% t# s if( lpSkill && lpSkill->dwSkill != NULL_ID )- V+ p: T3 }& _7 [' l5 r
{) k0 h% k) ]) Y' X) D" Y# Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 r0 r6 \1 r w" E: v: Y if( pSkillProp == NULL )
) o7 I- f& r) b continue;! u+ q S8 X# J7 C' W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. \+ G" b0 Z* }6 i6 g continue;
9 M" ?. D( O" P0 `/ V9 @6 f lpSkill->dwLevel = 5;
9 r' B2 q3 Y+ K' X( Z5 S }
+ G+ K# l! H1 Q5 E- Y* `) Q* q" z }$ t o3 O" x9 C
}& `3 g# e$ l" {+ M+ m) u
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! o |8 S* i& V& X! U if( bGamma )
' |* L& P. R$ d% K, t {
3 K$ l6 B- k# W$ {( M* A8 O m_nExp1 = 0;2 _: b, e/ M ?- i( O% i( l2 j
}) j9 b8 Y Z4 T8 F
6 Y3 B/ W. z" ^+ ]7 j' n7 F ( (CUser*)this )->AddSetChangeJob( nJob );
0 q8 C5 l" I0 S, ~& f g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 x# j4 s3 s& @" Y+ g
2 A Q6 j2 e1 p8 k: ~# n
+ q/ t/ Q' |% r) F+ s7 J
#if __VER >= 11 // __SYS_PLAYER_DATA
9 r$ O+ w7 Q, T/ W* ]% Z0 x, E g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' [4 G9 c# X# G" B4 b+ r
#else // __SYS_PLAYER_DATA% q) g+ r# [& q3 r9 W
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ _& M: B8 Y1 F B6 [ Y1 A! `% n g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, _* c' f1 [0 B+ x- S. p& i/ B3 p
if( m_idGuild != 0 )
- O! W' W' B+ N6 ^ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( p& y4 J, e1 N! a9 B6 n" h4 l#endif // __SYS_PLAYER_DATA
6 p4 P" V( `, x" q4 Z! }$ x SetHitPoint( GetMaxHitPoint() );5 {9 }. I, G& S. I, \3 C
SetManaPoint( GetMaxManaPoint() );
7 o0 m! p% T7 z- e' M SetFatiguePoint( GetMaxFatiguePoint() );3 ^* D$ a$ R. |" Y0 v+ C1 z
if( nJob >= 1 && nJob <= 4 )1 W- k& F% m* S+ J$ Q
{
; q+ g4 q. Y5 o0 y m_nStr = m_nSta = m_nDex = m_nInt = 15;, k y4 c0 |- W) a9 v, z4 G$ ^
m_nRemainGP = 28;( d+ s; ~. P4 `; I7 P- u r$ s
}
* S% I+ N2 f+ ]# f5 A if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ c' e0 h* U% g
{+ d8 i" x. x Q2 F' G% Q) H& b0 n
m_nRemainGP = 118;3 Y3 e7 t: X9 s# R1 W/ n1 x
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
% t4 o L. e% z2 z: R. `8 A m_nStr = m_nSta = m_nDex = m_nInt = 15;
% D9 ]; q5 y3 q9 b/ l }
+ E7 H- D4 a. U2 y' o) t if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )$ N" Q% k( @% T" d- l2 W8 X
{. g& a% o; ~( d" D4 x5 P' T# d3 i
CItemElem itemelem;
) x% K4 g" l/ e9 U9 }) P itemelem.m_nItemNum = 1;5 e- U0 N( {% p0 Y/ p. N2 L" L% f
itemelem.m_bCharged = TRUE;
4 H& t. L; z% B V2 v, a' m BYTE nID;5 f& A0 h4 r4 y: R
: k/ o3 j* g/ k' a {. Z# W
if( nJob == JOB_MENTALIST_HERO )
8 v) e2 }1 Q( b9 h# N9 [ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 D. y8 h5 E+ O$ M/ l
if( nJob == JOB_FORCEMASTER_HERO )
2 A8 ~0 B: ~- R& r. G! T itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ l% v2 P& v9 M" s( ~& K7 f; a1 l9 v7 ?
( ( CUser*)this)->CreateItem( &itemelem, &nID );' [( I0 \6 W5 v* B4 ^7 F
}
+ T; b- G i/ l$ l g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 J" X* Q/ Y: k& X2 Z ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
7 w$ ~! ~. G$ f8 W% H: \- v3 G ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
4 ~) B& B" @6 i. W ~; H /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );0 U7 F8 p: [$ M
( (CUser*)this )->AddTaskBar();*/, h! L5 N2 |8 ~ j
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! e" y+ m2 r G: R
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ z k' b3 N2 Z: K9 b ((CUser*)this)->CheckHonorStat();
' p9 g4 E3 |, v9 u0 `2 I ((CUser*)this)->AddHonorListAck();
Z+ x: |! Z. r g_UserMng.AddHonorTitleChange( this, m_nHonor);
1 c1 @; t" q, ^) f#endif // __HONORABLE_TITLE // ′Tà?+ X( ^ H3 S! ?/ L
}+ t- B* z o5 g- f
#endif // __WORLDSERVER
: b7 x; q& l+ a* d} 3 w2 i6 R; U& S. D# o
* c ^) }4 m" p) H
然后你进入functextcmd.cpp并添加以下
6 k1 B- V6 _. d: N9 f' i# I. C' V3 z0 I' p5 `4 ?* }1 S
代码:
# r" e8 Z- U; @3 [( \ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 K5 W) g% g/ K7 }8 w
下面插入
5 M) Q; ^% y1 C; [# BON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 ^) j0 N& o( a+ H8 f9 a+ r* x
3 @2 E7 Q$ T; y, j7 ?然后你去
* g- i' c+ J, k0 S8 n8 o$ S3 J" }- s+ R9 S5 w) W P% T+ l
代码:
- V3 J4 |+ _3 h! F2 }0 @( z代码1 S0 _" _2 b- K. l( d
BOOL TextCmd_ClearPropose( CScanner & s )
& ?/ u1 u+ f( L0 [7 Q& @5 P{% f/ K, E7 c9 H( C# ]1 f( v
#ifdef __WORLDSERVER
" b! b8 }0 T0 i/ `- T+ r CUser* pUser = (CUser*)s.dwValue;
- w5 t, c' G# s0 [9 D0 A g_dpDBClient.SendClearPropose();+ F- h" m8 `8 q+ l( v& a
#endif // __WORLDSERVER d I, f" X. S, n: S1 Z1 M7 y$ E
return TRUE;
: b. u N/ g( Z- A: G+ w}
9 I8 I+ U& C4 q u下面插入7 ~0 \* T8 r# B: G* m) N, h; _/ r5 P
BOOL TextCmd_rebirth( CScanner& scanner )* o% i! k: E; [, A
{
% F7 `# P8 F/ y/ y6 l- t" `#ifdef __WORLDSERVER1 l" T& z3 P2 l
CUser *pUser;
& G% \! s. u" o( kpUser = (CUser*)scanner.dwValue;
8 i# j; I$ d. Q0 [* V: I8 Gif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& z5 Y( J: E2 u! T
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 o* ~4 i+ y( {, f# d
else2 M; J. x0 I9 a2 R
pUser->AddText("你还未达到重生条件!");1 j9 \ j6 n7 d' z
#endif" U5 N" K. L0 c% c: P8 _
return TRUE;
) t) N7 W5 V/ t& Q} ! k/ ]3 F; j8 Z' l9 b
1 j. i) T0 x6 _& K: F" r s$ h% z- o/ q/ q: N. l: C2 G/ @: n* s
1 D" ?& m0 r2 i: `2 V( x4 L
( F" s+ Y# `! B% Y1 [$ e |
|