飞飞世界论坛

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

作者: admin    时间: 2016-1-10 03:42
标题: 通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ ?( N% n& z  @: l$ ^
# Z7 }: }6 T8 D$ iMover.h
% W* }3 W& V7 T, b: q7 v代码:$ S4 w0 `: z3 [0 P" T/ r+ E
找到: void            InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE );            // °′???| nLevel·? 1ù2?áü+ ]0 h6 Z. T  |8 U" N6 c
+ \' r. x3 d4 |& g( \
下面插入: void            InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;  
, ^2 J1 p5 z) ^+ e" A
5 O  q- g6 y, L0 Y4 ^# J$ d  Z然后你去mover.cpp添加
" ]& a& I& n! A6 G0 P( i" k
; g# C, [8 ]+ ]$ _代码:  {# |4 e3 [+ T8 q
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )5 h/ {; V. y$ a6 |
{
1 ?4 y( R. V4 f- t) P+ y# w" z#ifdef __WORLDSERVER( a( {6 o  b! l+ T+ q
    // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, W( F& R# m0 C9 `1 b    MoverProp* pProp = GetProp();
. m0 R- Z+ B5 w    if( pProp )
' q" r& i7 G" P. n    {9 c! R+ S" K1 u& K9 e) A9 V
        if( nJob > 0 && nJob < MAX_LEGEND_HERO )) o* f, B" v' B. v$ L' N, T( ^
        {
* ~! i) S  E) g            AddChangeJob( nJob );4 @# z/ S9 U  t, F8 S
        }else{
' _% O# q; ^; g            return;
3 u0 |* _& f+ [7 H        }
$ Z' b( p" Y# K. y        int nPoint = 0;
2 K; Q2 W/ l1 Y4 M& {        if( m_nJob == JOB_MERCENARY )
8 L. v6 j9 M' D0 F            nPoint += 40;
) g& O" p2 S! L& V: o        else if( m_nJob == JOB_ACROBAT )
0 ?9 m! H- P( k, g2 M- F            nPoint += 50;+ y, O" T# T1 \% f6 Q- \9 [( {
        else if( m_nJob == JOB_ASSIST )# x$ ?' P$ ~0 B- h& `
            nPoint += 60;" u& j) p$ g; C: r: Q* G
        else if( m_nJob == JOB_MAGICIAN )
1 G+ w3 I/ s1 W% `& A! K5 [. D" \            nPoint += 90;
) {* f# s! u# Y- |+ l; g' J' M        else if( m_nJob ==  JOB_KNIGHT || m_nJob ==  JOB_BLADE )
+ Q% @& q9 Q9 c- B            nPoint += 120;
! e; h4 P. H/ r) D( q        else if( m_nJob ==  JOB_JESTER || m_nJob ==  JOB_RANGER )5 ?1 n+ z! @# a# }+ V, X
            nPoint += 150;
: u6 Q9 L! z0 C7 Z; B: d        else if( m_nJob ==  JOB_RINGMASTER )
# u; A0 @; R" t. u" d& v; `            nPoint += 160;
! R$ e3 t2 p& V+ v        else if( m_nJob ==  JOB_BILLPOSTER || m_nJob ==  JOB_PSYCHIKEEPER )
0 V% q; K  h$ b$ L            nPoint += 180;' ?( U5 D- u4 M; V# ~" J  d' z
        else if( m_nJob ==  JOB_ELEMENTOR )& ?4 |. R! m: E* v. u+ [  Z
            nPoint += 390;
) Y2 ?* n8 G1 i        else if( nJob ==  JOB_LORDTEMPLER_HERO || nJob ==  JOB_STORMBLADE_HERO )- K+ h: s: z+ @
            nPoint += 120;
, G. f3 E/ e, Z2 p0 }+ ]3 _" J3 G        else if( nJob ==  JOB_WINDLURKER_HERO || nJob ==  JOB_CRACKSHOOTER_HERO )
( F! s5 \3 Y$ ]6 m& `, x            nPoint += 150;1 I9 {2 P% ~) U& ?4 q$ B8 w
        else if( nJob ==  JOB_FLORIST_HERO )
2 t8 M2 z: d6 Q            nPoint += 160;; e1 c" d5 [$ x) r9 h+ v
        else if( nJob ==  JOB_FORCEMASTER_HERO || nJob ==  JOB_MENTALIST_HERO )9 @9 Y  D  o5 D. ^
            nPoint += 180;& o2 ^8 k/ S; o! E5 }+ \9 u
        else if( nJob ==  JOB_ELEMENTORLORD_HERO )
# a" v# C: P" V, ~            nPoint += 390;
# k2 n) t1 ~/ |' H9 c: L4 x" T2 l! E: o
        AddSkillPoint( nPoint );) z' E) A! z& T- B% |( [1 I! Y; N
        m_nLevel = nLevel;
5 c: B/ F, l6 J
, e+ R/ {/ I+ U3 n7 L        SetJobLevel( nLevel, nJob );$ j! _$ Y/ D5 z3 |
        m_nDeathLevel = nLevel;
; r1 [) s! w4 S5 v0 n4 Z7 T3 G#if __VER >= 10 // __LEGEND    //    10?÷ àü?????o??    Neuz, World, Trans
- I* z' a: X2 i) n        if(IsMaster())
5 D* |% y0 e1 {        {
: _! z) V5 @7 R$ J            int dwTmpSkLevel = 1;//60, 72, 84, 96, 108/ U) Y, `8 w! s4 W: Q% y
            if( nLevel > 59 && nLevel < 72 )
