|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 H5 U5 T4 i W$ _7 K) B+ }4 u/ ]
Mover.h
$ i. h, X0 B! {0 ~. J代码:; @+ K5 a4 f) `( A
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; M; C& ~% f8 Z8 N( p2 ^5 \; }% o. B, R+ {4 T% J% ?
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 l6 r; z. o, B+ L8 @
! G N( c% e. d! I然后你去mover.cpp添加7 m4 e2 k7 I' h/ G" X9 k
' A& q) S* p1 w/ u u代码:
* |; I0 A1 |1 E' A k: v( K; Jvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )1 T& R6 X% i* e+ g& T
{! o) T. c6 B! X
#ifdef __WORLDSERVER& x, W/ K$ r# Q( i
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 c3 w/ f* A$ @+ T
MoverProp* pProp = GetProp();0 b1 U5 {) w# @
if( pProp )
, c* ^) V. Y; x4 E2 t' ] {
2 z D3 n u! D if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- Z1 Y/ }7 G8 J$ B# i J$ Y7 V {4 L) X* x$ S& N: o4 |7 A* a
AddChangeJob( nJob );; K2 I7 c; ~, G% D- @! j8 M, i
}else{, l2 B3 K8 ^3 e% V' g2 g: }" b
return;. S# p- u* n7 s2 g1 ~) \
}, E+ J4 ?8 C4 Q' N& i* e
int nPoint = 0;( T9 w; e% u, q% A' B# M
if( m_nJob == JOB_MERCENARY )
: s$ Z4 I: G; O' N1 l/ X nPoint += 40;0 c& v9 v$ {3 I1 D$ F- ?3 ]
else if( m_nJob == JOB_ACROBAT )
; Y, Q7 ^0 ~4 G+ l; H( [0 V% F* U nPoint += 50;6 K4 u" c* |3 A$ A$ p
else if( m_nJob == JOB_ASSIST )
- H: c+ Z, `4 G! p5 c& g nPoint += 60;
; s6 o5 [5 {' I" i) l! F1 Z else if( m_nJob == JOB_MAGICIAN )
5 p/ J" s* G/ g nPoint += 90;
& q! M$ ]% g7 R9 T/ b5 w else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
% A2 F5 N+ a0 [( Y- ?. n nPoint += 120;
8 o) i- i) `; [0 |" m# w0 H else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ k+ u- |9 l3 u: w/ |0 H* X nPoint += 150;
1 w' C6 @3 |4 v3 ~: { t4 b else if( m_nJob == JOB_RINGMASTER ); E1 x: V- `1 G8 ^$ q
nPoint += 160;5 B3 A2 A7 w$ C; g2 t8 m' V
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ o/ a4 S% Y9 d9 S nPoint += 180;
# |5 E! L: I) @5 ]0 J2 d else if( m_nJob == JOB_ELEMENTOR )
. F8 [) Y& \6 @ nPoint += 390;' V7 e/ b! @: C/ N1 h2 a
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). }( i/ h0 ] z( {
nPoint += 120;8 g, N% _* [% P# j/ K3 m5 c
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )- p9 o3 ]: |5 X# R
nPoint += 150;
. Q1 X4 A3 j/ ~/ V/ _ else if( nJob == JOB_FLORIST_HERO ). l! D2 F, P: J; @& Q
nPoint += 160;
% x+ o6 n$ r8 u4 b% u5 F! ^- H else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
[! y- A1 P8 ?9 P- g nPoint += 180;
" ]8 C0 [9 W: p$ [ else if( nJob == JOB_ELEMENTORLORD_HERO )
# l* f7 A- \0 H3 i n+ G% y, b; } nPoint += 390;, D$ o! {+ X3 X W) b5 H
$ ^; c% B5 A8 t k) X9 m AddSkillPoint( nPoint );, q8 f- p( @% e
m_nLevel = nLevel;
; C! {# {2 j9 _* l {
0 B& l: Y! M" T' u; z SetJobLevel( nLevel, nJob );0 S" ^8 }/ [ L" D# n# F2 q: S
m_nDeathLevel = nLevel;
2 \; M2 u% b' ]#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 m% J, i( X# y7 a: j M' P# i4 x3 L' c
if(IsMaster())
9 V( O1 F* C. R! X4 x( j {
2 E& Z/ n3 B L9 o h: _, F int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, I W0 p7 p2 O" z
if( nLevel > 59 && nLevel < 72 )
K7 {* ^' v" J. q2 c% n dwTmpSkLevel = 1;! I, ~9 x: ]3 @( P& ]7 U5 O6 m
else if( nLevel > 71 && nLevel < 84 )1 L) R7 n3 |3 }; |7 y# D1 l5 ~
dwTmpSkLevel = 2;
. v e1 `9 i J( [ else if( nLevel > 83 && nLevel < 96 ), z3 V$ t& }: p
dwTmpSkLevel = 3;
/ U6 x9 ?( H" D& }+ a; I; l else if( nLevel > 95 && nLevel < 108 )
3 v* z0 q' ]- L/ ` dwTmpSkLevel = 4;
# X4 U' A1 _0 x# e: b# a else if( nLevel > 107 && nLevel < 120 )8 U' g/ M5 C, E9 q/ ~3 D& E7 a
dwTmpSkLevel = 5;
4 d7 n! U3 H' Y7 f" Z8 w for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 I1 X" v9 d0 t/ m& M
{
) ]' W* k' j5 o- Q4 ]; J LPSKILL lpSkill = &(m_aJobSkill);
/ @5 E! V: N! I) `, d2 X if( lpSkill && lpSkill->dwSkill != NULL_ID ). Z' J; j, L$ w% N2 D9 W
{
8 d) t8 o4 @7 e3 B0 C4 J/ R: ]2 e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; B/ N7 u" b$ n
if( pSkillProp == NULL )$ t1 L- W# t. n& t8 z2 n- E5 F
continue;
# l, c* ]/ d9 n9 R0 ^* h* g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 o7 Q* _! K$ E* G continue;
( e; R8 g' E, c0 Q( H) @/ E2 t5 b lpSkill->dwLevel = dwTmpSkLevel;* [7 G0 K5 O8 a6 K+ E3 }
}* f3 V% I0 S* K7 C& j1 x! L( o
}
7 d; S+ z( e% B$ D3 p T }0 t g+ a- n% N" W2 Z: G) p+ R% R
else if(IsHero())* _; h, u5 S% s6 B
{
# d. j8 p. ~/ O, l0 y$ S/ M+ B) J for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 U! e& q8 H$ }* @' J1 w
{
2 _2 O. H+ W- e# f9 j, X9 k LPSKILL lpSkill = &(m_aJobSkill);
$ k7 Q3 u# ], X5 \7 a if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 V- t' v2 Y4 U# _3 y# L1 |+ _ {+ v) L% \' w6 Q+ K( O$ F2 p) U6 y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" J9 p$ a6 r( D( e6 {# u if( pSkillProp == NULL )2 ^; R) v/ O+ o* d
continue;
5 z! U! O1 M# T3 r: T5 L$ A: J+ } if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# v0 t; V, h7 q; k/ ^ continue;* E7 w* \ a0 h" Y( w
lpSkill->dwLevel = 5;
. e& ]6 D4 _3 E* \ }5 c% `7 N2 Y4 W/ H; g/ l a/ n
}
# H+ U3 @& i4 Y$ T }
d0 y1 P2 M |& u' b( y else if(IsLegendHero())& m3 N4 l. r6 t% o* k9 M% @
{7 E% o8 B5 @% |4 v
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) Q5 b& Q7 z, D7 F2 g* _5 i { 1 g! F& O' K9 V$ D4 K0 z# q
LPSKILL lpSkill = &(m_aJobSkill);
) B# ?1 ~% B! ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )/ [3 \5 k( P5 B9 K
{: D2 O( o" ]4 Y V% ~+ w+ W- ~1 I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& `; k: y+ `6 q) q2 _; O if( pSkillProp == NULL ): H8 n* T* ^) E4 C. W* f
continue;
' _) l5 J6 ^. O* q if( pSkillProp->dwItemKind1 != JTYPE_MASTER): O4 w, d& d+ ?$ ~5 ]; U
continue;
6 ^ v. q N( l* U lpSkill->dwLevel = 5;6 y8 v4 C. f1 @5 g. H
}
/ l) K7 k8 W. t8 j$ T- n! E }
$ U+ h! M" D6 c" \ h5 }8 H }1 W- `0 ` l% d; Y4 y/ f: Z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# Y y; J* G3 R( U
if( bGamma )% ?& e: ]9 _: \! }
{7 \& Q1 j" s; u i
m_nExp1 = 0;
5 O7 y5 |) j+ M. h$ v% {! d' F1 I }
" _3 F5 s1 W3 J# _: x9 D0 o' y7 W0 X J2 [+ T( K4 A1 X
( (CUser*)this )->AddSetChangeJob( nJob );, p. H( m; O0 r; t+ Y m1 z0 N# b
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );% g% x3 u; p- c9 s
1 o3 e/ }' u) m5 A8 x) _
0 ^/ \& |- u( u* k c% [( c# V#if __VER >= 11 // __SYS_PLAYER_DATA
' h J. l2 e1 o4 t g_dpDBClient.SendUpdatePlayerData( (CUser*)this );$ f C2 e2 o) Y
#else // __SYS_PLAYER_DATA
4 |! K2 R7 W. ~ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 F% a* n% z3 C) U: B! v3 O2 l& W g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' B, ]- X i4 O6 k
if( m_idGuild != 0 )
4 ?& G$ v |6 g g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; V6 k( O3 U. A9 {) H- d#endif // __SYS_PLAYER_DATA$ V6 o2 S# k* [* |
SetHitPoint( GetMaxHitPoint() );
3 I3 `2 Q+ ~' }' y' j, { SetManaPoint( GetMaxManaPoint() );
; G" m$ H# y3 S6 _0 t& m2 r SetFatiguePoint( GetMaxFatiguePoint() );
! ]2 { ~" S R+ {5 f) B& O* K if( nJob >= 1 && nJob <= 4 )) X( ~% K* g& g/ Y
{' {0 c2 Y0 z7 q7 f/ g
m_nStr = m_nSta = m_nDex = m_nInt = 15;; o2 s& j( R3 ?1 i
m_nRemainGP = 28;
8 S4 R' f m$ @" [ }
2 J' g8 F8 |9 L$ Z9 g* f8 Q if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 k5 d0 D( ^& I7 i' d! n
{! J% C% X0 r# f
m_nRemainGP = 118;
: ^: ]* \1 r1 M/ _ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;* b# E& [) C; s% M
m_nStr = m_nSta = m_nDex = m_nInt = 15;+ g9 A. E; ^8 c' I
}
( e" g* F8 q6 [8 Y if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 w% O# [7 l" x f$ y4 u5 W
{4 ^3 O6 T" @0 k; q3 d
CItemElem itemelem;% h i9 U4 h5 P ?4 o
itemelem.m_nItemNum = 1;* L5 {1 {7 L Q% d7 r2 }
itemelem.m_bCharged = TRUE;3 i& g4 h+ U b9 D! p5 d
BYTE nID;' b0 d6 k/ a& j& x5 v
( S( X \: K- L) g% ~ if( nJob == JOB_MENTALIST_HERO )
! N' }& Z, n) o itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 N, q* r3 r7 n0 u+ ~: } if( nJob == JOB_FORCEMASTER_HERO )
& ]; r& e; E) y- ?; z$ M8 Q# h$ E: n& e itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% L9 B4 S$ v3 z! I' A4 B3 D
8 E8 d/ o# ~9 \. w ( ( CUser*)this)->CreateItem( &itemelem, &nID );( }- @ _: H" j2 x. b. y/ G" N1 [
}: g' |3 z" q9 ^9 {5 H: O# M- s0 ? g- b
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% D, e2 R4 H9 Z7 h2 F4 x* D9 ~
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" l, L( b0 ]: B ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. I% b/ D2 G6 e7 T _! L8 X9 W /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
2 s( k. v% b& X3 D A0 a4 C/ U ( (CUser*)this )->AddTaskBar();*/
4 a' i0 W; z7 o# L( u. H' n ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" [/ L L0 w4 i9 P' ^5 R( h1 {#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) J. J- N7 N# m( R$ N ((CUser*)this)->CheckHonorStat();
^( D* v' `( a$ ~( _. v9 m- z ((CUser*)this)->AddHonorListAck();5 g K; e/ N2 G
g_UserMng.AddHonorTitleChange( this, m_nHonor);- S# [1 D$ I" S0 I+ c* A" \' ~/ P
#endif // __HONORABLE_TITLE // ′Tà?
# O; |! b0 X, a' m$ g5 ^+ S3 ^+ p0 q! c* _ }& s( W: ~# |, Q- W9 }0 v
#endif // __WORLDSERVER. E- p# D* j) h z; [
} % E2 y$ S+ ~ c# f1 S1 _
0 p2 r6 S0 u1 `4 A; y然后你进入functextcmd.cpp并添加以下/ Q k0 y9 D! ^* a% x( X; U8 T
) j' y" I2 Y# k6 X- y1 U' O2 Y% ^
代码:
' o, H0 k: b# ?9 i }) gON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! d" W+ h1 T: b# {0 h O1 Z下面插入9 z7 P( `8 Y4 m4 P }
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
y+ h& n# D/ X2 x7 A4 r9 d0 ]* b7 L) R& L7 p+ H* l
然后你去
* x- o5 e4 v& }: e& T2 t/ E8 M# y3 `5 n1 `3 i3 O. C
代码:
4 ?8 d% Y8 g( f代码
! G+ h6 T) ]7 `! }' rBOOL TextCmd_ClearPropose( CScanner & s )
( d0 Z. |0 l [7 u' K7 Y{* ^$ c$ k0 j% T0 ~
#ifdef __WORLDSERVER
' I4 w8 D! Z$ [ CUser* pUser = (CUser*)s.dwValue;& @; w, M, H/ p% Q
g_dpDBClient.SendClearPropose();
! Z4 o H2 ]) J% P#endif // __WORLDSERVER5 B$ j' E! h- D
return TRUE;) l' H+ Y: T3 O, F2 V# }2 ?! g
}- X" [8 I4 ?. S g4 K. y; O! w
下面插入
% i H+ `' G* x- E% |* s f; z) w2 DBOOL TextCmd_rebirth( CScanner& scanner )
$ p1 | U r8 I. \6 v{( O5 k \3 w5 ?- }
#ifdef __WORLDSERVER, V; ]' |0 W" N- V+ D
CUser *pUser;
1 k6 |/ A+ E* l/ f2 {; N; }( opUser = (CUser*)scanner.dwValue;0 u; u9 r `6 S" F8 t, J) f
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())) |) O* b3 g2 N$ L {! V9 j; \
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
S6 e. R4 z" Lelse
+ o% [; p! j/ B; R; S6 P; ?# f( K6 jpUser->AddText("你还未达到重生条件!");
* {' u" @! x) V2 w' f/ r#endif3 t5 R8 s* g5 z- ~* y1 T
return TRUE;7 _- V/ k( s' q: o" S ^( X0 _" x: M
} - n o' I8 P, o) g4 s4 c7 ^
) ?6 B( Q( U, ~9 {5 o9 [
7 }5 q/ r8 j3 \2 G, h
2 ~% _- X1 j0 n0 b( n% a
- `: P1 b, S, R) N4 H- t( z( ^ |
|