|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
' i$ ?$ u$ j# B/ M& z5 r
6 {/ s9 z% P; D; N# qMover.h. B% x, f' U- \# |" ~- g( j G3 q
代码:
) _9 V7 v; L7 h1 Q; ?' w找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
6 }& P( Z; ^0 k0 P" P4 c% a8 H" G5 V: s8 d1 x1 N% x
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
) I. [' f# q0 {* W" N! O2 v4 c# u+ x; V2 X2 v) O+ q$ Y! j' v5 n
然后你去mover.cpp添加. V, S' z: d7 s0 V( {1 @
/ P! [) X4 d7 t( n6 [代码:
6 \( C4 I8 W1 T" A; G" mvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; I X* r0 X8 @7 n& r% y" r{
. F4 q+ t0 E1 C#ifdef __WORLDSERVER9 ] ~$ p0 K( a' i2 i; `
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' H( q. E5 O% }$ ?
MoverProp* pProp = GetProp();, V- Q4 u* w+ P% ]2 m
if( pProp )( v. h2 |: \; Z/ e$ c* U# Q
{
1 }( B7 a0 a% d7 q1 y5 c+ }, f2 a: I if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' B" C' b* o2 `! Z, U {- l$ J* v/ H/ v* s+ b9 m% H
AddChangeJob( nJob );! F* ]4 A& p0 u% @9 @- \3 ~
}else{
$ S" x4 D, s) R return;
4 A U7 l: \* X; c }
3 Z4 Z1 |3 [! \; p8 q- @( E int nPoint = 0;
; L1 ~7 B N4 r& j& [& q if( m_nJob == JOB_MERCENARY )
: t6 Y5 B6 @5 V$ V4 a1 @ nPoint += 40;
9 N) \# C7 _+ F6 J! E else if( m_nJob == JOB_ACROBAT )8 K# d! V: \9 ? N$ E' U, `
nPoint += 50;
9 _6 l3 Z, B" G/ ?$ U) }1 P1 N else if( m_nJob == JOB_ASSIST )9 @$ t/ k8 b& P2 x& i4 N9 C
nPoint += 60;
2 N3 t( G, ?% c' g9 J) H else if( m_nJob == JOB_MAGICIAN )
- z: o! }8 {. F3 }5 q+ p2 x nPoint += 90;
; y9 t( s' o. f) v# l' ~+ ~ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 I" X' Q5 X+ P" B/ ` nPoint += 120;1 K4 n+ ~4 z" f3 Y+ c
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& K6 j% G8 S# G1 O7 N
nPoint += 150;* z Q3 P6 N6 z2 q2 ]! Z
else if( m_nJob == JOB_RINGMASTER )
5 o* Y" C8 |5 o0 Z nPoint += 160;
, X* F+ {+ V! p. T" K else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# G- l2 L, e7 T7 `/ w1 b
nPoint += 180;
5 }1 a# q+ B" c# ]7 l3 K) t else if( m_nJob == JOB_ELEMENTOR )
2 D9 V& L9 M* j* p: R$ p nPoint += 390;
3 p/ }" E/ z; K% ?% q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 v( a2 Q+ F2 U- p0 g( \2 ?) E
nPoint += 120;1 f# M. _( ^/ ^$ G3 Y* y9 i
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 }" Z) ^$ e0 z4 L Q nPoint += 150;
6 ]. s$ v3 z! j9 m3 f0 W+ I else if( nJob == JOB_FLORIST_HERO )" Q. j* M" P1 L0 N- X
nPoint += 160;% p- ^) }$ O u2 Z |2 a
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 z D" ^1 b+ Z, v nPoint += 180;- E/ W( n9 Q3 s# V% J2 x d
else if( nJob == JOB_ELEMENTORLORD_HERO )
* g6 H2 _% I4 B, W) T nPoint += 390;8 ?% C3 t6 w0 c2 d
B8 @ s- c3 m4 Z- r# D AddSkillPoint( nPoint );6 Z: m ]: P) L$ l
m_nLevel = nLevel;/ O3 W" e7 n6 k/ I
+ h, x0 k& ^. T( L4 U SetJobLevel( nLevel, nJob );
: M" W6 x) A- b2 T% c2 T3 U m_nDeathLevel = nLevel;
5 R0 h' e: [3 W% w i! _#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: E, J) M4 j( F8 z) }2 Q
if(IsMaster())
: J7 Y* h! x, y, P9 \ {
' n1 ^$ z# m2 W* Q6 _+ d int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: g: y. ~+ S8 P9 ^( i! R if( nLevel > 59 && nLevel < 72 ). V2 `+ t7 ]! y' [
dwTmpSkLevel = 1;1 R, o% q; u: _
else if( nLevel > 71 && nLevel < 84 )
! M! @ ~9 U/ L0 W7 @! Z2 P5 [ dwTmpSkLevel = 2;2 T- N- t2 i" J+ W: E; H) E% N
else if( nLevel > 83 && nLevel < 96 )8 R0 C1 Z" I. f( Q7 D
dwTmpSkLevel = 3;
4 |2 p4 o5 k2 L# y" ~# q: P0 q else if( nLevel > 95 && nLevel < 108 )
; ?7 s: B# Z; Z3 L* p+ M: u dwTmpSkLevel = 4;! _0 K$ p! Q. _* h& C8 ~( _, b, K2 L
else if( nLevel > 107 && nLevel < 120 )0 S. G E: @$ t
dwTmpSkLevel = 5;9 }7 S+ v% P/ R6 H$ \5 o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ t4 j' N& j3 N2 b$ k ]* W {
- x7 {4 r5 K; y/ k* a LPSKILL lpSkill = &(m_aJobSkill);$ j* Q/ Y3 R; p% `$ e% o
if( lpSkill && lpSkill->dwSkill != NULL_ID )# b6 ], e2 ~) R
{
! \/ U4 C0 m! S; p* n* W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! Z& ?; j8 l7 \" J: B
if( pSkillProp == NULL )
9 M" r4 P: W/ G8 _ ] continue;5 ~) D+ R3 ^2 e. G0 C2 M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" O6 n `1 a; I; \$ K: R$ a
continue;
* ]2 X" g1 I/ U2 H% i2 u! l r lpSkill->dwLevel = dwTmpSkLevel;9 z; c& M* v% {" K6 e4 H
}
2 g! \4 ?* U0 J1 [ H" g" ~ }+ F9 q$ W T+ L4 T" y# Z1 p6 [
}
0 M0 p! @# y& ~9 y9 e else if(IsHero())9 U$ k3 n! Q3 S _2 A
{
! U) n& j+ \, K0 @/ x6 j7 e$ E for( int i = 0; i < MAX_SKILL_JOB; i++ )
" {- r+ \3 u# i; I {
! T# _3 X* J9 [: Q$ O" Y LPSKILL lpSkill = &(m_aJobSkill);! j' z5 ?5 E9 g+ b9 p! M
if( lpSkill && lpSkill->dwSkill != NULL_ID )' [5 [3 v1 `+ s9 P
{
( o4 c0 u2 g, }& P9 R6 ^/ U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 U0 ^ T y. x
if( pSkillProp == NULL )- p+ h/ `7 x3 D/ E. Y
continue;& f, L8 E o: C3 K# d3 Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* W0 q# R- m3 c! `
continue;
7 M. t2 u; C7 R3 S lpSkill->dwLevel = 5;# j4 L, R5 r; ]) k) N
}
% a U8 c; C: p+ ^% s }% A* F1 p- b, h$ h6 o
}# d( `2 l2 r0 z' v9 S& }1 J8 w
else if(IsLegendHero())$ P5 ]+ s/ n w3 w) n$ B+ p7 x
{9 Z' |) C" x& o! b' W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 B; E, {( _+ b
{
9 e& |; |* W5 y' `' n; `5 Y, b( h LPSKILL lpSkill = &(m_aJobSkill);6 P- U% `1 i! W1 z9 Q1 v a; Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. R9 _8 Y% @8 D8 _, i; u {2 [+ O) H) A6 ?, X7 x, E# b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / q* c9 H6 F+ k& Q4 k5 G
if( pSkillProp == NULL )& N; s7 Y$ N2 Z4 X% ~
continue;
$ ], b% y8 ~0 t! y3 e* D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% n/ ^$ b. \) e! U' j continue;
3 t( G5 Y% i4 \4 I. L lpSkill->dwLevel = 5;
& h7 B8 J0 P9 H+ S: k; \ } `& ]/ _% w5 B
}3 L3 z9 Q v [: n
}, W8 _' C' I3 t
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans [4 ~7 [ u. @& s% x: h' u
if( bGamma )
8 f1 M6 u3 E) \6 h {" j. w- k% I' V- |4 o
m_nExp1 = 0;
8 Y' h& F) G6 g }
1 K# Y$ K' U* m# T; Z
" y; i+ } \. u7 P ( (CUser*)this )->AddSetChangeJob( nJob );) \2 v$ q6 F/ p8 p$ r- Z( I( T/ |
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );( X6 h" y' V: j6 [
7 m3 ^- P6 D! y# z% ^
* G$ L; d' R! s( p7 Y#if __VER >= 11 // __SYS_PLAYER_DATA+ A9 q. X7 K! W' d' S1 s
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ r& _8 h! d& r: {' h
#else // __SYS_PLAYER_DATA, f1 V) L' B8 g0 i7 v% c
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# g0 s% p) N; B2 X. `, h g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 s1 e' I l6 D; { if( m_idGuild != 0 )3 T" B+ k3 N$ P' i2 c& O: c+ x
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 n3 _: ]. p% J#endif // __SYS_PLAYER_DATA v$ ]4 D4 f5 f6 g6 J
SetHitPoint( GetMaxHitPoint() );
, |4 S& M8 ]( D SetManaPoint( GetMaxManaPoint() );7 W1 Z, p( }5 f0 b
SetFatiguePoint( GetMaxFatiguePoint() );7 x3 V) H5 g' P. ]( O: o% D/ J
if( nJob >= 1 && nJob <= 4 )0 o$ ?8 R3 n+ g# Q* a+ |" }' R
{
8 N f( j/ v$ d7 y m_nStr = m_nSta = m_nDex = m_nInt = 15;
% R( g5 Y" a/ f+ C m_nRemainGP = 28;2 x5 E. }+ x4 P F* ]
}
% _7 ?. D* @8 s) b' u- m if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); ?9 a) Z7 @8 t9 u7 f) V/ V ^9 t
{
$ w6 t( r) ?5 x; @$ e m_nRemainGP = 118;
) E, r9 t% J& X7 U+ K" Y& z" m% | //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
0 G9 V1 l& h# D2 \4 R3 S5 v! u m_nStr = m_nSta = m_nDex = m_nInt = 15;/ J5 _' f- i& k7 d9 p- Y- S5 Y
}
/ a' |* I$ o* x7 M if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 Z) R4 B3 D: C3 k) ~/ M {8 S( a% a$ s- O4 u- i0 s
CItemElem itemelem;
2 |' u2 N9 i% A; J2 G itemelem.m_nItemNum = 1;8 r- j6 d8 c) v# X/ f
itemelem.m_bCharged = TRUE;! i! W5 N* q. R/ G$ h$ R
BYTE nID;
! l z. c+ I. ?, m1 ?/ y4 V! ^% x3 b" j8 w; K" _6 @8 P# \& G
if( nJob == JOB_MENTALIST_HERO )6 Y; m. a+ u9 A
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 F* E w# ^3 |# e) M F0 x1 L
if( nJob == JOB_FORCEMASTER_HERO )
; D" y) v( F! w( \ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 ?3 O1 f' k+ I7 G% e1 e8 N1 C; N$ e+ d6 f' O! V3 b9 Q
( ( CUser*)this)->CreateItem( &itemelem, &nID );; ~2 ~% o& L/ b5 s q }; j( ?
}
: g9 L( k, S( f1 V g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 n- l! Z" A% r) K' K5 i# I+ Z i7 N
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' F3 T2 X) ~0 M" v
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 i! G' }, I, w5 U& @' B
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );1 |1 D& Y+ ?" L+ g$ ]3 A1 N
( (CUser*)this )->AddTaskBar();*/' l( e2 ?0 |5 |
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );, b3 V# M! T+ J1 y8 D
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 {$ W; W+ m! C$ h. T7 R; \ ((CUser*)this)->CheckHonorStat();
+ s+ n0 c1 @+ H) Q, y ((CUser*)this)->AddHonorListAck();
, J/ ?# S8 Z& _0 ?$ L" _ g_UserMng.AddHonorTitleChange( this, m_nHonor);# W1 I9 q) p. O! u, p/ X- I
#endif // __HONORABLE_TITLE // ′Tà?4 V1 e7 \- J' g6 Z+ w e$ g+ `9 S9 R. m
}% h9 l. v) t L* I6 F7 J' o
#endif // __WORLDSERVER' z) D- L3 n g1 }) k; C1 c- l C
}
6 G4 Y' w7 n- g1 t
( C2 w* f% c/ b: m6 E然后你进入functextcmd.cpp并添加以下" L* i, i' j9 Y) z/ k; w
( N0 I8 [' H! ~: _代码:" d! ^2 s6 v4 D) h& l b8 X
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )5 v5 A6 ^' K' P: `
下面插入
: B- P7 E( e: W6 v& C- }$ dON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) r0 z; w; z/ Y; I* Y4 N2 L! N! q1 f# f& r0 _8 A
然后你去1 U: V6 y* _, c) c0 ~
* V3 n+ p+ _ n0 F! k代码:
7 e' o% M- A; @# S3 i2 v9 n$ f8 |代码- ?4 B1 b0 }, w! G8 L
BOOL TextCmd_ClearPropose( CScanner & s )
( B6 _: I* `) c1 z' c/ j# E* o1 @{
& q! K' l/ |6 n m; J9 ^9 h3 d2 g#ifdef __WORLDSERVER
/ ^9 M/ o$ i# C9 S. x6 Y CUser* pUser = (CUser*)s.dwValue;4 ?% V( Q; U$ }# M0 d* e' X; y
g_dpDBClient.SendClearPropose();
* T! L2 Z/ w$ g' ~& f9 F6 `#endif // __WORLDSERVER% \4 b- g- k& U! X( l. ?: l% I
return TRUE;
- [+ _4 M5 H4 `6 l# Z}7 I: h% W/ z( u j/ C6 m
下面插入" I3 V6 G2 H$ f( U, x% A3 T
BOOL TextCmd_rebirth( CScanner& scanner )+ ^1 @) d( ~) E3 I. q9 g% ~, W1 k- x1 ^
{ Z+ f0 a' a0 r# a
#ifdef __WORLDSERVER
" a5 e# m8 V8 h- r" `CUser *pUser;
0 o+ t3 @$ l. G: B. IpUser = (CUser*)scanner.dwValue;1 o# v- |/ r2 R: J& A
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())' L* L/ j& F% X& l' B
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ B9 w' N8 q" S i
else
% {' ~1 R" @% l) qpUser->AddText("你还未达到重生条件!");2 Q! W2 a' p+ {
#endif/ V/ [# y% d2 r2 @3 L+ K6 u2 j5 X& D
return TRUE;
5 \- p2 r- X) C0 L$ d} $ G# C2 @0 c' {. l" a1 B
2 l& o5 W( x0 V. d- ~1 k* x
7 @3 Y O; s/ j5 O: M2 y; X
$ z/ S* ~$ D( g+ {
: z- Y! f6 @4 M4 g" e) Y4 B4 ]
|
|