飞飞世界论坛

标题: 通过命令重生 [打印本页]

作者: admin    时间: 2016-1-10 03:42
标题: 通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
- z  T% }% o& p& d( N
7 }. G( i, Z# g  k+ ~3 pMover.h# u( f; T1 a& s0 S0 L
代码:+ V: J* q( w+ ~% R/ N2 H. N: F! t
找到: void            InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE );            // °′???| nLevel·? 1ù2?áü/ s( C4 \# X) k  _& i/ p+ U

1 _$ T& Q( R; m9 m  o4 E. I下面插入: void            InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;  ! h0 G" o: ~# m0 c- H
( Z7 W* I5 b  V7 ]& Q2 g
然后你去mover.cpp添加
' f( ?+ L% |# A+ k
6 A. \7 {, _, I  k; q" [代码:; a! Z2 n' e5 F: a6 M
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ j9 ^* g8 `& x* k/ c{
( t, m: h% ?! b0 {) k3 ?#ifdef __WORLDSERVER/ f+ H# v0 ?  E0 k
    // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó3 _$ K0 p& O5 `5 O8 J, \# A
    MoverProp* pProp = GetProp();# N+ M- s% c- I
    if( pProp )4 x3 ^2 N5 ~. y2 X+ {4 ~: E& M" l
    {, Z( K( L$ O7 q% e
        if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 x0 _. a/ D) {" W2 A; v3 [        {
' s7 M" k3 P8 I            AddChangeJob( nJob );5 r/ }" s) y8 r0 z
        }else{
3 p; P: G4 E. h            return;
" [. W7 D: C0 `  S        }( G4 t5 |+ R) ]$ p4 w1 {& z
        int nPoint = 0;/ w/ W0 b! w+ P( I
        if( m_nJob == JOB_MERCENARY )
  H7 B4 t& i1 e: }# X% ?/ m            nPoint += 40;, J- \7 }$ ]( Z
        else if( m_nJob == JOB_ACROBAT )
, i- e) T5 {# j9 O( u" y6 }7 g! R            nPoint += 50;
9 }- E; E) I, _2 i! T        else if( m_nJob == JOB_ASSIST )
; q/ L1 |3 V) ?0 @" D            nPoint += 60;5 V1 H6 M  _1 \! k) ~2 ^
        else if( m_nJob == JOB_MAGICIAN )
5 L3 i  H: |5 }# h$ N, q3 V5 a            nPoint += 90;2 f, Q7 D5 K+ n6 r8 A( Z" g
        else if( m_nJob ==  JOB_KNIGHT || m_nJob ==  JOB_BLADE )
( v. `/ g/ Z, v. X- r1 q% \            nPoint += 120;; x3 t6 b2 i; b2 Z1 V! g
        else if( m_nJob ==  JOB_JESTER || m_nJob ==  JOB_RANGER )6 c# C4 i0 H7 b$ f3 j: O- I0 {$ _
            nPoint += 150;: @' R' t* _& m/ y8 e7 |( ], e
        else if( m_nJob ==  JOB_RINGMASTER )/ ]6 ?8 B  h. f" c
            nPoint += 160;
0 z: J! I! S; ?5 C. l7 H6 N" U        else if( m_nJob ==  JOB_BILLPOSTER || m_nJob ==  JOB_PSYCHIKEEPER )
0 x  f2 N% C: u. {8 v  N            nPoint += 180;4 f  J0 F. L. i1 w2 z- x
        else if( m_nJob ==  JOB_ELEMENTOR )) T8 @0 [* ^& E$ o6 Q
            nPoint += 390;
' u$ i/ M4 a. L) ?* l: m2 v7 l        else if( nJob ==  JOB_LORDTEMPLER_HERO || nJob ==  JOB_STORMBLADE_HERO )0 X' G0 j# K; \( U- }
            nPoint += 120;: _: j" u2 N9 t
        else if( nJob ==  JOB_WINDLURKER_HERO || nJob ==  JOB_CRACKSHOOTER_HERO )% k& a. m" l  m
            nPoint += 150;! _2 {1 l& }3 ]+ x7 t  Q
        else if( nJob ==  JOB_FLORIST_HERO )! `; W9 I8 K1 o8 ^. ?4 t7 R
            nPoint += 160;. x7 P- ?% X5 L: R# j
        else if( nJob ==  JOB_FORCEMASTER_HERO || nJob ==  JOB_MENTALIST_HERO )
1 ^* Z6 }" O) Y            nPoint += 180;
' B+ k( x! F+ {& o        else if( nJob ==  JOB_ELEMENTORLORD_HERO )# A7 h* l3 Z8 U" i; I0 L
            nPoint += 390;
9 H" [  C- ^& u% S8 @' O& ?: `9 q2 b9 L4 [: t. \" A# n
        AddSkillPoint( nPoint );+ {9 V! _: g: H( k
        m_nLevel = nLevel;5 X- r' P0 [! [
2 [/ U3 t0 B1 {( B2 `6 C" {
        SetJobLevel( nLevel, nJob );
/ U; W2 N7 l# ?0 E3 K& _) s' x        m_nDeathLevel = nLevel;% Q8 ^6 @8 d: @; w% P
#if __VER >= 10 // __LEGEND    //    10?÷ àü?????o??    Neuz, World, Trans
4 K8 ]/ t- j+ z4 C/ J        if(IsMaster())
4 c: Y9 R- Q& R; u' J1 a        {. w- l2 t1 V! W7 j  r/ D( {
            int dwTmpSkLevel = 1;//60, 72, 84, 96, 1088 }/ Z0 w- N& U% W
            if( nLevel > 59 && nLevel < 72 )4 T0 k$ s. G! _. P9 b4 R7 Q3 ]7 t) e
                dwTmpSkLevel = 1;
  j0 `+ {1 h: z            else if( nLevel > 71 && nLevel < 84 )9 v$ m+ q) ~, D
                dwTmpSkLevel = 2;
! w8 e4 ]9 {$ s' P- g! t: O            else if( nLevel > 83 && nLevel < 96 )( z0 L$ M- G! D
                dwTmpSkLevel = 3;3 B) [, O! X8 U3 z4 g
            else if( nLevel > 95 && nLevel < 108 ); G2 {/ @, {6 S
                dwTmpSkLevel = 4;
- E9 L. H+ t% d8 g' K            else if( nLevel > 107 && nLevel < 120 )
+ l# N. L7 Q) a; Z0 _                dwTmpSkLevel = 5;
% ^6 g9 @' D& k. Q3 f& L; o- Z            for( int i = 0; i < MAX_SKILL_JOB; i++ )
, r. }9 s& y) u; I- h. [            {                - g% r' d  I( C
                LPSKILL lpSkill = &(m_aJobSkill);+ w$ q2 A, t/ S8 Z
                if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 A. |* }3 b5 x% p( \                {  M' n# i% i3 B+ r; J
                    ItemProp* pSkillProp    = prj.GetSkillProp( lpSkill->dwSkill );            
. h% e8 f% _8 T                    if( pSkillProp == NULL )! B0 I  R3 v+ N' N' c$ S# J
                        continue;. O& q: I% S! G6 i- k
                    if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( v9 k) P) J; ^2 E% l                        continue;
# R! o* y# c+ G8 W$ L' g) r                    lpSkill->dwLevel = dwTmpSkLevel;! p7 W/ p% a1 Z3 B1 ]( `9 q
                }: h3 ?$ i# s2 I+ C, p
            }8 ]) ^; S, B' F/ [0 `/ L. F" b
        }+ j) c2 R7 e- r1 G  j9 \" t9 t" ~- f
        else if(IsHero())
* F4 g: J6 n# p( n" t9 h        {
, i1 \; X' U8 g! p$ s            for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 @; F6 b# t4 K% _' Z$ S
            {                . S, \1 x' h& j3 s; K0 q
                LPSKILL lpSkill = &(m_aJobSkill);0 W9 C# j7 I1 m
                if( lpSkill && lpSkill->dwSkill != NULL_ID )7 V2 I1 f- F4 O+ B
                {
$ l5 e' _# e7 y+ p                    ItemProp* pSkillProp    = prj.GetSkillProp( lpSkill->dwSkill );            
8 S0 v" H' F4 |  U; I2 a2 P0 p                    if( pSkillProp == NULL ), R% Q3 v# i$ r/ g
                        continue;$ x' G$ T: ^( I3 Z
                    if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) k( A) q4 l7 I7 S8 P) q
                        continue;
0 Y) H+ z( p: ?* N0 C                    lpSkill->dwLevel = 5;: @# c) v2 F7 j
                }4 ~& B6 W8 z; X+ Z. E9 k" K
            }
' f* O/ ?$ {9 f: k# C3 {        }
, q& F$ I5 B3 r8 b        else if(IsLegendHero())
6 d: z& p. `/ Q9 W- f1 Q        {' _8 u$ t- h# X; B$ w3 K" }' ~
            for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 r4 `8 y3 {/ g# c; y8 g
            {               
, V1 ]8 w5 ~( [                LPSKILL lpSkill = &(m_aJobSkill);
4 _2 b+ |- N# j7 v                if( lpSkill && lpSkill->dwSkill != NULL_ID )7 }# k5 K1 {1 s, W9 Q' x; C
                {
- C# S, A- V8 x1 O                    ItemProp* pSkillProp    = prj.GetSkillProp( lpSkill->dwSkill );            + K# S% M1 D! y
                    if( pSkillProp == NULL ), N( R+ e! k4 ~, R
                        continue;
% m. F4 v1 h9 a! h7 y$ ]                    if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- r0 i% d1 z# t7 k$ e1 k                        continue;  Z3 S  t/ D8 k# w; ~0 x
                    lpSkill->dwLevel = 5;2 q* j2 n- T4 ^* w
                }
2 ?- p# f* ~1 d            }
$ @3 J) v, R7 _+ H6 m/ Z5 u! W        }8 P4 K: K( A2 J
#endif    //     __LEGEND    //    10?÷ àü?????o??    Neuz, World, Trans
# R9 D, x' z7 H        if( bGamma )
3 h- s0 E: o5 k. `        {
$ N: P8 j& H" E9 {- K# A1 Z4 Y* v            m_nExp1 = 0;4 `. J& h: m" s- `* Z
        }
+ V' q2 o/ T9 _% }# v6 r# K' V  ]2 M1 U
        ( (CUser*)this )->AddSetChangeJob( nJob );5 R; M' }3 q  S, q  ~, l
        g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ M* \4 t% w/ f# @) A

" }, S2 g3 b  q
4 b) [' d& x6 K#if __VER >= 11 // __SYS_PLAYER_DATA+ P% \& m: l. K. o$ n3 {5 f
        g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ g  Q$ J2 M( u* I7 G. p#else    // __SYS_PLAYER_DATA
$ Q& P0 s1 a, s- u5 R        g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 {6 s0 g8 k7 G+ v7 ~- b; i        g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 ~  \$ l# |" c, [
        if( m_idGuild != 0 )0 [7 k4 d& ?8 s- w* e9 b
            g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" v1 H  v' f! E8 N: e3 I#endif    // __SYS_PLAYER_DATA
8 ]: ?9 \2 J1 I" W. m- Y6 S# w  q$ h) C        SetHitPoint( GetMaxHitPoint() );
3 ]6 h7 W" ~: x. c( l2 q% w        SetManaPoint( GetMaxManaPoint() );& F0 f0 X" }6 N. U
        SetFatiguePoint( GetMaxFatiguePoint() );3 L: B- e: o. T8 m
        if( nJob >= 1 && nJob <= 4 )
( Q4 \! F4 V) X+ d5 e5 J: M  k        {
3 g) Q$ @; ~$ z) e            m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 w8 u( o$ n: Q. F4 I" K3 P- D: C            m_nRemainGP = 28;
# D! B+ R/ m; O* D        }
1 H$ S) b6 B! x% D  H+ M1 w3 f5 N  v        if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )! b1 K& ~$ z- y/ c+ ^, a) O
        {  a  P3 i) k& `: j' d* B1 Z' {
            m_nRemainGP = 118;
% @: \: M% v) I* e            //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
- B  z( _3 Q: p+ q: A            m_nStr = m_nSta = m_nDex = m_nInt = 15;5 N2 v! m! z# H( P
        }
+ _& ]7 A* S( }7 B; h        if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 R* {& a  T2 p( T- Y7 ^2 A8 |        {
3 f2 c9 o7 ?3 h9 Z. y& w! B            CItemElem itemelem;
1 f( n" a" {3 r% A7 W$ V' ]1 N            itemelem.m_nItemNum = 1;
- o+ [  z9 H8 j3 c- e3 i            itemelem.m_bCharged = TRUE;+ H* A; r( r: r4 D
            BYTE nID;
6 M7 R0 r% z) A8 u# \& C+ e/ t
0 W9 \% H( Z5 \4 `            if( nJob == JOB_MENTALIST_HERO )5 c: i2 B) m! s9 e4 E& ]9 o; {
                itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 D0 p7 Q' f$ j% Q            if( nJob == JOB_FORCEMASTER_HERO )$ R' _- C, E, r+ q9 I  M
                itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
6 Y/ [* a: U7 U
& V1 T+ I  ~* C* I            ( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 I5 N% d% B- ~* ?* ]4 X        }, b  i7 {, u8 B! c( }2 J
        g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. {  X- W6 p* D        ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: b. w+ m! d0 Y
        ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );! C: g9 @# H6 B) t
        /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ c' r1 D: E5 \7 V3 w        ( (CUser*)this )->AddTaskBar();*/& k  ~; H+ z, W3 h, R
        ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );7 x& t5 S2 X* M+ U/ c
#if __VER >= 13 // __HONORABLE_TITLE            // ′Tà?
( ?$ t) G0 D9 j6 ?# ~" }        ((CUser*)this)->CheckHonorStat();' k1 U5 E  _; N+ _- M+ K1 o4 }6 Y2 H
        ((CUser*)this)->AddHonorListAck();! X; `* C2 \( @' n& r! _% ~/ l) Y
        g_UserMng.AddHonorTitleChange( this, m_nHonor);
! p' `; t% u$ e# f" ~#endif    // __HONORABLE_TITLE            // ′Tà?
$ q9 d1 Q( g( o" U    }
. u' a! d) ]7 K- Y, J3 P#endif // __WORLDSERVER
5 U8 i7 b/ T1 y& u# c+ Z}  
" M7 z- n, d: U# W8 x6 r& v9 P" ]' T* C( \% J. B
然后你进入functextcmd.cpp并添加以下
* C9 Y6 Y  \# q; l! u# f
8 t/ o7 U6 g  t! J代码:! @0 }" g+ z' V5 b$ Q0 e# c; ?
ON_TEXTCMDFUNC( TextCmd_say,                   "say",               "say",            "??",             "??",      TCM_SERVER, AUTH_GENERAL      , "?ó?èàó [/?í·é ??àìμe 3???]" )9 [! H, G/ @. D6 K# d: {
下面插入* V  }$ h6 k. |" X' G0 w* {
ON_TEXTCMDFUNC( TextCmd_rebirth,              "rebirth",          "rebirth",             "?ú·1?÷??",       "?ú·1",    TCM_SERVER, AUTH_GENERAL   , "?ú·1?÷??" )  
2 j% }3 F( x- Z0 Q: I" q+ ^3 U3 f+ Z4 R
然后你去$ N- L5 w+ p* ^% L
) z1 |. t0 k5 H' j; k" u
代码:
+ y1 y4 [% x6 J1 |/ e  ^代码! c9 W. a6 W) S
BOOL TextCmd_ClearPropose( CScanner & s )
+ l0 ?: W  V+ {9 a0 d3 ]{) t8 |; t5 k6 g' k
#ifdef __WORLDSERVER
0 n, R( C& d' I6 h7 V9 \    CUser* pUser    = (CUser*)s.dwValue;) D! _" i" p4 a( Z
    g_dpDBClient.SendClearPropose();
: I9 P9 P1 K& D1 H- q! z#endif    // __WORLDSERVER
( K+ }- s8 ^  b* V1 E. g    return TRUE;+ ^' `6 b8 ]8 V4 N) q0 G3 p' l
}
7 X% W/ o+ a3 U9 H0 d下面插入  R. ^/ e! d. n  K9 @) K4 f: J5 s: N
BOOL TextCmd_rebirth( CScanner& scanner )
2 p" f) l9 T3 i+ I! R4 B5 s{
1 E6 G7 g0 V1 i#ifdef __WORLDSERVER/ R9 q1 \6 N; T4 g+ D* D
CUser *pUser;: o6 i  Q6 n. U' i9 ?
pUser = (CUser*)scanner.dwValue;% k) l% p; K; r; x  c) l+ j' E. M# G
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())# v2 g9 c, }* D. F) }) X/ Z+ X5 ?* f
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
, D) ~5 z/ A. Pelse
( x# A/ h% o( o2 C! L7 i1 E) hpUser->AddText("你还未达到重生条件!");: a* g# }* z% x, G) O8 F) I
#endif) K, p- y/ ^! i
return TRUE;
" R2 m/ s; P+ k& U3 T1 E8 H/ N}  
! P' ?; j* x0 N" a
2 N2 `9 ]: |, s2 f( q2 B8 l; c+ @7 N; O' R  v6 C* t2 N/ q/ h2 S

' Z% `: ?* X( p4 V; O. n3 w& f7 o) U0 v6 Q





欢迎光临 飞飞世界论坛 (http://www.ffwold.com/) Powered by Discuz! X3.2