|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
1 {% U9 \1 j1 O0 B7 |4 o* K }+ x X g8 ]7 x! T
Mover.h# t4 j' U! D! _
代码:% Z; \7 T# g+ O7 ?) y
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- k7 w4 x* o- ^1 ~- e' I. W) R
4 R1 }0 @: Y* \- X下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 f" N/ [+ {8 |8 h& {. N/ _5 g5 v& x
然后你去mover.cpp添加
$ e6 J, w" m7 P1 b2 P% U `* a' u+ C) [- z8 s% m i" @
代码:, J n5 Z0 q% D; o
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ N F" g. y0 s, E$ C; m( L{) J5 o u) @, M7 g7 }
#ifdef __WORLDSERVER* n6 G2 X. a. M5 h) o ^0 [5 Y( @9 n
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( ]( w( }/ s$ J' X# o* X
MoverProp* pProp = GetProp();) C4 \5 \( ]' I4 i3 f1 M5 I
if( pProp )% H" b0 C- I, K3 R% P
{8 E; m/ H( U* E+ `+ _3 u$ {' j
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) i3 W! z; T0 u {
" w! |' [2 i0 P7 ]( G5 Z AddChangeJob( nJob );6 p% a: c$ ~/ g1 i: h5 v- z7 k7 w8 d1 x
}else{- _. Z6 l7 S+ I* i
return;
; `' x( Q3 i. ^- N }
: v* ~1 g, A& S int nPoint = 0;& f% i( a; q' Z% J* ?8 T4 G) c
if( m_nJob == JOB_MERCENARY )0 ~7 ]' A. w" F; C
nPoint += 40;/ Z1 h% y, a/ E& Q' F
else if( m_nJob == JOB_ACROBAT )) e/ y/ Y3 D4 b+ o( ]
nPoint += 50;
4 x1 f! ?, r% s! Z/ b else if( m_nJob == JOB_ASSIST )
) D" G* L3 y* T/ } e H, S nPoint += 60;+ `; C: T+ b$ t3 x
else if( m_nJob == JOB_MAGICIAN )
. w* C0 _9 [5 b3 M8 t8 @2 _ nPoint += 90;$ }) {& r2 A2 H6 w% O3 ^! ?: H& B
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 I. f: c+ B( t6 W8 a
nPoint += 120;$ n# o Y6 l- k8 M0 H7 S, }
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 G% }9 d9 {. f! [' ?
nPoint += 150;/ a% [ Z8 C1 q4 _9 E" K
else if( m_nJob == JOB_RINGMASTER )
# Z1 `- D% j8 o8 i3 m+ n2 f nPoint += 160;; i" w1 ^: M; a
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; i. a+ t3 m' Z& y& _1 C6 C nPoint += 180;
9 {- Z; I) K( n) V$ \! \ else if( m_nJob == JOB_ELEMENTOR )
- `2 {% _6 m& `% Y- c3 t nPoint += 390;
+ q5 `9 x, s) S- x) n$ f+ d else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 |7 l; N B, A1 _: y4 b. a, H9 r: H$ V( Q nPoint += 120;
9 R& ^, n/ k0 v5 I! I else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ w/ v$ F( l: d" z) p Z
nPoint += 150;' z) P& s; I' m5 O) h) T
else if( nJob == JOB_FLORIST_HERO )
; _3 M U7 c% o2 W1 X" o nPoint += 160;
8 W5 Q! V1 j/ C, a' r else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' Y( m3 M$ @/ L, d: e: }0 n$ u nPoint += 180;
/ y, M+ u2 V: f# l else if( nJob == JOB_ELEMENTORLORD_HERO )
7 j- N( h- }, O3 t" U5 e nPoint += 390;
0 t5 L, _! f% W+ T" g6 o8 v% t9 w. P1 X1 C/ V) s* |
AddSkillPoint( nPoint );
; @/ S( O" `" t m_nLevel = nLevel;
f# {4 E/ v( w' Y9 D
, S! `. Q& W( d- _" u n SetJobLevel( nLevel, nJob );: q& M& } Q9 h% y) G/ p+ ?
m_nDeathLevel = nLevel;6 g5 n1 X$ r* G6 f, f4 X# _$ b
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* h5 }$ p. D! e* e; W6 h if(IsMaster())
. e+ u3 j, l, I) R$ k+ ` {4 c8 N$ x! B* h1 j( T0 `
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 o. K7 G7 C6 d$ q
if( nLevel > 59 && nLevel < 72 )
0 v/ x" _$ _7 |! Q/ E. _ dwTmpSkLevel = 1;6 c; B6 T# a" L, J7 Z# L
else if( nLevel > 71 && nLevel < 84 )
& Q7 N6 x" [5 k$ s5 @" e dwTmpSkLevel = 2;, j- L u0 Q( M
else if( nLevel > 83 && nLevel < 96 )
7 r/ Y: e* A0 d, r' d dwTmpSkLevel = 3;
1 {2 o, ~* q6 ] else if( nLevel > 95 && nLevel < 108 )/ N* z# g) p7 m- w% \4 r* M9 l3 q+ G+ i) }
dwTmpSkLevel = 4;/ l& K* q5 @) y5 M" \- c2 f
else if( nLevel > 107 && nLevel < 120 )' x7 v% P6 N* {' p
dwTmpSkLevel = 5;" s: z# Q7 a* Q, T3 d- N Y1 d
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& J+ Z8 G+ g* y: r3 K2 w {
- K6 h z: {6 s1 W LPSKILL lpSkill = &(m_aJobSkill);
( v$ t J, a p, {+ ?# w1 c! P if( lpSkill && lpSkill->dwSkill != NULL_ID ), L/ W0 ~- k/ J" n7 z8 T2 F$ i; a* C
{: @+ D2 C! r9 ]6 p. F7 q; R! L f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- c: G3 `5 ]' Z if( pSkillProp == NULL )
1 j$ y$ R0 d; S2 K# } continue;2 `) T4 u- E! ]' y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 A( {5 F# K a! }1 w, P* R8 Q continue;
0 \9 M' L1 f) c- ~/ O9 Z X2 s X lpSkill->dwLevel = dwTmpSkLevel;
0 \ O/ x2 Q* ]1 }1 X5 o9 [ }" K9 |0 F0 O0 Y3 b
}3 A2 u% x. O/ E% H+ S
}
$ T- y, m1 y. q2 K7 _ else if(IsHero())
- Y& e3 v: r% a5 d W* a {
S' ^) k! ^* D8 @ {' l for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 f. j" j- c2 E0 t3 d; d
{
- w6 c0 s, g, }% @) o LPSKILL lpSkill = &(m_aJobSkill);; Q6 L2 h+ Q! N7 A9 p7 n& y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( s! |# |3 s. u# t5 O4 |9 l {
6 [% W9 r8 o9 n# x6 g4 m. } l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 q% J. j1 M5 b$ B$ W) h
if( pSkillProp == NULL )
6 f K7 G ^0 j) W: e' O continue;" Q b6 D& W' v9 f+ D* D, f! ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 l: g A' f, _! \% C2 h: }& q
continue;% ~$ z, Z8 l' X; s* S' H, u( Q0 e
lpSkill->dwLevel = 5;% y' Q; g9 T' A1 A* Q
} r" o/ {. K+ i0 I6 u
}
* s, N7 p- P6 b; ^: H) ] }
# n/ v0 a) u' g8 Q# |, }1 a1 T else if(IsLegendHero())
2 m2 |* o, O( J {
+ n: M9 H6 ?6 _$ h" [0 ^7 W0 t( y, d for( int i = 0; i < MAX_SKILL_JOB; i++ )
, \/ L0 ?! J3 I% @% _" ]: k {
0 V$ \0 p. m* _/ W% H7 z LPSKILL lpSkill = &(m_aJobSkill);
( M; F# |. \+ ?5 g if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 o3 F9 q1 ~: i6 I( J9 D. w { h# F8 s2 q; f1 K1 x5 b2 m' G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - \4 T- ], C5 M& B
if( pSkillProp == NULL )
/ I( y* E' b, F( \5 O4 a continue;3 n1 I( ^ u" E& @8 R* \2 d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 ~3 P! b5 n. [ continue;
4 ?- T, t; \- g5 e( o! P lpSkill->dwLevel = 5;' }% l% _. p# H5 S. U
}
4 U; W7 A! s1 A/ U3 x }) b: S9 P& |( R" {8 Q
}2 p3 z: Q) J4 l- I: I
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# U" m* _3 g; D8 m7 i if( bGamma )& t5 x. `+ v5 W8 D, m
{
* b: E7 Y1 t" |( l6 T m_nExp1 = 0;+ ?% {# Q7 O/ {
}$ f+ B3 h' J6 \0 `
% |0 d& @9 u: l, Z( |4 Q, ~
( (CUser*)this )->AddSetChangeJob( nJob );
# t! M9 B8 s, \/ I g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );. x, f2 [- o5 Y; H& J
; j9 i5 T! A: w: c- ?, e6 @
]3 w/ x$ C. F/ z F
#if __VER >= 11 // __SYS_PLAYER_DATA5 M d% V: e0 G1 l
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
: C. v9 g7 T) Z6 ~#else // __SYS_PLAYER_DATA
( a0 y9 h6 b o6 F$ } g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 e8 [8 d, I. F" v. U g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 Y' X4 U7 ~$ d7 b! x if( m_idGuild != 0 )
! X' M9 V% |$ t- V2 {# \$ \ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
9 R8 }6 ~; ?0 o! R8 @+ {#endif // __SYS_PLAYER_DATA; H) P+ X4 v4 @" M$ h( i9 Q
SetHitPoint( GetMaxHitPoint() );
9 p1 r2 e F, W SetManaPoint( GetMaxManaPoint() );8 b- y; c* D; r* b# X% M" q( H
SetFatiguePoint( GetMaxFatiguePoint() );% ^+ T8 z9 i/ L! r5 ^2 a$ f
if( nJob >= 1 && nJob <= 4 )7 ?: ^# l. `1 @+ ~) }0 O0 }
{
) d8 l( b& k& Z( j m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 C4 p1 E# Z# }* ^! e d8 x m_nRemainGP = 28;$ H' f, |! \. ]; ^8 s: O- H
}
! y% T1 @# x3 r1 {9 U Y6 p if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); e+ o7 ]; U b9 ]
{ d" j' _+ z Y; P1 ?7 e
m_nRemainGP = 118;4 \ I" f5 v/ `/ F
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: b" a" c5 h7 u+ i m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 D5 y/ d: v) {6 \8 r }
) q: H9 {6 N; [0 m if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( ~6 d+ r- S! ~ {* U8 H4 F/ i1 I( ]
CItemElem itemelem;
4 N9 q) ^% o/ i- A& q9 s itemelem.m_nItemNum = 1;* B% g/ Y* N5 D# R0 V
itemelem.m_bCharged = TRUE;- e1 d* V" C# E0 N; K
BYTE nID;
7 F9 f& H4 N5 S8 [2 J s6 o( H0 M+ W) T6 f
if( nJob == JOB_MENTALIST_HERO )$ D$ i- W7 C1 f+ Q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" R. T! s( [8 h$ o if( nJob == JOB_FORCEMASTER_HERO )9 @9 u5 A, J6 _7 S: }, U8 s
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;0 ~5 ]7 j" }. H1 Q
5 y z& G" l& o) i' w( R/ {9 k
( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 L' W4 T, y) _: z( }- r0 t' e }0 i) Y, D1 V4 @4 _* Z" T
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. j& n- C% z7 p$ b9 M, M& K# Z& K ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 G' _5 r7 H/ v7 Z! s3 y
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
4 v+ u$ j* ~/ p! S2 V /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; L; M) q4 K+ [+ {% m0 R' \. b ( (CUser*)this )->AddTaskBar();*/ T0 v) m5 v9 @8 F, w0 x2 z: |
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 J7 b, r3 Y- T$ v* f' w#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& _* E6 X% O# _$ Q. }( k
((CUser*)this)->CheckHonorStat();' B( D# K% s0 g9 G3 j9 _- b+ S
((CUser*)this)->AddHonorListAck();
: A/ O& l+ J( |% |' V g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 D0 U! b! ~) I* F% ~ ~#endif // __HONORABLE_TITLE // ′Tà?3 [4 E0 M/ r4 ?# @+ x6 J
}: H; d! e# A1 m* q0 U
#endif // __WORLDSERVER9 d" Y X, x& R
} " H8 y, x* l l9 {1 v e0 a5 V/ p
& g. L2 B9 o4 e! P% q9 \
然后你进入functextcmd.cpp并添加以下( e. z* ^' G- O9 a! Z* G( t
( i2 k3 x- V7 ~% Q: [9 |' U代码:
! x: V$ G* R5 v) `' \( eON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ S$ |0 z1 l! n下面插入
9 |$ Z& ^4 T0 L& n) O! }ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% _( X1 x" ^6 o0 o; O( D. w5 f
; ]# x& f, W& o" c* n( ]然后你去
3 |( x9 z7 a- {0 Z
6 z4 q$ S; ^1 k* F代码:
+ ]0 b& ]' r1 i7 O' y! Y j代码7 {: d# d. y& G
BOOL TextCmd_ClearPropose( CScanner & s )* e9 L+ y; X" Q9 N: k3 \5 M$ A) V
{* d. O3 r4 Q1 I$ i3 b( ^
#ifdef __WORLDSERVER) d; ~, m' x; |$ {# X8 u8 S
CUser* pUser = (CUser*)s.dwValue;
$ X7 m% l3 x$ Y g_dpDBClient.SendClearPropose();; f5 }% b$ M5 z R! ^
#endif // __WORLDSERVER, J. |9 \) c! H* _5 d, u/ O) f
return TRUE;
9 w Y/ g# k0 w) O; O}
7 d" N* v0 V; A( u0 a1 [4 T下面插入
1 l" N- k* x5 P$ M, a# eBOOL TextCmd_rebirth( CScanner& scanner )
8 T7 i; l% n- s2 T# x/ k{, p, N8 s+ R# C8 W
#ifdef __WORLDSERVER6 j' ?. J) W7 j) ^
CUser *pUser;
* B0 g& C! x+ l9 LpUser = (CUser*)scanner.dwValue;* B/ U/ ?9 [. C, y- \ t) b2 H
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- \" r5 u0 a$ v' r7 q5 ^pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& X& G% n$ R& n$ _ |
else
* c8 p% [' W0 HpUser->AddText("你还未达到重生条件!");
. _8 z- |# {3 T1 E, @: _1 O#endif' [, j( b, P U7 g/ D
return TRUE;2 r L# N7 C0 V, f' V; q- I: M# d1 R
} ! P3 X5 a% y7 ?1 y+ {% v1 P
: Y! F6 f7 G8 E& r: I0 U
& ]1 e5 @% C+ n& R3 S- |7 z
* e, K! E5 S. p8 }8 ^# b* g$ \' a
|
|