|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# L; \" r6 i+ e: h/ e! ~; W
6 S( u7 x7 O) g% A8 WMover.h) n, [+ C6 Z4 y5 A8 }: w% X" Z) x& r& |
代码:7 ]6 M( K& a, W3 L( `! T
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
5 k1 \% P& c9 E. K3 P. C6 w
+ C- }; ~& X" M& ?" n6 U下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ m) G) E( |# Y: j' ^* A5 L# W( f3 o0 \$ }7 Q$ n7 K% ?# D
然后你去mover.cpp添加
+ }2 M! f; M% X! `4 I M5 L" T! t" N4 e
代码:
9 m0 Q: H8 P3 b% t6 m' U& |1 evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ) L/ m7 I$ U: O7 g/ e- M! v
{* \9 k' y" [1 I9 c" ]8 X
#ifdef __WORLDSERVER0 B* C: K6 n7 i8 L
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó" b8 G4 x# {9 T' L1 Z% S* `
MoverProp* pProp = GetProp();
; U: F# J2 d" t3 R. m0 O! V if( pProp )% G+ i+ B6 l4 C$ Y: V5 t
{
. |) E6 T: p! r8 f if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 z. @! B( b9 I {4 g# o: G6 @6 v) O, j \
AddChangeJob( nJob );; ~2 Q5 Z# s8 R5 U. c6 ~
}else{
. V: e. @9 v: o6 m% |. m8 D return;/ X# J/ q4 L' Y- q
}
% a8 T) j X) N- W1 B5 i& ? int nPoint = 0;4 B# _) t& F& |% n+ r* _3 l
if( m_nJob == JOB_MERCENARY )7 `/ X% |- R3 v- B
nPoint += 40;
! c# f" ~' X* d( b& l+ l7 H else if( m_nJob == JOB_ACROBAT )
0 @6 a% h1 }# ]! v nPoint += 50;+ S& d6 e, E1 p+ I( u& I4 E- S
else if( m_nJob == JOB_ASSIST )
, y& T5 b3 Z- b \# G0 { nPoint += 60;
, q, r8 ]3 v! Y else if( m_nJob == JOB_MAGICIAN )
6 s. P- V- u: N. q# _; X% _ nPoint += 90;
) n) G( _/ A7 g7 E+ o else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: n. z# J O. ] nPoint += 120;/ |7 s3 B! H$ H" s+ ], I
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. N' s+ n! c# M6 O nPoint += 150;4 Y( M' _6 Z7 V% p5 b
else if( m_nJob == JOB_RINGMASTER )
7 U+ c2 n& |- B nPoint += 160;
2 v( D2 m! a" ~+ s else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ): @% E: T0 G! h; h
nPoint += 180;
% O' P) _. Y. m: h, Y& m else if( m_nJob == JOB_ELEMENTOR )
; P! b( n @2 l( Z( ?9 X7 ] nPoint += 390;
2 Q" Z/ |8 L3 K! y) m else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). V9 D; r O, |4 k0 B, j4 a1 q! p
nPoint += 120;/ p) |3 L% r0 Y6 M) F4 `
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )7 q0 ~$ ?8 Y9 p- c3 q
nPoint += 150;6 Q+ x: B. e" L1 p# N6 S, P& T A
else if( nJob == JOB_FLORIST_HERO )0 a4 L% S4 _" f
nPoint += 160;
6 l3 o2 s5 d l' {% {3 i9 J6 E* E2 _$ V& K else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )* I/ O* v- m7 v2 p4 w. j1 d
nPoint += 180;0 }7 S% b: l3 x F/ z
else if( nJob == JOB_ELEMENTORLORD_HERO )4 A% D2 ?" t2 T n9 k0 P
nPoint += 390;
. h" T+ s5 E' p- U5 V2 W% t. k# _* w3 y; N% A3 b: z$ O q
AddSkillPoint( nPoint );0 I$ |# e" e f2 n* N. i( G( y
m_nLevel = nLevel;
3 |5 G+ @" j" r: X7 ]6 ?+ m' x" }+ ]
SetJobLevel( nLevel, nJob );
& Q. L4 v! n% i |& L2 | m_nDeathLevel = nLevel;* E; g4 t4 }; p5 v5 v4 B
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 p4 e& O0 _8 c G7 K. E if(IsMaster()). L: a8 C; g3 w8 s, T4 t4 ~
{! U# _1 K) L8 N
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 N/ z, O0 d9 g C+ z if( nLevel > 59 && nLevel < 72 )
3 `0 J$ R# k% A4 P8 e dwTmpSkLevel = 1;
( A& a" r% g* a else if( nLevel > 71 && nLevel < 84 )
; k5 z+ {7 C+ K+ h# u dwTmpSkLevel = 2;
* n* d- ^4 ^& f" a& P+ C5 n+ C else if( nLevel > 83 && nLevel < 96 )3 ~: D5 H. d H* g5 Z
dwTmpSkLevel = 3;. r3 `6 Z7 I" `" e* R; v7 ~ k# X
else if( nLevel > 95 && nLevel < 108 )1 Q+ G; d4 x- f8 e! V5 {
dwTmpSkLevel = 4;* B' s. n8 j4 Y; n) c. y
else if( nLevel > 107 && nLevel < 120 )7 _6 @4 P% @+ O2 y
dwTmpSkLevel = 5;
& A7 g) ?+ P5 y for( int i = 0; i < MAX_SKILL_JOB; i++ ) " u2 u/ Y5 g& n! A& {& ]
{ 5 f4 Q: d Q) J, R. `; w
LPSKILL lpSkill = &(m_aJobSkill);+ L7 Y1 F+ t$ g1 Q V2 Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' X5 k$ ~1 f ] a- Y {
( O E6 n+ B1 O( Y( S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % w3 S+ {. ~, s
if( pSkillProp == NULL )
i) q9 v: Y$ k/ u8 T" ? continue;% m! i0 {0 ], F6 s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 V! q; y: ?: y" P X+ j continue;
* }0 l5 ]$ |$ ^, D lpSkill->dwLevel = dwTmpSkLevel;
& U7 J5 D* y0 M7 ]7 |; R' g* u& u. k }% @9 E! R1 }% H1 F' E
}* c; b/ n% y9 ^6 q& e; O1 \
}: t2 }0 S1 y% N' ~2 U( j, F% I
else if(IsHero())
, M* L2 \" }. ~1 J9 Q {# w- r$ |& G* i$ r9 [& n! \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- p- T2 ^$ D: G- W5 G% O2 q; J {
# ~% s1 E2 j# h1 I+ T* s; b, U LPSKILL lpSkill = &(m_aJobSkill);
$ V2 v4 Q' K* v) j if( lpSkill && lpSkill->dwSkill != NULL_ID )
* Y5 F/ Z h" U! K ? Z {
/ x- N2 s& K6 ~. I5 b. i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 A- l1 ^1 B3 G$ o if( pSkillProp == NULL )
) O: P& d( L( `# E' c% |# P5 g continue;
, L S# v* P: Z/ a" w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! g6 X- @! t8 E# a& ^ continue;( Y/ Q& ?6 B9 n1 k& Q
lpSkill->dwLevel = 5;9 s" V9 V" v( z% W4 J9 x% q
}2 Z; n% L, |7 p2 X' u2 S3 [
}
6 K( \) Q4 w' \# e' ]5 U }" \: U$ N+ A* W9 R) m2 G
else if(IsLegendHero())
( J( ^6 q. ]5 @# d. r4 g0 Y' b {/ o6 s4 D, Y; G4 c5 k9 Q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 d9 z3 z& U. N6 k! S S( u
{
( e% o# U) n% z i& P LPSKILL lpSkill = &(m_aJobSkill);1 ^; ~( c/ k/ C
if( lpSkill && lpSkill->dwSkill != NULL_ID ). M+ m- M8 d! j
{
C, Z" Z, S3 ~) c. X5 ~& s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 ]: A x: m7 _1 K if( pSkillProp == NULL )
6 W8 u( V) A. s7 `. Q continue;( x/ p% ?3 Q4 b+ @ r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) m7 @, H' [0 ^$ z1 h& `" b* T$ B continue;
6 m/ K- [! }4 t$ g/ F; J( O lpSkill->dwLevel = 5; X; Z" }& q6 b( i2 a6 L' c
}! d7 x, z3 W# I& n! |
}% d1 d; ]2 K. M+ V0 |8 X7 o3 y- F& _
}
1 e0 c+ W/ Y3 F k& H/ ]#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- L9 w% w& [. h! Z( ^
if( bGamma )
& c0 N4 U+ z6 w# h( i) g0 n { L, d8 H8 n6 L/ Y( m
m_nExp1 = 0;/ J1 d9 k" z# Z+ K' a
}* n7 M. r* r7 t# Q8 v
" s- e2 _% k" h# |7 }1 j ( (CUser*)this )->AddSetChangeJob( nJob );
" i2 _+ O% _, o1 R% Q1 f g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" h: k& o( q$ A- [! d' u0 ~- V; t0 c4 n6 y
9 _' Q! x( ^9 K* {( w, s) j#if __VER >= 11 // __SYS_PLAYER_DATA
" U6 L( z- G% N* Z9 R g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* b+ p9 V6 i) e( N/ o#else // __SYS_PLAYER_DATA# A, ^* n! t5 V% V, T3 N
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
4 I3 n% y2 c$ r9 R3 C+ } g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 }7 Y! |5 g2 M8 c6 e* C
if( m_idGuild != 0 )
& n& k4 {& R# T, ]. m( @) f g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );$ T; R! h5 L8 u8 V H
#endif // __SYS_PLAYER_DATA4 G4 E5 _: o: i' N: a
SetHitPoint( GetMaxHitPoint() );
' g0 N! @9 K0 r1 f6 E SetManaPoint( GetMaxManaPoint() );
" {- ~& j" n1 @9 T! o$ i SetFatiguePoint( GetMaxFatiguePoint() );" T3 i$ I* w( Z! x% F8 |
if( nJob >= 1 && nJob <= 4 )- }9 t6 V5 I( L* N' ^8 a2 w4 k
{- f& ?/ p( G- H* [+ f* f2 O
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 L3 N" ~6 ^9 Z; b6 V5 E1 P: S m_nRemainGP = 28;+ U8 e% x' `6 Q7 m/ Y
}2 f$ S7 h8 j1 x
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 ^# I" ]% i8 v {9 ]" z; l* Y% i2 X, w' _% [
m_nRemainGP = 118;7 z) T3 |9 e2 X w7 P
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;; d3 _6 X, d r, D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 K; s. e- Z0 g; ] B3 i }
! E0 p1 M0 n) g* a if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 Z9 l' Z! U( e3 x1 F
{' v ? w$ g( \3 s$ m0 u
CItemElem itemelem;1 _1 O. V" U3 U. |/ X- F9 q
itemelem.m_nItemNum = 1;
- e7 L* f( Y |" {" u itemelem.m_bCharged = TRUE;
) k* M, a# g# f/ f7 b$ o; H: O( c BYTE nID;0 j" i- h7 e7 Q; b- Y$ m
- p, d c8 i( B) E ~8 G8 z: Q
if( nJob == JOB_MENTALIST_HERO ) G5 f0 H4 J+ S3 }" x
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; D7 s5 b/ R7 f6 B8 S; X U5 [
if( nJob == JOB_FORCEMASTER_HERO )
3 h( t' D ]5 [7 o6 g itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) Y; K e' J# q( W
- E) g( X8 C( u8 v$ m ( ( CUser*)this)->CreateItem( &itemelem, &nID );
) X) ?( a- U+ Y3 q( T }
& g! K, m. w. [3 a3 _* o g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" \# X; u, G& w$ o# y }# m
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );( }% T2 t* @4 n9 c; K! D! m
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 A/ P: M4 e9 _
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 H' c2 w% d: ?# d v ( (CUser*)this )->AddTaskBar();*/) W: @$ y- h& j+ ^
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* Z% V. | z& R8 P3 s
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?! h6 V3 ^4 J! n# j7 [7 W4 T
((CUser*)this)->CheckHonorStat();
9 Y: ?& `6 j! j0 j2 e: a3 c ((CUser*)this)->AddHonorListAck();
2 r, g- j% }7 Q8 L8 i4 t g_UserMng.AddHonorTitleChange( this, m_nHonor);4 f7 i1 N3 ?; d4 F
#endif // __HONORABLE_TITLE // ′Tà?
. d0 z: R u" v( c$ @! R }
& P. R3 A9 s' W: o' c d+ A$ V#endif // __WORLDSERVER
K+ l2 m0 j1 g, V E# |5 n} ! V' T( F, ^0 Y' _9 Y4 c& V6 q; s
% H5 Q. y7 C# x$ K4 m3 i
然后你进入functextcmd.cpp并添加以下7 h4 E" A: ?% l/ H! n8 a4 G
+ K" S+ M6 ?: ?4 i代码:: E& F8 t/ _6 W# B7 d4 e1 v
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )( i' @2 e+ ~/ W9 e
下面插入3 n1 [0 A2 H: N2 ~% t/ b& [
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; P E* h: F% e' T2 M6 b) v' p/ ^! a2 ?* O* o+ [. F
然后你去
2 H* z9 N7 Z% T2 j
4 ]4 {4 }! |+ R8 p! x3 M代码:% r$ Z4 z+ L' B7 K: c
代码
4 T1 \. T% L- e8 pBOOL TextCmd_ClearPropose( CScanner & s ); k0 w4 I- b6 D; y' H! {3 [
{
/ w1 d0 W+ Z; Q1 N) `3 w! {#ifdef __WORLDSERVER# l: v; [' [% I, l/ \) \
CUser* pUser = (CUser*)s.dwValue;0 g1 F( Q7 _7 H" h0 g
g_dpDBClient.SendClearPropose();* P4 C. m: `# X" X- h" ]! m l
#endif // __WORLDSERVER
' U! e0 n5 f" e2 j return TRUE;
/ e# R, [3 c" G; f G}# F: {' H. c( ]# _% J/ ?8 J* i
下面插入. j4 l. `: Z1 C0 x6 V# g; ]
BOOL TextCmd_rebirth( CScanner& scanner )- {! l& a3 {$ x7 |" \6 X& k8 k' D" m
{
$ g/ ]: c: g6 T/ f#ifdef __WORLDSERVER
2 y0 S2 F. D& b3 Y1 `2 eCUser *pUser;
, B. r: O( y3 C+ G6 |pUser = (CUser*)scanner.dwValue;
3 F% m# O9 B4 l; Qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 s! T- {9 D4 }1 I) hpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
/ e2 T9 \ U+ H3 m$ _7 yelse( X" q$ s8 s, f
pUser->AddText("你还未达到重生条件!");
" P0 K% B' s+ k% {8 `#endif( Y8 o* |8 x% E$ f' x/ [
return TRUE;* c3 i1 T' |1 h7 L) |$ `! @7 h1 N2 H
} & o+ o1 N, x7 |$ F2 O* O
, P8 H m2 |3 j* {* M
4 u( k. j! v. l% {1 M- Y% T) N. i, ?6 k* c. A( c3 C
) s3 W3 m0 ?4 z |
|