8 x2 I6 w7 y& [, \                dwTmpSkLevel = 1;
, L- ^. G& ?4 l            else if( nLevel > 71 && nLevel < 84 )
. r6 K  X) `3 L7 M0 K                dwTmpSkLevel = 2;
) |1 [  }0 l+ g) @) i3 d5 r            else if( nLevel > 83 && nLevel < 96 )
, ]8 ~  y. [7 M* e' O/ i                dwTmpSkLevel = 3;+ X3 }' d0 F4 a( i5 e/ `
            else if( nLevel > 95 && nLevel < 108 )# `( K0 K0 k& H0 ~( D) u& B' K! u
                dwTmpSkLevel = 4;
' j# i) z2 S3 a2 s5 {            else if( nLevel > 107 && nLevel < 120 )
/ w3 D) X3 ~3 O$ ?7 p) b5 P                dwTmpSkLevel = 5;( N0 s7 i0 A4 n+ o* ]8 K; A
            for( int i = 0; i < MAX_SKILL_JOB; i++ ) " z  K7 j2 e8 T: |) H1 G4 W1 {% N
            {               
& g( e' m5 t( T3 q                LPSKILL lpSkill = &(m_aJobSkill);
* [% Y+ f5 E, e2 E+ s8 {                if( lpSkill && lpSkill->dwSkill != NULL_ID )* W( {; s* Z! o+ x/ {, C
                {$ M- ^5 W# x+ s8 L, v
                    ItemProp* pSkillProp    = prj.GetSkillProp( lpSkill->dwSkill );            ( v  o2 D# \, G- ?+ o
                    if( pSkillProp == NULL ): h2 h; Y; P8 P$ P, Z7 o
                        continue;! T, ^: K) S0 H  K
                    if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% H( Q: O3 _3 l2 g/ Y                        continue;9 C: L- g2 q0 t/ t/ }* X( c
                    lpSkill->dwLevel = dwTmpSkLevel;
& V3 P. g1 @7 J! u/ b" V# t                }& M/ W% i% b3 |' E5 Y
            }8 N& y5 d$ `- M% w$ W
        }
  u: `. l& x5 o9 z, N* S+ w. j; ^' Q        else if(IsHero())
+ Q+ ]0 A4 [( _. S. q        {$ O! M& T* n0 K; L' A
            for( int i = 0; i < MAX_SKILL_JOB; i++ )
, P9 l* s  ?: Z. R            {                ( e$ g. y+ C, I5 E9 R# K2 [, q" B
                LPSKILL lpSkill = &(m_aJobSkill);
# f, r9 X+ y/ X) `' V( ~                if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ l7 D, e1 M4 Z( `: y                {6 W1 W/ `# ^- T- m1 g
                    ItemProp* pSkillProp    = prj.GetSkillProp( lpSkill->dwSkill );            . f" O  ?$ s0 T5 M
                    if( pSkillProp == NULL )
) {; Y/ T# b1 |                        continue;# W& R& V& D* ]2 ?0 Z
                    if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 s2 L, g, d, q- Y& m5 z8 X
                        continue;
: z! S% o  j  e, q( t                    lpSkill->dwLevel = 5;
. Z# J& @+ J) J0 z                }; ]. Y  W6 L" o) E/ v: a8 Z4 \
            }
: {2 n- v3 ?2 w4 U1 Y* @& @        }5 O! t- D# L" ^5 C8 a
        else if(IsLegendHero())
7 x8 |0 m4 T$ p; ~2 `( [        {
$ [  O% s; n# E            for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 W; x: L" W+ O            {               
8 R! V, s; y5 D" L! ~4 ^                LPSKILL lpSkill = &(m_aJobSkill);% M: l, q# t% K: g9 c
                if( lpSkill && lpSkill->dwSkill != NULL_ID )
, N8 _1 ^6 G; K3 J                {
% z/ F( _, d2 J4 k$ h5 M/ e                    ItemProp* pSkillProp    = prj.GetSkillProp( lpSkill->dwSkill );            
* }* }; X# i4 K                    if( pSkillProp == NULL )3 P% U: f+ ^! O0 V8 z" @# p
                        continue;7 N, o9 R; D! w" X# }
                    if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& g. Z* k" S' O
                        continue;
& ?# Q$ p3 O6 Y1 e) z                    lpSkill->dwLevel = 5;) W& A' y2 P# g: U
                }2 ?$ \9 i% ^* T* v& N; X5 v
            }
$ c# ?) w2 _/ |        }" Q& q: g+ n8 r1 o2 z
#endif    //     __LEGEND    //    10?÷ àü?????o??    Neuz, World, Trans7 d! r7 C1 M: s! r' U/ S3 g8 P& @
        if( bGamma )
0 A. n+ k9 C# {( Q- V        {
& v1 Z" J. |% f            m_nExp1 = 0;, _8 C" n. B" {% O
        }
/ j! ~/ H: k9 R# [: \& m* N% q! x% N5 F
        ( (CUser*)this )->AddSetChangeJob( nJob );3 [" `+ o4 _/ j& k
        g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' C( y9 B9 a: Q4 m0 ?5 H
( H% y  D9 I7 c& p3 X. Y+ W( q! J: J' {! l" ?+ @
#if __VER >= 11 // __SYS_PLAYER_DATA, K' \5 j7 m; N, I% K& _/ T; \
        g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ h: h3 r0 \$ C# K, K3 u0 p1 X#else    // __SYS_PLAYER_DATA2 I0 G! t6 ~8 T# j* W: p) k0 x# M. B
        g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! @/ d) D; o0 @. U1 h, P5 N' e
        g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, N: [% O: E3 ^6 e3 {- Q
        if( m_idGuild != 0 )6 F* G6 e7 }* _! c! w
            g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );  L/ n: f6 ~- f8 [4 Q; [
#endif    // __SYS_PLAYER_DATA- g. @1 I1 S4 L2 f- R  \( ~5 ~
        SetHitPoint( GetMaxHitPoint() );, L7 S4 k0 y. g5 R/ s  d
        SetManaPoint( GetMaxManaPoint() );  H7 l, ^9 {. x
        SetFatiguePoint( GetMaxFatiguePoint() );
/ K; I" x$ C2 m5 n: L- w& ]        if( nJob >= 1 && nJob <= 4 )
! f! v% O' i( Y6 |; I        {4 _" C0 {" F; k  b
            m_nStr = m_nSta = m_nDex = m_nInt = 15;& Z: P! _7 F7 V- h" w- q/ ?
            m_nRemainGP = 28;
7 d  G" T% F" V( E5 B6 n        }
( {0 S/ J2 F: j2 N) _4 s        if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 I9 I, L5 Q+ N* |1 s0 v
        {
. L* u! \  V% J% Z1 N5 t. I  O$ i            m_nRemainGP = 118;
% r" k8 G3 n/ f# Y3 A            //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;+ _2 u; P. I" d7 W1 h/ c
            m_nStr = m_nSta = m_nDex = m_nInt = 15;; }0 A; b% g8 D1 V4 w; S, ]% x+ U
        }- x- u2 G; V; ^
        if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ y% X; N  |7 I6 A! z3 A$ g9 I        {  F9 y: E- x# ^% T; L% R1 O
            CItemElem itemelem;& F9 X) v( x4 _
            itemelem.m_nItemNum = 1;
4 N+ p: {$ \7 _$ T7 e6 z            itemelem.m_bCharged = TRUE;
. K4 g5 J, n6 w1 [7 P: x/ Z/ u1 Q- y            BYTE nID;3 i1 b6 q' V+ h5 K& R
0 s7 [( t* @/ x9 W
            if( nJob == JOB_MENTALIST_HERO )* p' z- k8 k- d- O; K
                itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 f* v3 v( R, B1 }            if( nJob == JOB_FORCEMASTER_HERO )
  P: H9 ~' r  ^, t2 C4 L) Q& u                itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
  ~  h0 @& ~4 ^. G# I
) z2 X1 B. z1 s) j5 y1 k; I            ( ( CUser*)this)->CreateItem( &itemelem, &nID );
. v; z/ j: z9 L' ?: P        }/ o0 Q# X1 L- R4 w* V1 v& b6 g
        g_UserMng.AddSetLevel( this, (WORD)m_nLevel );' X2 ~6 m6 r# w5 O- |4 R3 H
        ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& |6 {- r' t5 ^+ E: U3 a' b7 j        ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. _3 y; V1 o, @& F+ E* D        /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 \1 o5 X8 A. w( x* Q9 |7 ~
        ( (CUser*)this )->AddTaskBar();*/
& ]% A$ ~: L8 Q4 n/ b% O) r        ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 U) p; F/ K, f+ l, I9 H, |5 _
#if __VER >= 13 // __HONORABLE_TITLE            // ′Tà?
$ }7 Y8 c2 K$ b8 m% J        ((CUser*)this)->CheckHonorStat();
; O: E2 X) l& _. F        ((CUser*)this)->AddHonorListAck();
; t* Y5 u; f6 K, c+ X9 E        g_UserMng.AddHonorTitleChange( this, m_nHonor);2 a* D+ ^. m& B# N6 m0 y
#endif    // __HONORABLE_TITLE            // ′Tà?
7 Q! K' r/ S/ e% m0 j4 D$ A    }
* B) N8 G' R1 ~6 M( h#endif // __WORLDSERVER& b2 D# g- D  N! v2 C
}  7 |0 g% s) e% _% p& b

& {7 D! A4 e- }; T, ]然后你进入functextcmd.cpp并添加以下' i' \/ ]& {* f, q$ e' o" p

/ [, d7 ]5 `1 C! Y  H$ k5 G代码:; P3 S& ?, m$ ~( D
ON_TEXTCMDFUNC( TextCmd_say,                   "say",               "say",            "??",             "??",      TCM_SERVER, AUTH_GENERAL      , "?ó?èàó [/?í·é ??àìμe 3???]" )+ Y. ]) s5 t3 ^' Q* ~$ b0 C
下面插入; G. _3 q3 z. I4 [1 l( D
ON_TEXTCMDFUNC( TextCmd_rebirth,              "rebirth",          "rebirth",             "?ú·1?÷??",       "?ú·1",    TCM_SERVER, AUTH_GENERAL   , "?ú·1?÷??" )  
" T$ S3 q, ~$ s, c& [7 t( B
8 d2 t: l& A0 ^: l' z6 O" S然后你去# _/ N7 l, ~2 I. D! P

4 o$ }$ T- v5 p6 m7 l代码:% Z! }; s' k9 ^) M/ m1 v
代码$ V- ^' a% Y' `3 m8 S
BOOL TextCmd_ClearPropose( CScanner & s )  f! e7 @7 G4 ?2 u' P0 H
{
, e) n9 o0 C6 ]7 {: r7 L#ifdef __WORLDSERVER
, b' h& ~6 Q9 b2 u4 i    CUser* pUser    = (CUser*)s.dwValue;8 B0 A8 Q' U& _5 r1 K
    g_dpDBClient.SendClearPropose();
" u. H$ V1 C/ T. V: Q#endif    // __WORLDSERVER
+ l1 l4 G( q& i5 f, E) f    return TRUE;
+ l2 U9 K1 e7 f! l}  c5 k9 {; o  e0 Y/ M
下面插入8 L: V* [0 g6 g; q/ c+ s6 M! |
BOOL TextCmd_rebirth( CScanner& scanner )
# v; ^0 \* R6 p$ P{
# a$ [. f- N& N+ g#ifdef __WORLDSERVER; ~- Z3 u6 _+ ?0 E8 h7 t
CUser *pUser;3 b4 |6 a8 q" p" v+ K
pUser = (CUser*)scanner.dwValue;
& g1 m: l2 b, @! o/ G8 Sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' z  c: d  ]. ?pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 s& [- Z% q% V# W9 h& W8 l5 Belse
) ^/ R7 h5 [8 C! JpUser->AddText("你还未达到重生条件!");8 G& \  K4 D* I7 {
#endif
% V6 _6 m# S, s9 W" r7 x4 }return TRUE;
# g+ v3 T$ M/ s3 v' t) D9 W6 ~% u}  1 F. B; S2 O7 v9 {; c8 {

( k0 `  N( w+ n! J& d& [5 ~" Q3 q# ?; v( k! g, J+ }- d* _  s/ u( M

, z  Q" X# K, U, i# M# Z3 o5 d# U( P3 I





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