|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 }# l; ] q+ W
% M4 ^& v3 }2 s9 oMover.h
( c, [. r* n+ Y* A, {' R- y. \代码:
4 y. f/ d( E7 f2 S- W找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- O9 q3 N1 ?7 j
7 Q) S: C' x4 R下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 |+ Z# o7 S% Y, ?% O- e* q6 \9 A
, \; C% Q$ ]/ e- ?然后你去mover.cpp添加
0 m3 ?$ X8 @5 V n Z# D R' [0 ^5 g4 Q
代码:1 u8 p: m8 F/ Y. E
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) J. c2 d3 ~* z{
" t1 X. O5 N) x( i( E/ F8 z#ifdef __WORLDSERVER
5 m2 f" p# v9 P3 z // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( b8 ^ F) J; }
MoverProp* pProp = GetProp();
9 C j4 ~- i$ ~! ~4 ~ if( pProp )
; E7 W% ]7 Q, H- \2 m/ R' J9 T$ M {1 S* P. u* _ z) d* ~
if( nJob > 0 && nJob < MAX_LEGEND_HERO )% X6 V8 Z) j4 u$ e$ h# a
{
2 G" e2 R. U5 s, G5 n: p: ] AddChangeJob( nJob );
' j, Y: _$ Z5 G$ Z }else{ Y9 [3 d/ f' L" v# W( Z; k
return;
& _/ S2 n& ]7 P1 t }
8 w: \8 S& |- O int nPoint = 0;
5 R% O+ }# ]2 V( T( | ]5 V/ f if( m_nJob == JOB_MERCENARY )8 `- |3 F, N5 q/ T
nPoint += 40;
$ y1 y* \+ n) _. \4 ]+ [7 F else if( m_nJob == JOB_ACROBAT )
+ }$ |& h: Y' F E' ?9 f4 l nPoint += 50;
4 X4 ]4 f( Y3 E# J1 o- ` else if( m_nJob == JOB_ASSIST )
Z, N2 X! w" c' g% r/ B$ M nPoint += 60;5 g6 Q, p7 J( c8 q, ~, s$ n
else if( m_nJob == JOB_MAGICIAN )( |% D9 L/ f5 _7 ^
nPoint += 90;6 t8 y2 T6 |3 K6 d
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 y+ ~: \$ x" y. V @- ]" m; t
nPoint += 120;
) ?% O8 T3 E P$ U else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& S; }1 V; b, `, @ f nPoint += 150;
/ N5 O6 M! k; E1 Z7 d6 ~ else if( m_nJob == JOB_RINGMASTER )+ M) q1 p# V. D) ~6 e+ h
nPoint += 160;4 D, [: z! q1 o# `- X0 R. L0 Y: R# O' V
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )2 v" ]8 s# Y! d( R( Q3 T
nPoint += 180;
7 z- u- @% p! d1 R else if( m_nJob == JOB_ELEMENTOR )
5 O" \* }* D& Y# z' @5 M6 H nPoint += 390;
9 n5 p$ T: X( o6 ` else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )4 |) {1 x* n$ t' k. z2 [0 |
nPoint += 120;0 W7 c0 w% D; e3 b+ v
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 P. I. J f4 O6 x+ F nPoint += 150;0 Z; T3 u$ L% E" M9 S4 u6 ^% C ?
else if( nJob == JOB_FLORIST_HERO )
. n5 ]$ C' y! t' l: G" O2 }: _ nPoint += 160; z0 q' p2 l3 F! u
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
+ h2 m0 m" }( x& S nPoint += 180;
) t! r% d6 g/ l' N! [ else if( nJob == JOB_ELEMENTORLORD_HERO )
$ P& g9 S( U G5 g/ H$ } nPoint += 390;6 V7 G$ S. D5 h$ r8 v. J
' P% ^4 x, [7 g! w
AddSkillPoint( nPoint ); o0 N0 t% y1 m5 Y% Y$ V
m_nLevel = nLevel;* `* o R5 n# Z3 H9 ]9 q2 q
4 J* D6 T: g; _ h( j% V8 B SetJobLevel( nLevel, nJob );
$ y T* [7 l# a/ T, R- B m_nDeathLevel = nLevel;. k# y* r: f! z: {* \2 |5 C' _
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 {$ L: K' A, ], c if(IsMaster())
" {/ \7 A$ G( X: v4 ] {
* M; m; a5 x' V+ F2 s2 i8 C int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 h8 @2 O j1 K/ B* d$ q! ]/ j
if( nLevel > 59 && nLevel < 72 ) W' \& H* H- \1 `7 S* z
dwTmpSkLevel = 1;
9 l! C( H F* i else if( nLevel > 71 && nLevel < 84 )
' s% ^$ |7 v+ J2 O8 D dwTmpSkLevel = 2;
3 a# [ }- N0 m8 p3 c else if( nLevel > 83 && nLevel < 96 )" l. V" O2 N: P0 ]# N. V2 [
dwTmpSkLevel = 3;
0 g/ u6 z0 ^3 A- d0 @' o else if( nLevel > 95 && nLevel < 108 )
) Y" v! ^ z1 x7 G5 M3 v dwTmpSkLevel = 4;
. {, Q) ~5 ^4 C: l( G h: i0 W5 M else if( nLevel > 107 && nLevel < 120 )
& B, j; w3 i/ @5 G$ q: ?8 r# a dwTmpSkLevel = 5;. g/ C6 S" S! O) G" p5 X/ i9 z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 R0 k2 A6 s. ^5 b {
- ?% O6 H: o4 _ LPSKILL lpSkill = &(m_aJobSkill);7 O' ]- W4 V+ _1 B) {) R
if( lpSkill && lpSkill->dwSkill != NULL_ID )# T0 C% h8 Y* e5 A2 C1 Y$ ~% M+ x9 q
{
! e0 ?1 p2 E2 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( r2 _$ t% j' q- [ if( pSkillProp == NULL )% d1 t8 Z- Y3 {! N; t+ ~
continue; A" |1 z' A" I. x: i! I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. g0 S. z& ?3 V5 }$ l! P5 ~ continue;; S# n4 T8 Y2 g$ Z% L
lpSkill->dwLevel = dwTmpSkLevel;. A' }. u4 W" V _6 K
}
' l# u# h2 I& W! q } [" s X! U% V1 h1 U
}( ?! {+ j( O9 g4 }6 }. s0 j
else if(IsHero())6 Z' ]( I" h$ V! k+ h: R7 A7 P5 H
{
: ]7 G6 x3 @/ S8 w+ n for( int i = 0; i < MAX_SKILL_JOB; i++ ) / o" i0 q0 ?4 @' u8 W8 }) R3 d
{ $ }; P$ l4 Z5 T) K. H: x
LPSKILL lpSkill = &(m_aJobSkill);
8 ^0 R3 Q2 W0 v9 d9 K if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ Q8 ?. ^6 \6 B% Y: G6 h {
/ H) o8 E/ M" u7 T! J1 O, y% n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - i+ h6 ^/ G+ B3 b; k& ]+ Y" {
if( pSkillProp == NULL )* i9 s+ O: t. A; f& w% P. }
continue;! g1 c" o' W: {$ ]& j' S. v5 e. j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; m H! h; K/ @8 s. W/ n$ v( f continue;
+ i; \! P7 Y& _% S2 R; l6 D lpSkill->dwLevel = 5;
4 t$ s2 U+ U2 t" i# E+ d }
' W1 o* a7 \% G* g }
$ G* o0 X* k; ?/ P }5 _5 j& Z1 s3 x- ~* W8 p
else if(IsLegendHero())0 Q4 Y/ d; g. ^8 D `% S
{+ ` T8 F0 y4 d. X5 ^; T4 B
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & S" R5 P C* n0 B
{
; l1 q+ x. e- q! B3 y0 K7 q LPSKILL lpSkill = &(m_aJobSkill);+ I( h9 l! N( L7 _
if( lpSkill && lpSkill->dwSkill != NULL_ID )* _9 {; |- g; V; J
{
% M! w( P* q" W( m" t: f$ j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 ^8 U5 m; }8 e* @' x/ @# M+ E2 D if( pSkillProp == NULL )& @& `2 G4 ?( X6 T- ^
continue;
* l: e3 o2 ^5 T# Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 K) n+ w* [8 c
continue;
( R0 g6 {# ^. G3 h1 h5 | lpSkill->dwLevel = 5;9 x3 w- A4 z1 h) t( }0 u
}) n# T& N( R9 X7 P* k8 V# m
}1 c2 a9 T% d n }2 C; U$ `7 V3 _
}$ M' k. }) v; Z! X0 X8 T
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 W1 T$ e/ ]( j& Z. c
if( bGamma )
9 \; J& | A9 ]7 ^% G* t, C4 m {
5 I+ i: F9 R6 r/ @0 S m_nExp1 = 0;
: B! ?: ^7 `: C. i4 j }1 a2 K+ u' K j+ Y
7 K# R2 d! M) `; M4 D0 R5 }* R
( (CUser*)this )->AddSetChangeJob( nJob );
7 M2 @2 H- ^- a+ c! f3 D g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' b+ p+ M# j: N
1 l: M( \8 J7 Q* M
# V0 \: x, b" Q5 {: U! y#if __VER >= 11 // __SYS_PLAYER_DATA
M; O1 X" K7 X# _ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- O. y7 g* G3 S- T4 M/ Z+ v: h$ M# v0 U/ Q
#else // __SYS_PLAYER_DATA
n! Z" h2 \$ b% \1 f g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 [3 m; u( l- ?+ ? k- u: j% i' b
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# f; Y5 a% J* o# ]
if( m_idGuild != 0 ), K. _' H- z4 c* j
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
$ }; j! @' v) k. w#endif // __SYS_PLAYER_DATA
U# H! l# T& D! m( p SetHitPoint( GetMaxHitPoint() );
" O# p4 }* m. F P# ^4 V$ }6 O# f SetManaPoint( GetMaxManaPoint() );
: M1 j/ X( i+ Y; b1 E+ U SetFatiguePoint( GetMaxFatiguePoint() );7 N5 K. W+ e2 F8 c! }8 g! A/ S
if( nJob >= 1 && nJob <= 4 )$ ^8 _6 X- T; B# Y7 F9 j
{. j6 B6 K Q' s' j) C# g, r
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ L4 g" c% l6 e" a# q. x m_nRemainGP = 28;
5 a4 H, F) g. D( T }7 {4 L' H, D9 W+ f* z0 V/ p0 {
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )& N @6 d4 `0 o: U( y- N' F
{
V* x) }; T: p8 b+ [+ i ^ m_nRemainGP = 118;
( w+ _, t. m% k# { //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;% G; d5 @) |- F! |% u, F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' i8 F) ]! F5 n# D" l3 F+ d$ o }+ s: }7 z( j1 M7 P7 Z$ n! m: u
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ m* B$ S# O L {8 R' s, a8 {& E* ]+ r
CItemElem itemelem;2 _5 g4 x4 J0 z% _8 I' L
itemelem.m_nItemNum = 1;
# Q- S$ t ^) A% o itemelem.m_bCharged = TRUE;( t5 s0 O! @$ W1 m d
BYTE nID;. l0 v' Y" h+ N5 c3 p4 A3 W, q
* M) z0 \/ P! O3 W) f
if( nJob == JOB_MENTALIST_HERO )
. C. A w ~7 _& t5 B% ~3 j0 T$ h itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 M- J* U; V3 F8 S( U( J
if( nJob == JOB_FORCEMASTER_HERO )7 @' w( W5 ^3 {9 E% L: q( _, y& a
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
u1 W5 k! m R# t9 @9 ]/ Z. ~
( ( CUser*)this)->CreateItem( &itemelem, &nID );+ F5 Q* v, N ~1 V4 K8 O
}6 q t/ w3 F6 O/ p" O
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );' ? l1 b4 V6 T* u t
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 b: K7 j* V& M! f9 t" N
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
M$ _+ N5 [$ Z) d /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" s4 W3 P$ S I$ L
( (CUser*)this )->AddTaskBar();*/
- x- v0 w- |' |- V( d ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- U' \( E% H Z$ n% x2 s
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' r! Z x6 |# [8 J( j9 z ((CUser*)this)->CheckHonorStat();' s4 i. E( Q6 y
((CUser*)this)->AddHonorListAck();
/ ?: `' C2 `+ S: k g_UserMng.AddHonorTitleChange( this, m_nHonor);$ E9 N2 q* p7 x6 Z
#endif // __HONORABLE_TITLE // ′Tà?/ d. U; O, x: u/ b9 _1 e
}
+ h2 B7 {. s3 n5 e3 T+ e#endif // __WORLDSERVER
* t: J% c6 |" X( [9 M: c$ l} 0 J, d+ m7 N/ C1 A7 S
) E, K0 Y) x2 D+ {+ N
然后你进入functextcmd.cpp并添加以下7 s2 ^$ c# @2 U( G( |
; h$ ^7 R* R0 S+ a! r: i% |& b* G3 }
代码:5 Y, ~* T/ m. D# x' A$ M
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
) f) ^/ C) l3 ]! i下面插入" p! A% U( }8 P# g; s- N0 ^
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 U F# Y& A+ P/ O! t
5 k% v' t$ B/ p2 ]( b然后你去9 S* G* L7 ]( c' [( g$ S
6 r6 f/ n; Z! E! f8 Q2 c. d$ q: P
代码:
7 }5 B" X) n( b0 {代码$ o/ a5 Y( B' {5 J6 N
BOOL TextCmd_ClearPropose( CScanner & s )
" T% ^! `: _, ?" E+ {& b{
: w0 J* N) ^3 u) D0 m#ifdef __WORLDSERVER$ ?6 |. [0 J, n7 u. ^
CUser* pUser = (CUser*)s.dwValue;
2 ^% t" v9 E: Q4 C, l( G3 j g_dpDBClient.SendClearPropose();' g- ?* z( j7 F0 i& B3 u/ W
#endif // __WORLDSERVER6 o6 h8 y0 j2 z3 d
return TRUE;
" z2 ^+ Z* ~4 @. u. I}$ L; j2 R( T6 L6 V
下面插入- \5 b) K% }$ L! X% U8 j# O' j7 w
BOOL TextCmd_rebirth( CScanner& scanner )
, W4 t( E( m+ c. |# L0 P{
+ o, q) s8 A9 [* Q. u# [#ifdef __WORLDSERVER
: z2 y! r1 C) p \, j7 W- bCUser *pUser;
$ E* ]# s5 S* \5 n+ T/ W$ r) fpUser = (CUser*)scanner.dwValue;6 E) s! G" g& q; {
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 z+ Q6 N+ ?( C5 S) _" T" mpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; o3 v$ z& R. |6 U9 Oelse
$ o8 j W5 R- R9 m# MpUser->AddText("你还未达到重生条件!");" Y4 S* k$ @- a
#endif# \( \* r7 ~0 r5 I& y
return TRUE;
$ J9 N/ P8 a- Q* N* ]' K4 A/ i$ U} # @0 S, `5 c! x' @- A
8 \3 }' Y) M& V) ~9 P8 h0 ]) e( @; S% Z- y; [% e2 Q
* Y' c5 U3 ^: H; W. _
% ]0 D1 L$ }9 H) W |
|