|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
% ?, O5 p8 N2 t6 F/ b5 p; g4 r# P8 s- s3 E o
Mover.h' e% j0 o) ~# F: l* c$ J
代码:
4 {2 C# {$ o# R* w找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ g. H0 [& b$ n
; m0 v6 p% [4 f5 R8 ]下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 n- {( a I) f
) G5 L( N( |9 a! u; h# l4 ^8 x# `
然后你去mover.cpp添加* ?1 y% n# E h8 H- T, ^
, D$ c/ a1 [! J) ]7 i( C# z+ u6 r代码:5 n0 I8 |6 p$ K2 X( f
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; {9 a" u1 A5 O" _8 W5 t4 R& s{* W/ R, D& `& K3 s
#ifdef __WORLDSERVER
) P- A1 L$ v( a- B5 s // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 k5 E5 Y# C; O1 g6 r1 {
MoverProp* pProp = GetProp();
; s# M @$ A2 [& @5 R0 o if( pProp )
- c, P! M6 g( n; s s2 j. x {
( f. `# z& |: a( |" Q& ^; n8 r' N if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 F1 A$ M3 L! a9 E1 u {2 n5 J4 A- T1 [
AddChangeJob( nJob );
K9 ?$ n2 `3 X, a, ]3 ^ }else{3 f& t* k( h7 I7 C2 g- V5 z
return;
5 K6 \4 A* d. o& \ } H9 l. t) t: G9 \* Z. ^0 z3 S
int nPoint = 0;
; g9 S h/ v$ f8 K v% N# X: z if( m_nJob == JOB_MERCENARY )4 F) J( l2 P8 n B+ s1 c; |
nPoint += 40;
7 V8 H4 h' f# j; n else if( m_nJob == JOB_ACROBAT )& V" Z( z2 X" b
nPoint += 50;5 h3 ~$ q1 t# j5 i! G6 n I
else if( m_nJob == JOB_ASSIST ) \+ \# V) h- T! Y
nPoint += 60;" Q7 A2 f m% r1 G% H
else if( m_nJob == JOB_MAGICIAN )
* M2 K8 K% B/ J) C2 t nPoint += 90;
2 m! O" B9 F( d z" Z& `( x else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 H+ U& |. y' n6 E
nPoint += 120;7 f N' A" L9 M! [
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 n5 `9 z' }, ~. b. H5 ~
nPoint += 150;% P! b0 K" i) Y: G$ h+ _
else if( m_nJob == JOB_RINGMASTER )
: q$ u0 H8 h1 H+ x. T1 u nPoint += 160;' p+ M" d- ^$ a% [- @
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; }' }( v1 w M* ~6 f4 d, W& h: f& a nPoint += 180;
. C& n8 L: X9 b, k6 h: L else if( m_nJob == JOB_ELEMENTOR )
. T9 p! y' O' k+ M nPoint += 390;
( ~+ ~5 O$ }4 ?# P8 D( K& B- O) f else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 r- j* \( @% X1 J nPoint += 120;
5 W- F# u z5 n' R) e$ {$ z else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 I/ n1 ~ t8 f! S nPoint += 150;( N; B0 q$ b4 Y4 y. [. A
else if( nJob == JOB_FLORIST_HERO )* P0 y* N, I+ _2 ^. ?
nPoint += 160;
; J6 ^; {* a( R# v else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ) U2 o) j, _6 Q: ?
nPoint += 180;* w' t9 {' q& N$ u5 g$ P
else if( nJob == JOB_ELEMENTORLORD_HERO ); m: n/ F2 D1 x9 Y: ]" ^
nPoint += 390;
! Z8 j5 S! ]5 u! p( c
! j3 |, \. L* B, V AddSkillPoint( nPoint );
; d. W* A5 f5 Z; e m_nLevel = nLevel;5 @) m4 w$ J2 H
; u* k g: L* u" |$ L3 r SetJobLevel( nLevel, nJob );
4 v5 H; N. C: z m_nDeathLevel = nLevel;- [ r1 M$ V- u# H. L
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! X1 }/ E8 V. [9 B: p/ G0 K if(IsMaster())
+ k6 r- V) C9 Y% U5 a {
! v! {0 Z0 O& v* j* E int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, ^/ K: v( Y! D0 H) c1 [ if( nLevel > 59 && nLevel < 72 )9 Z* n$ w- q. Y8 D* x
dwTmpSkLevel = 1;
/ m* v. `& h [1 P( y& {% n else if( nLevel > 71 && nLevel < 84 ): o4 @' H3 l0 u9 Q; \* s# D: E
dwTmpSkLevel = 2;* \( C2 W [: Z( Z9 }
else if( nLevel > 83 && nLevel < 96 )
3 B( ]4 ~! {1 f dwTmpSkLevel = 3;$ U# t. _' H1 H3 Z6 M) M# j7 L
else if( nLevel > 95 && nLevel < 108 )! _! J' i4 Z! {$ [& J+ E
dwTmpSkLevel = 4;3 t1 w8 ^( U+ E- e! S
else if( nLevel > 107 && nLevel < 120 )* H- ^3 R* {8 Y4 Y
dwTmpSkLevel = 5;
7 |# C1 d( o- L0 ^ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 [' b6 c7 F! A1 x
{ " Y H5 ]3 Z1 ?$ m2 J1 d7 g
LPSKILL lpSkill = &(m_aJobSkill);+ k4 K) g* P/ @" O0 D
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: _5 e9 d- o6 J: \/ ^% i! N {" [ H- F7 m4 i% m1 B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 L9 R# y0 M- n$ G# C
if( pSkillProp == NULL )
0 g% p! Y0 D0 A% Q/ M" I continue;
2 k# L/ N) V$ C! W" [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& u) F+ u' S& S2 I5 ^7 u! R continue;
% W) Y1 W: s. z3 n lpSkill->dwLevel = dwTmpSkLevel;
' N- Q3 B# a4 x }/ f4 p# R3 S" Y; v
}
9 }8 \% W& R3 c }
0 G2 @/ W' |2 D4 M! n2 E8 C2 ^ else if(IsHero())
' q4 g+ h3 }4 o4 ?5 R {
, J) ~* k7 [( \$ W+ T for( int i = 0; i < MAX_SKILL_JOB; i++ ) * Z* F1 m8 Q8 `
{
. v3 q9 A _4 A* }/ e LPSKILL lpSkill = &(m_aJobSkill);
* H2 x; Z1 I& ` E9 t: W if( lpSkill && lpSkill->dwSkill != NULL_ID )7 F- Q7 ^( A# C. b; e4 I( {
{
. s9 ^% ~' }2 K p7 S0 a+ F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ ~ k8 t [! b9 h E5 Z/ i
if( pSkillProp == NULL )
4 E- R- z! x& r1 A continue;- m5 @2 [" q8 ^6 p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ _$ z$ u4 L7 m$ {* ?! J
continue;
. U$ [$ |/ B6 P) [, Y/ d1 m$ D lpSkill->dwLevel = 5;' \) k3 S' P7 b x$ U
}( a4 M5 X; h2 w. C. t* M. [# ^
}
" ^/ O7 S6 \% ~# O' R }# A" J, I$ J$ q; w
else if(IsLegendHero())
% I4 X) T# U* n& p' w {
- j7 a2 @" o/ R$ i6 |' q+ g8 R; u for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 O3 F6 I+ o$ D) f" R1 N6 w- \' [ {
. o5 W7 F5 m5 b% s1 ]9 ?* H. b LPSKILL lpSkill = &(m_aJobSkill);1 d- u0 @9 T* @$ N% W
if( lpSkill && lpSkill->dwSkill != NULL_ID )' d' I9 ^) S! Y! J( y- T
{
. P7 y" P, _4 F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & z# \& v& Y- ^+ c; J' {% C) D
if( pSkillProp == NULL )
+ w y% a. ^3 f! R; I continue;
" y5 V6 n8 ?% I# k% W* f6 K5 d4 s1 W" Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( M8 Z' D4 _0 V' L continue;
5 Y7 j$ S$ \9 u3 c* c- w1 @ lpSkill->dwLevel = 5;- n* Z* ` N: H% W2 {( Q5 M+ `) }
}1 G9 f) G: \" z: A4 x
}
$ d) p# M1 I% ~8 } i) h }8 b8 f6 E5 w d8 l. {. n
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 F( x1 e ]' m# J! M
if( bGamma )8 ~# {+ G- S+ g# H5 w5 @
{7 O& y$ t, b* I: J; O2 S! C
m_nExp1 = 0;. j( N) H) J( k. f: l
}
" E- U1 s! \$ W, T( U& [2 _# Z
, B6 M6 ~) k1 h( @ ( (CUser*)this )->AddSetChangeJob( nJob );8 o& ^) D/ Z/ ]5 z$ x- `
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
8 T: [3 u# S, N8 l' i( F4 T% e ?; X9 F
) G- j+ y1 [2 v: R- c8 i: ]#if __VER >= 11 // __SYS_PLAYER_DATA3 Q( T8 o& P" _7 s$ R* h! z/ b8 E
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 z/ H: |8 S2 e7 i+ W5 g8 J
#else // __SYS_PLAYER_DATA
8 D, t1 \' L* W" U* c( k+ F8 C" V g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ x! c2 r3 \$ ^# i; `. H; @ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
% J2 d& L4 G. U if( m_idGuild != 0 )$ `% t. l* W$ u' O1 v. V' K$ ~% ]+ B
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
- ^: F7 v8 [* {! V#endif // __SYS_PLAYER_DATA
) |% D! V. b& S* { SetHitPoint( GetMaxHitPoint() ); a0 k2 r. z+ k2 J5 c( F
SetManaPoint( GetMaxManaPoint() );* `2 L' o4 |% K G, G3 y' T. r
SetFatiguePoint( GetMaxFatiguePoint() );
$ Y3 q! x# _7 S5 X* j5 V& C0 w if( nJob >= 1 && nJob <= 4 )
0 L% n- p [1 }# j( V' g {
& s& I& z% m6 w' b* J h& ? m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 H6 }4 W$ ] w: Z* S) g- v m_nRemainGP = 28;
, ]3 s+ M% Q' |; Y# X: Z7 P }
& q- [4 [: J ^% t. J4 J if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )& v) Y% V& C; D6 x
{
8 `7 S/ s$ i) _) S! k+ ^! t m_nRemainGP = 118;5 S' J6 ~$ R1 c$ M( b& t" L
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 e9 {2 f8 I( O4 X2 i m_nStr = m_nSta = m_nDex = m_nInt = 15;
% e, ?% v: ?9 {' [. n }+ ]. J C0 c: i
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 E: V. @* B! P& ? ]( c( S
{$ p# V8 _; p+ Y! X% F( V
CItemElem itemelem;5 E& k" g( N. C, A1 F' z2 ^
itemelem.m_nItemNum = 1;/ x$ A( O0 e* j; ?$ s3 v8 ^% o- y
itemelem.m_bCharged = TRUE;# _. p2 Q7 d6 V2 A! z7 Q: z8 n4 f0 h
BYTE nID;
) w( Z- L: @ ?/ H7 b0 J$ M& n9 k$ g5 A5 u6 h
if( nJob == JOB_MENTALIST_HERO )$ C' \! s/ n! G# O* O
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 y; c+ F. ]' b. ]6 A
if( nJob == JOB_FORCEMASTER_HERO )
( M; T( O5 U$ M$ I1 ]! w8 q itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
1 f+ @* e) s3 h3 i. B' a. y
" n2 L k3 u; e( c ( ( CUser*)this)->CreateItem( &itemelem, &nID );
) u; v& e. R: o$ K0 F4 Q& t% c3 { } e0 Z# F! {+ V5 F
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# j6 b* ^, i; _' |) j5 f" }, f
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
7 `; k. u* y0 |9 { ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
; w' w+ r6 d( i3 X% D /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- d* `* Q* e% O r8 k8 s! L2 [ ( (CUser*)this )->AddTaskBar();*/
" z+ e' A6 G- V- y1 ]& ? ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* u8 a5 z; s, h8 p Q#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 T6 p( |, @/ V8 j5 b ((CUser*)this)->CheckHonorStat();9 `/ d E- S' n$ O
((CUser*)this)->AddHonorListAck();
; Q. l$ g5 V8 w4 L7 O- n g_UserMng.AddHonorTitleChange( this, m_nHonor);5 h9 x- s. O- h5 y2 Z. v
#endif // __HONORABLE_TITLE // ′Tà?6 a8 D. q; P: \# q, ~ K! Z( x
}: {4 m4 b2 z/ m) ^3 b" r
#endif // __WORLDSERVER
/ W8 G2 y; ^# d+ P( O# t T5 `}
1 D% S4 c/ m' E' [$ r9 f9 [ z' O* w% c8 e, P
然后你进入functextcmd.cpp并添加以下
/ H' L$ F) f6 [; R( u& a
) S- k5 o2 ~* o8 m" W N }代码:
; ~4 K0 n+ C# JON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ E3 r' h3 U6 d( l' y
下面插入* W8 }+ B3 m8 e9 v" C7 d
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ) S E$ M9 ^, B/ t
8 \( @& c3 S. _6 X然后你去
( f6 L, ~; V" @7 T: }, c! Y$ ]2 t l! L; w
代码:! T! y. |7 W$ q
代码
: @$ G$ H! [/ \$ H/ e& G1 S6 a. Y3 LBOOL TextCmd_ClearPropose( CScanner & s )4 D6 J b. R& J* D
{
& T. J* p( k m7 T#ifdef __WORLDSERVER! R' w w* {1 {+ c: x
CUser* pUser = (CUser*)s.dwValue;. }8 ~1 z- F4 q/ R, ~7 M
g_dpDBClient.SendClearPropose();
1 y) T/ p, b' e, Y) F& r#endif // __WORLDSERVER
5 {. D0 {7 j- v6 l6 e2 S return TRUE;
: f* G, r w- y4 k% A5 ?0 v/ |}/ Y! ~7 H, r$ O& H5 `! z" l, ^
下面插入6 }9 B3 U r Z5 o+ F
BOOL TextCmd_rebirth( CScanner& scanner )
9 a! P |; R; a6 s{* S+ c3 |6 V1 o- g
#ifdef __WORLDSERVER
5 x) [$ C" Q9 jCUser *pUser;: f9 ?- o, X5 W) r& n
pUser = (CUser*)scanner.dwValue;
' y# U- A& x3 {9 I& L2 hif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 S. p; r3 `. m9 w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" F% ?$ ]3 M1 G3 p8 X& q j) R* oelse
/ o. g$ d5 ~+ kpUser->AddText("你还未达到重生条件!");
" R+ _( m5 ~" W1 m3 t& w9 f) v#endif3 V% K9 I$ K# G+ g& s I' J
return TRUE;
4 f6 N) C6 h# q) t8 Z6 c* X6 N4 e8 V, x} 2 e% R7 O0 U! o# _1 f3 d
! ^+ z% c( I1 ~, u3 D3 O1 C
( o9 |9 Y# j8 K- c$ ]: ^
/ O$ Q$ h" s+ m8 L) P! E T) {: c( `; u8 H5 u8 z
|
|