|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel) t j. ?: c3 k+ M# _; G3 Q% Z
) I; d, j: N: U" W2 C, ~
Mover.h. ~3 k; w+ P9 E% W
代码:
* M+ X: Z) C6 [; `" v" s找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü j- F9 Y( n$ L( `' Z, B* W5 B
5 G2 t: W) Z* {2 g; j
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- y: l. F" |) Y$ c, v7 p% N7 X T& a) b% b
然后你去mover.cpp添加
2 M% y" G: P9 Y/ d
. `! N0 Y3 q z W代码:" E9 C. Q! w3 b1 Z8 ?. x- i
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 c0 \ D& J; e' T2 r4 x7 m{* r0 [3 L) P& R. x' j1 H
#ifdef __WORLDSERVER
2 @ q$ L7 Z% A( |1 P- w9 m% ? // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó+ ?. T8 S8 h3 d# M
MoverProp* pProp = GetProp();
( v' r0 ]# x; [5 |2 Z1 |2 U if( pProp ): _, L" m5 {: s$ o! U9 i
{- V0 [0 L; A- K/ o' s+ M* E
if( nJob > 0 && nJob < MAX_LEGEND_HERO )2 _) W4 M8 U9 m& ^* q. x& {6 ]
{
/ S$ l& m8 n+ q( x) ^' w$ ` AddChangeJob( nJob );
# G+ d- C9 O3 m% _3 m* s, | }else{
0 L+ D a* t& _9 Q8 D return;
- W% g1 ?& {+ d5 b }
% m; e9 H8 H0 _9 d+ f* \ G3 S' A int nPoint = 0;/ g% h& W+ r* [
if( m_nJob == JOB_MERCENARY )& ?9 N' b" X" v9 f
nPoint += 40;; `( l; Y$ J5 ^8 X+ `
else if( m_nJob == JOB_ACROBAT )
, S/ q: K t9 e z nPoint += 50;# C9 C. ]! A2 j9 Z
else if( m_nJob == JOB_ASSIST ). v+ `7 b9 T `0 z2 y0 u- J
nPoint += 60;
3 c. l/ d8 W9 M0 f1 J else if( m_nJob == JOB_MAGICIAN ) a* y# O; i, h4 v+ ?, ?" Z
nPoint += 90;" B# Z9 v; B/ l7 y; J
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )' P8 `, f; ]% J$ e; i9 @0 ?- `0 W
nPoint += 120;& ]8 k" H6 ^' c6 f P
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 V. f9 S, \: b* v# w
nPoint += 150;
1 V* X$ h) p/ r else if( m_nJob == JOB_RINGMASTER )9 n! _/ @) H& ?" t! n: d& y
nPoint += 160;3 ]) i. I- B: l
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- f& {: i3 \( e7 ]8 F
nPoint += 180;4 X1 z9 D% t5 M
else if( m_nJob == JOB_ELEMENTOR )- T& a- V, g: W% ]* Z$ @
nPoint += 390;5 X/ y, W; y6 K3 D. E& F
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 [0 i4 l0 z7 ?
nPoint += 120;# y+ n# [" @1 K
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )9 Q- w! Y7 Q6 N7 b5 T b, d
nPoint += 150;3 `' j4 I- ~) U( h% K; a+ o2 ~
else if( nJob == JOB_FLORIST_HERO )1 ?$ D+ b7 E3 r' }9 o: K
nPoint += 160;
* C6 b4 p3 T1 r( e1 ]8 O; W else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 h' J, K+ {! ~ nPoint += 180;
8 g5 a% k+ O% r3 b( X& j, b else if( nJob == JOB_ELEMENTORLORD_HERO )
3 n% [! }$ J8 U9 P/ B( _! T nPoint += 390;" P1 J9 ~( n+ O) J# Z$ f
$ z3 h4 `" l$ J# I8 u2 |
AddSkillPoint( nPoint );
" m0 y# i* P; g0 p" r+ D& b m_nLevel = nLevel;
y/ _; M$ U* t$ w3 Q8 u q: g; Z5 r. ?9 n
SetJobLevel( nLevel, nJob );- x4 H: f& r* S" |% [
m_nDeathLevel = nLevel;' b! q9 H: r# k/ N7 P
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 w' u6 L' n% h9 a) u* f
if(IsMaster())* x0 L1 N9 P$ }# o0 g h
{
$ z% f- X) A; E! L0 O int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 S7 F, o ]- S+ k5 H
if( nLevel > 59 && nLevel < 72 )
! V H0 H, c4 @ dwTmpSkLevel = 1;
) T* a; {& ^* y( y& a7 V# J# _4 q else if( nLevel > 71 && nLevel < 84 )
. Y" ?2 I& a1 a U/ G5 b5 S dwTmpSkLevel = 2;. F1 X& @+ p; K+ P( [4 P0 ]3 j
else if( nLevel > 83 && nLevel < 96 )
8 n( o5 Z- ^4 T2 S7 q' S& F& } dwTmpSkLevel = 3;+ M7 H3 [% I9 F) w( e, l) k
else if( nLevel > 95 && nLevel < 108 )& W! s3 W+ R7 W x& g+ {) m, w+ f; Q9 l
dwTmpSkLevel = 4;
# I) z2 n; n Z* } else if( nLevel > 107 && nLevel < 120 ); ` O& e) R& F. L* m1 ~: a
dwTmpSkLevel = 5;
/ ]6 l! A2 J$ D! n1 t' y for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 T) s# e2 u) M. e5 g { & `0 o3 u6 F2 K9 D F( [
LPSKILL lpSkill = &(m_aJobSkill);
7 A% Q* T) [: f1 M* e) o3 L; a if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 c' M) u3 Q. t! w {) \: M! d n0 z8 C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" v7 b9 I2 b1 A; j( p* x if( pSkillProp == NULL )! \* w; m' k# _5 P+ P3 j% r# \
continue;' c" k0 q' U4 k5 M$ G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* |; G* W N4 U
continue;/ u2 p* S, Y6 q0 d# S
lpSkill->dwLevel = dwTmpSkLevel; U$ V/ B. O7 l+ P5 p" O7 m! B# V$ F
}
' d4 [8 b) A# ^$ N) h: ? }! }7 W5 ~6 i) i
}4 q! d% a# d4 g0 ?
else if(IsHero()); g) ~3 K; `; O; Y7 b
{& U. y s7 j5 P: ^
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 Z% f a$ g6 j* ?
{ ' I9 H6 y9 p0 K* B/ }' J
LPSKILL lpSkill = &(m_aJobSkill);
4 D( ^, B* \/ S1 Q0 Q+ r5 H if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 p; [ g# e# q* s- N, ?; K0 F, V, @) O {
/ Q; G1 M1 W! V8 J D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% k/ A |3 y& z; Y if( pSkillProp == NULL )
- w0 v6 i. S( ~( S) r continue;
9 U# s+ v- Y9 c: F% p2 e7 G% @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 Y; n4 v5 |' ^# A. G( R
continue;7 Y2 ]0 w3 ~/ a! X
lpSkill->dwLevel = 5;
4 M! e( B# r* m5 r }5 m3 H1 n1 w' `# z4 b
}
; s7 j% w: P7 ?0 m } ~( n$ {5 \- H7 i
else if(IsLegendHero())
* h8 C4 N2 s/ i0 N6 a! Z {
9 a/ M. D; T6 S5 d0 C for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 |6 x8 m" r" Z { : m8 z; j; S" A5 R9 X. b- |
LPSKILL lpSkill = &(m_aJobSkill);
6 `# D; B0 S, n3 X/ C; ?0 E if( lpSkill && lpSkill->dwSkill != NULL_ID )2 g/ r; N5 s/ A% X8 i
{+ _ E6 G( }/ W: K9 ]+ f/ O! @% z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - A, Q4 H- M/ Y3 c, d5 d1 d
if( pSkillProp == NULL )
- O! i; t4 Y5 P& L. ^ continue;
/ w6 ]9 ^( B% D; U) b+ b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 p6 i. n+ F( e( v2 s) C# n9 Q continue;* [: Z3 m+ e: n4 u/ l2 _7 q4 j
lpSkill->dwLevel = 5;
7 R% |$ O ?7 L' Q; | }
$ u/ H9 m, d7 |$ u) s3 l2 U6 b- I0 O6 } }% T+ {0 ~8 {" N; n w: Q
}. y9 A! i: D0 e2 g) P2 L0 I, j
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. b$ G% q) t7 [& P0 j
if( bGamma )! O0 s! E) P1 ~
{
$ s$ c' F8 b. T+ @: w m_nExp1 = 0;
/ U& B9 B! i2 q" A- a& W+ u }
0 k/ C% m! `, a) @( _1 }" @+ M( y8 r' u3 c3 ^! B
( (CUser*)this )->AddSetChangeJob( nJob );
3 s0 i3 t, w) z g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' |+ A- N+ m: ~' e
& r7 w* S# D% L8 s" _% f0 m4 d* c
: F) p- f% s3 L& _2 q8 C1 X+ o#if __VER >= 11 // __SYS_PLAYER_DATA# F# b% |- D- \4 m
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ m8 ^2 b: n- i#else // __SYS_PLAYER_DATA
: w8 u0 _: U' e2 k. m, n g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ W' I; H$ n3 u/ c9 K
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );5 }% {0 t0 B7 i
if( m_idGuild != 0 )5 d5 t2 P, L7 C- s! @
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );2 x0 ?$ ]. U( ?4 T
#endif // __SYS_PLAYER_DATA
5 z8 y. I# K' j SetHitPoint( GetMaxHitPoint() );( Z, C1 c% P5 {# C& u
SetManaPoint( GetMaxManaPoint() );2 _6 B; ]4 i6 \1 f
SetFatiguePoint( GetMaxFatiguePoint() );
+ N5 f+ ]# \9 }5 B' d# ?6 I if( nJob >= 1 && nJob <= 4 )
& i5 D. ~# m0 c2 L/ e {
% P, Q1 H2 l) ? m_nStr = m_nSta = m_nDex = m_nInt = 15;
* P: u8 }6 w% ^% \$ } m_nRemainGP = 28;
4 J7 S& A( ]4 x% s: r' D9 y! m }
! ~* h7 ?- A1 u/ i, T2 _1 k if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ). ?( B* I- @% r! B4 X
{
. l; E1 y6 s9 r( T3 M( R' n o m_nRemainGP = 118;
- l, f1 k- W: o3 O9 D //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: \/ O1 e; ?# ]9 ]2 p v& O
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 z2 Y d6 O" v4 s }
7 o- q1 ^6 l+ U5 m" \, |. J9 a if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 C4 ^8 I5 M$ k: S( [# z; b
{) K# M- y) P/ h8 C
CItemElem itemelem;/ A& T9 p" H7 O% F s
itemelem.m_nItemNum = 1;) @. q2 F8 }" j$ I9 F, B7 ^2 W
itemelem.m_bCharged = TRUE;
2 |8 U+ F( N& B' O* X1 F4 Y BYTE nID;
2 I3 A. S9 ~& r4 G+ M0 F( }6 ?. V4 J5 F2 I+ f4 s
if( nJob == JOB_MENTALIST_HERO )
( `( @) s, I; M3 W0 D itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;- Q0 G8 @: S; A
if( nJob == JOB_FORCEMASTER_HERO )# H& d- C. q5 q8 p6 \4 {6 J
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* f) r- r( M7 f$ ~7 T8 N# `
1 k# u' f) ] A9 @ d+ } ( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 }/ |& q* \7 ?* u1 T }9 n4 U- P! D P% {' M
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 [# W5 M3 Z f
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );1 P$ V& j# l ?- }. Y
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 u) Y7 B7 E, Q8 N$ Z+ b0 H /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );' ]) Z+ J' Y% t) n8 V
( (CUser*)this )->AddTaskBar();*/
4 e+ K" @' _* j% i0 K1 [# t6 T ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 H/ T. \) V' t# D' ]
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* t* @1 ^, G) f/ N4 T* [4 O; z4 T ((CUser*)this)->CheckHonorStat();
9 e; ^* l2 ^8 k0 s7 {! b7 X+ ]/ f ((CUser*)this)->AddHonorListAck();5 r8 h; b6 G& B) I: ?
g_UserMng.AddHonorTitleChange( this, m_nHonor);" i/ s$ g# h4 ]: c& n7 ]
#endif // __HONORABLE_TITLE // ′Tà?
' c2 }. m8 f5 N* k+ ?1 V G4 ` }
1 j( }$ S# j9 g+ t* [#endif // __WORLDSERVER
* a4 R, k/ R4 \' j' r4 v} 4 f( }8 R$ J% S5 O% L9 h! J
( a2 L5 E$ |+ k( i$ u- w$ R+ H
然后你进入functextcmd.cpp并添加以下
/ s7 u8 }: Y+ D$ o8 U8 Z
& {2 P- y- S7 W" }1 N3 u( r代码:
7 ]* Q8 }- x/ S2 _4 e! n2 TON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ p1 G! |7 ]/ _* E- Y, f下面插入% K$ P) L5 X1 T2 u+ R/ v1 r+ H1 q
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, L1 a2 C; C5 O% ^, ]
9 Z5 ]. x+ j" G( h3 M* x然后你去
" v8 z2 P! X/ S3 Q4 Z
5 V( b" ^5 c; e7 h1 `代码:) D* u: y2 c3 d0 x1 S" `; B
代码$ E' U8 B- k9 n* d f1 c
BOOL TextCmd_ClearPropose( CScanner & s ): p% Q3 @3 E$ g+ Y6 u( I
{8 e4 s" f: L* Q: b9 l: _/ s
#ifdef __WORLDSERVER
l1 {7 p9 }4 A! l* u T2 j CUser* pUser = (CUser*)s.dwValue;
- U) O" `5 K6 d; ~' T. E( R g_dpDBClient.SendClearPropose();
/ t L7 m! b$ J; U. h1 b#endif // __WORLDSERVER6 C+ N- P( s0 t; F" u
return TRUE;
% `9 c! _- f( A( n$ J7 D}: y) g9 O6 Y7 x. G
下面插入
! p8 p. J: o: F* E( r- XBOOL TextCmd_rebirth( CScanner& scanner )
$ C# m9 @& x0 R; i& F! E{
4 |2 O3 V5 d8 \8 `0 `' ]+ p6 T( Z#ifdef __WORLDSERVER
5 Q( @0 ~) @, BCUser *pUser;3 P2 D, Q: B6 u: b: ~7 }7 i C
pUser = (CUser*)scanner.dwValue;' Z) {$ z. w Q- e5 e5 _
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& ]$ m/ ^ {6 WpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);4 h8 p" H* i9 f: [, c! L- b8 h* f) ~
else
) m# j( O/ K4 ?; t0 ?6 n& M! S2 zpUser->AddText("你还未达到重生条件!");1 S, M5 I0 R+ t$ b" v
#endif
. B, [" l" J1 `return TRUE;! W; \( y, ^+ c, T2 z* S
} 2 h6 Z/ [' K$ Y1 V- C
! K" }7 U' B. g& o: S
2 b- W3 Y( M! G/ v" [6 Q% z+ T% ^1 F. C) h. F6 E( B, A0 H, g$ x
0 J) B+ U; a8 D' x9 L: _ |
|