|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel) a$ K4 k$ Z% P! a% ?1 }
+ b" M- t6 T7 b+ f
Mover.h* S# g/ r* J# r7 Z/ E9 c
代码:
4 N3 |- U: `8 W- e: x找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% O8 _, v8 ]/ K# o. q
' N: M' W, p$ f# x% e! N/ H9 A N; A
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- b9 e: y7 }3 z8 D! t3 H7 _3 a% V y. I q2 G
然后你去mover.cpp添加& V$ w6 Y, v! R+ T6 Y8 C
2 t( ^4 ?: A/ [+ Z代码:
4 \- z! V, x8 S5 fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ s8 @$ }, m2 c" k7 ?1 n- S
{: M9 | Z+ w& f- P: l; K" K
#ifdef __WORLDSERVER. F& h0 [7 }" [% G2 M
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó ?% |/ f$ P# a( k9 ?
MoverProp* pProp = GetProp();
[* W+ Q) J( c! ] if( pProp ); K7 @, O( Z2 V0 r8 y) r/ n
{8 d+ \) p5 d- q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. F v5 |5 ?$ s* e* ] {
' q p: u6 M u7 w! L1 V: n1 ] AddChangeJob( nJob );
7 W0 s3 |2 o9 _ }else{3 W( F& A+ e2 Z2 i9 \" Z; z4 z
return;% Y0 s0 l( {+ b/ b0 R2 Z; q) d! r
}" F( t2 V8 a5 C8 S) w' y% m7 |3 T$ U
int nPoint = 0;& Y" j2 n( \7 Q' \
if( m_nJob == JOB_MERCENARY )" K8 U5 W9 \# b$ h$ I. u9 h8 S
nPoint += 40; g- Y4 b. o' T3 i E: R
else if( m_nJob == JOB_ACROBAT )
+ d/ T; U& J' | i' C, v nPoint += 50;
; Y1 F/ s" Y& ^. O# D else if( m_nJob == JOB_ASSIST )
2 c2 S! n; p, f, B. F nPoint += 60;8 W* ]. K" d0 H# V+ n
else if( m_nJob == JOB_MAGICIAN )3 K2 k+ R' s6 _" p* c% B
nPoint += 90;
. [3 |- `3 i* T. { else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 T1 B3 D4 n/ @; l, g! r
nPoint += 120;( b; a' N, x- d4 S& J
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, o& d' }% G0 V$ U nPoint += 150;
( X. {+ a) ~2 |0 j) e else if( m_nJob == JOB_RINGMASTER ), i/ f1 ?" h+ X5 y8 \
nPoint += 160;) _9 W# O. Q7 X# w5 K' L' W
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
5 i- D9 X& F% [: J nPoint += 180;
/ p& V7 y% V% e: k$ _& j( m0 o else if( m_nJob == JOB_ELEMENTOR )
$ ?! a# V5 _+ s# T; z- }& ^( }2 m+ S nPoint += 390;; I: B7 G7 r& c" w9 A1 n! e) g
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). @9 Y8 a, \( F6 X* n( ~. `
nPoint += 120;* g6 G* X/ J( ^
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
' ?7 d8 P* y0 l' _) S nPoint += 150;" n( c7 L$ Q& c4 P* V
else if( nJob == JOB_FLORIST_HERO )- f @6 s. r1 {! I; x
nPoint += 160;5 W) f2 A4 J* L6 t }9 e
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! U- ]5 w) \0 e _' e G nPoint += 180;2 S1 T S. a1 O. [) [
else if( nJob == JOB_ELEMENTORLORD_HERO )
$ g& y( d& n7 R% v2 i nPoint += 390;
( y( ^) }! Y: m3 Q; X w7 X) m! I" {# p2 U; f2 W$ G: O
AddSkillPoint( nPoint );& x9 j% w- N3 l, M
m_nLevel = nLevel;
7 V6 ~0 z" c' D3 x; ?! _
% f3 P1 z* Q4 t1 I SetJobLevel( nLevel, nJob );
8 R$ }& Y+ f( Q a% V! ~8 f m_nDeathLevel = nLevel;
9 P5 ?( _" D' s9 p, k2 t/ [#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 V" Y" i1 ^- i5 p5 J5 @" p# C if(IsMaster())" a* i. V+ {- U, K
{) r0 G( B& [, u9 r1 D* a: n' T. B
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1081 k3 b7 ^: @0 T$ Y: N
if( nLevel > 59 && nLevel < 72 ) Z- c1 l) k/ z! \" p% Y
dwTmpSkLevel = 1;
) Q/ C2 z4 }4 ^' } else if( nLevel > 71 && nLevel < 84 )
) }( ?9 R0 H9 [+ q+ U* ?6 w dwTmpSkLevel = 2;- z4 @8 D+ j/ a0 p8 x! t+ v
else if( nLevel > 83 && nLevel < 96 )
4 @" Q, `" H4 r. q5 Z; Q: x dwTmpSkLevel = 3;
+ V$ J. u( f" ~+ T+ i6 d$ b else if( nLevel > 95 && nLevel < 108 )
, \3 Q# ]$ ~3 T dwTmpSkLevel = 4;
, `/ p s! H, |2 q3 ^ else if( nLevel > 107 && nLevel < 120 )
/ v) [$ `+ w( k$ J# o+ ]. { dwTmpSkLevel = 5;
6 S% U% e1 Y- h3 C4 p for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 B' q8 l& C) U" K; r
{
n* M2 @, p* \+ I0 I8 T3 g6 v7 Q; k LPSKILL lpSkill = &(m_aJobSkill);* B" y# g# L: @. O* t
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 [) {$ v6 w' g0 u$ }
{0 ^! H' u p( B( [) @* F7 @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 | _9 ?& e8 I if( pSkillProp == NULL )9 R% B; @6 D2 Y8 d( g
continue;
: N! z& Y6 S0 z Y if( pSkillProp->dwItemKind1 != JTYPE_MASTER), y( B" B' Y9 `; C+ j
continue;
' }9 @4 \- f" H% [ lpSkill->dwLevel = dwTmpSkLevel;
& k1 u6 r4 h6 F% O! I7 J3 p }" {" f) W; k8 c5 B" O
}: W% I- [: A/ a8 e+ a
}1 T1 j) ?9 I1 ]6 I; ]: Z( S* t
else if(IsHero())( x/ U& E, K7 ]
{
7 r2 J8 r! [2 C1 y" \. W+ s9 O for( int i = 0; i < MAX_SKILL_JOB; i++ ) & i- b: ?+ X- B3 ?5 I8 A
{ - C: o# w5 |4 v: T
LPSKILL lpSkill = &(m_aJobSkill);; D1 I- G; v: ?# _$ x. `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( K) T! Y3 @) G T& i {
; l" U3 F. S% T" N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ X6 w9 [7 B ~( ^; d5 l ? if( pSkillProp == NULL ) F8 D/ v- l* x2 ~: Y
continue;1 [ @- }8 U @( X$ h/ F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 B# f9 S f) x! |$ h continue;# C$ B4 `+ L: F* O) ?; W) _
lpSkill->dwLevel = 5;. x5 m2 v+ n" X7 L. G
}( f& h0 P* g, {. H" S
}7 M6 E3 @& A# k3 v" D E$ x
}: C: m e* D! E' S
else if(IsLegendHero())
0 r+ e. r3 i* T/ i8 ~! \ {2 f9 H# L3 o$ C* J7 P
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- i4 @$ v5 y. s$ D* W$ S { ( ~* T; P: o; g4 \ l
LPSKILL lpSkill = &(m_aJobSkill);
/ O4 }1 w+ u+ r% D if( lpSkill && lpSkill->dwSkill != NULL_ID )/ q0 X/ \* R) b0 O. k
{8 F/ I# b0 C/ W0 l6 p5 x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" T" h- }" l+ { if( pSkillProp == NULL )
# u: T/ u2 H8 F: H& e continue;
# I: B, }& n/ I6 l! v+ A if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 t1 _0 k* T2 b6 t( O
continue;
/ E4 J) Q# c# Y$ n lpSkill->dwLevel = 5;# Q4 b& ?, H! x. @/ P Y
}
3 G: a$ N% Z. Q2 e' y }+ u) z+ k' c$ T/ f. E
}4 Q( h7 j! u% Y1 z( o6 q+ M, d
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ L& ^: N1 v: p3 ~ M& G if( bGamma ), a1 d% H. [) M& ~. r1 A l( i
{
6 B% T- V5 T' X, v, j m_nExp1 = 0;
& b- b5 E- E" n. i" L) {+ z }7 p9 K) F) \$ Y, x8 V" X
4 F( A6 Q8 K. p. t y
( (CUser*)this )->AddSetChangeJob( nJob );% h- ]: s8 Y) R& ~7 x! p
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 e& j/ s* b# f. e! p" E
* ?! B+ ^1 k, w* a( g" Y8 L
# Z5 n0 F7 W9 C#if __VER >= 11 // __SYS_PLAYER_DATA
8 |, j6 M1 y. }1 b g_dpDBClient.SendUpdatePlayerData( (CUser*)this );; H% G, Q( C: Z, U
#else // __SYS_PLAYER_DATA \$ V: H: ^+ _# s3 i
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );" o% o, K/ t6 L8 [( h3 m6 }
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: f% S7 c- O, U/ [' O+ t5 S if( m_idGuild != 0 )8 Q4 E$ |' t9 S0 n- |
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );3 E+ j9 X" s+ S3 s
#endif // __SYS_PLAYER_DATA8 Y B5 X. r+ d! k- g% S
SetHitPoint( GetMaxHitPoint() );
4 K' O8 D+ {5 L SetManaPoint( GetMaxManaPoint() );
, T# i* v$ c! J; A% l" p, Z9 R% ?: Y SetFatiguePoint( GetMaxFatiguePoint() );
/ |8 T& S7 ^ `0 C( { if( nJob >= 1 && nJob <= 4 )
5 ^, y) |- Y: J+ K) e x$ _ {# g: u h* R2 T( a9 d3 R
m_nStr = m_nSta = m_nDex = m_nInt = 15;; u$ j1 m: @' L6 G0 N
m_nRemainGP = 28;# M5 b m: p: c( o8 z
}) a0 ~- }8 [/ u* ?0 G! b! _2 l' y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ) o( N7 `& k' s+ B1 M
{
2 |; q4 K9 C/ E+ ?+ f( ^3 g m_nRemainGP = 118;
" I: M$ n/ H& c# p( ^" x3 O: j //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 Z/ J+ a, b9 \% u
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- W3 D. z9 Z6 w }
i% h2 \. |, r( i( k if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ); ^+ i2 X7 B- ~$ c
{
( J: K( D: D) @& m9 h9 m CItemElem itemelem;
$ O" L8 i4 N+ j, i( k( E itemelem.m_nItemNum = 1;& b6 U8 J, }3 Y* @. f! g7 b
itemelem.m_bCharged = TRUE;9 C9 o: m: `8 x
BYTE nID;
6 j2 D. f% ^/ z J8 P
$ v: O$ j/ [+ o6 [3 L if( nJob == JOB_MENTALIST_HERO )/ k- ~5 Z. x9 Y7 V+ H
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 g7 ?2 V& h5 R
if( nJob == JOB_FORCEMASTER_HERO )
) C+ O b, G8 ^" U* F. ^: r, ?1 e8 ^$ g itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' X: ~" \6 r9 N% U3 a; ^
5 j' K9 ^3 M+ Y2 i/ W/ d
( ( CUser*)this)->CreateItem( &itemelem, &nID );4 ?& W1 ~2 ~9 u4 v) O- r( e
}
2 D& R0 [, b# O g6 ~# ^ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );, K# }$ P5 U C3 n
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 M/ r! u S' Y4 r ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ J/ b# D# ]3 S/ f" X3 \6 t
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% C9 J! g/ }4 r) B8 Q# @. o0 a8 T* ]! @
( (CUser*)this )->AddTaskBar();*/3 Z0 @! { S5 C1 ~+ E
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' q- q) g; o3 o3 U6 g#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ |6 l& [6 S- J3 d' h) s( J9 T2 Z) L ((CUser*)this)->CheckHonorStat();6 [2 `5 R! h4 l1 ^+ @# ?. u/ ^
((CUser*)this)->AddHonorListAck();) g: H4 w' r& o/ A, Q
g_UserMng.AddHonorTitleChange( this, m_nHonor);8 ] f8 K" ~) `, U; r8 T( O" D
#endif // __HONORABLE_TITLE // ′Tà?
3 l$ r- ~ c+ E. W) s }
" f4 I. A+ T6 A4 O; _6 u#endif // __WORLDSERVER
( _, _7 v- p; M' R- J3 C# x, _}
; h3 n$ ]4 u2 n4 n. H$ s* B" s8 t) z$ E6 T" q
然后你进入functextcmd.cpp并添加以下5 m% l4 y; Q4 D6 Y7 a. O
% R! a3 V& q" D# T
代码:+ Q2 W: t0 K, ^, @2 L! c
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 S+ b, o' X7 V0 z8 W& A3 n; B4 {1 t2 G
下面插入
" w6 W: ?! a8 @: T- _ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
i. Q5 h" x) n
g1 z# ?/ T+ e% L# }# H7 L+ G! ~然后你去
$ e- w) h, {% }* h' g0 p' M
, b$ p2 D. Q) R1 d* g" |5 O K9 m代码:- l- j2 d W! n" E L
代码
1 b5 \; A' W# b! XBOOL TextCmd_ClearPropose( CScanner & s )6 E' n$ U( z% m! b# ~, G
{
- a& n k; r \#ifdef __WORLDSERVER
5 a f3 ?+ U0 o" P CUser* pUser = (CUser*)s.dwValue;
! c1 a9 T' X* v$ Z' N" }; e g_dpDBClient.SendClearPropose(); i, v6 f, f5 n, f5 J
#endif // __WORLDSERVER
4 b8 {8 w+ U/ ~ H( \ return TRUE;' X4 D8 ]* q' _: `: F# r
}
7 R4 [0 n+ M1 r' q; @* H% a下面插入2 Z9 L# k& Q9 ?
BOOL TextCmd_rebirth( CScanner& scanner )
9 q% a% m, y( {$ q2 C{
( Q* ?# Y' _" J+ ^2 m#ifdef __WORLDSERVER* S% D6 z, V7 y! @5 p
CUser *pUser;5 k. }- s. b" J9 N7 N
pUser = (CUser*)scanner.dwValue;4 m7 [5 R5 i" b* |( H! e/ }
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 k" c/ Y- v* [% g3 h4 C
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 R/ B7 p- B3 `8 a8 q% I
else5 d0 |- B0 ?7 r% z' _; C
pUser->AddText("你还未达到重生条件!");
' ?; T& t: ~4 Z8 ?3 ^9 g#endif: f) f$ n/ P; d$ x, l3 t
return TRUE;" O; b; q3 q+ U7 a. F: m
}
" V, q g# q1 y9 ?2 ]" m2 w8 e. _1 h+ o! ?. S$ e- g4 W
4 u: }: Z1 S/ F
3 O7 n" J0 Y0 ?; N9 s8 S/ _. A( X6 |, H8 W
|
|