飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
5 \4 B. x! K* o9 V+ i' w, M
! p: l: i" N7 [' d9 v
Mover.h
) K$ M4 ?- |/ _5 L' p
代码:
2 A. w" E5 J1 \! u. G6 g I
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
6 Z+ ?( A* N" d+ F& C
/ G( P2 U- ?+ k& K4 s" M/ V
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 s" ?# t- O2 u' J% Y9 C
: J% _3 X a+ Z/ w
然后你去mover.cpp添加
, y5 W; x* i- z1 ^" ]- S. f
/ q6 t% c/ p% n5 e
代码:
$ p+ v" _2 B6 E A
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: w( L8 E$ \. i1 o# q1 c
{
0 S! p6 Z- G% ?" E$ z" }
#ifdef __WORLDSERVER
* B& }& R) [2 g8 x9 ~! T% A% r
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% U" E0 u, x5 @0 X+ N1 _
MoverProp* pProp = GetProp();
) a6 H) i2 x2 X+ V j1 Y# J
if( pProp )
" b3 g8 a" a6 ?+ O8 ? C/ H
{
' Q) p& t% [ ]
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
+ G, P8 Y8 g8 B- f7 m3 L
{
7 R$ P# j$ x3 p! `+ e7 n" S
AddChangeJob( nJob );
, \7 g- C0 i0 X1 g' m
}else{
! k. i7 r6 M l
return;
' } d) |8 p; S- z, P1 l2 y+ s
}
4 O. J; r, G M' T( t; b; e
int nPoint = 0;
. I L8 ^& f* E& x' Q( G) B+ ]7 ]
if( m_nJob == JOB_MERCENARY )
( I) X. }- I- L2 R7 j- I' ?
nPoint += 40;
. Q( }# J+ e0 r3 i
else if( m_nJob == JOB_ACROBAT )
3 e8 q* ^" u$ p( u! v6 y
nPoint += 50;
- G8 d; J: P7 {) r: \0 b: P
else if( m_nJob == JOB_ASSIST )
! W0 v' c3 u0 ^/ A" \* v* |& m" U* e9 I
nPoint += 60;
. B9 Z' d/ h6 w. q3 b
else if( m_nJob == JOB_MAGICIAN )
; O2 C2 s( a' e% M" f0 L8 m4 }
nPoint += 90;
* N1 F$ s p9 k1 ^* S. ^1 `* f
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
" |- Z0 y! o, V
nPoint += 120;
5 V% m- }) e8 N0 R
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
' y8 }. {* l( V5 v
nPoint += 150;
& K w- r. K+ y. r
else if( m_nJob == JOB_RINGMASTER )
/ Z8 y1 F1 {; ^, O
nPoint += 160;
% o2 n& `7 g, J) H# [
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 t% l8 {/ S2 z8 X' o
nPoint += 180;
. Q: `+ [. @& [# F' ]
else if( m_nJob == JOB_ELEMENTOR )
$ Z7 B' n2 g8 @/ x" Z
nPoint += 390;
) x/ l( P) F* B8 F
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 L- j6 T+ N$ I% C: e5 R1 j
nPoint += 120;
9 w$ ]5 s1 |, e" E- L9 s5 X
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ X6 y8 ^4 \) E( q: F( }
nPoint += 150;
( `+ y% a; W( X4 y
else if( nJob == JOB_FLORIST_HERO )
: K8 b. ~* v. ~+ t
nPoint += 160;
3 c6 k B- {( d8 g! W
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 M" z& d9 p1 d
nPoint += 180;
: k/ H' V) @4 f# o
else if( nJob == JOB_ELEMENTORLORD_HERO )
7 x/ x9 K- d {' t6 _8 B
nPoint += 390;
" [( J `5 Y9 R
5 L( H0 n; R- w/ U# E
AddSkillPoint( nPoint );
0 K: O% K8 |. t8 x
m_nLevel = nLevel;
3 @4 D6 Z& H* E
6 A( L, G" f! Y7 i' r6 q; F: T
SetJobLevel( nLevel, nJob );
2 R$ o/ E- R! }0 x: p
m_nDeathLevel = nLevel;
" v, _6 b" z W7 f' [7 ?
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 J5 k/ p9 F7 Y8 j3 R# V5 @
if(IsMaster())
l+ d% C. N1 i7 |+ Z3 V
{
6 k' R7 Y. X; d( {, E! V
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 j3 B7 I% Q% @# z" X# f, U: ^
if( nLevel > 59 && nLevel < 72 )
3 F. {8 ]' v5 C% J* o0 k9 D `5 s
dwTmpSkLevel = 1;
. V$ C9 x7 q" j) Y
else if( nLevel > 71 && nLevel < 84 )
# \& o9 O1 n3 p2 m
dwTmpSkLevel = 2;
5 _( h6 M7 Z3 u: `5 U# j
else if( nLevel > 83 && nLevel < 96 )
( Z, t0 v0 P. Y
dwTmpSkLevel = 3;
' A# [& m7 m! N* i3 C
else if( nLevel > 95 && nLevel < 108 )
% M1 G" r) a$ a4 z7 C1 Q& z* ~
dwTmpSkLevel = 4;
& n( u0 P- {( Y, }" k+ R; Z' W4 W
else if( nLevel > 107 && nLevel < 120 )
/ T2 V. W8 [0 B* a, I5 ]4 f
dwTmpSkLevel = 5;
. b4 f) c! x; S5 C9 o; A! l/ p
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# ~( n' w8 H" {7 B# z
{
. y$ q2 }# G( S7 t' ?' N- f
LPSKILL lpSkill = &(m_aJobSkill
);
6 \* R+ L, b( L- J
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 g! p% o: s, n" A
{
. m! @6 S' E' v: R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& A1 x" p3 X& q7 y2 i
if( pSkillProp == NULL )
* G2 N( \& C2 s% C3 I# M
continue;
1 x' B, D7 v) E( F0 K! Q( r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 P( ~3 r* ]( N H( ` [$ i
continue;
: q5 T% I4 J5 l- |/ e u
lpSkill->dwLevel = dwTmpSkLevel;
# H9 Z! x/ O" E' Q# a
}
/ W0 j4 A% j O# g! t: r
}
; q+ o. g1 h$ _' y% l- ^
}
o& a. G, f5 t
else if(IsHero())
- b" ?$ u" o: j
{
9 i5 L7 v9 X1 q$ s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* G4 P1 X* l& ^
{
$ t% U" ?: \7 H
LPSKILL lpSkill = &(m_aJobSkill
);
! k; U; |: B8 m6 _3 V0 `4 A7 o
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ E1 A$ K7 D6 X1 s" K+ ~' Z0 f8 v0 J
{
: ^0 K; k _- {2 v% E4 t+ w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* u+ j- o0 e# w ^ J1 j
if( pSkillProp == NULL )
' Y; b, B3 n+ \# \0 c
continue;
, J3 g! e1 k- K9 ], k( C! \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 Y$ D# h" z) e* J# V
continue;
' M: l: |* @; _0 ]
lpSkill->dwLevel = 5;
9 E. c1 P% S+ B
}
, C& f0 R- C) N" z
}
2 g. l. _6 K& |+ A( w
}
- a% f9 h, E' f# ~9 y4 o, m
else if(IsLegendHero())
# J& O9 _& x3 u' K( R
{
* n: f6 w; C5 k* W+ \ V% r
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( j$ p9 k3 L; v! }- a
{
( S1 B" ]; l) y- A W* V- T0 N( O
LPSKILL lpSkill = &(m_aJobSkill
);
/ Y, s: ^2 c9 \7 X% h4 g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 ^8 e# F2 x- S! v0 C2 h% w6 D
{
. F+ d, h5 B) n3 L# D# ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; p0 x& _+ G. L! `$ F
if( pSkillProp == NULL )
+ m, v* s! |; E1 |2 G) r* W
continue;
( m# e1 T+ c2 g; x, \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 A5 I/ ~ X ^2 p
continue;
- k4 I2 f2 G7 H% b' h: r% P
lpSkill->dwLevel = 5;
; E+ u9 u7 B& b2 X$ U% m
}
! B% q# O: a) [$ }1 R5 M
}
: V: b% n( x( V4 r
}
4 c9 k0 R0 t5 K7 z+ }0 S$ d; J
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; ^& I. r- n& ^" W G1 ^( R
if( bGamma )
$ G7 _4 K6 G8 b: g( _8 R c. R* p1 a
{
7 M+ q3 j9 x G9 j0 N
m_nExp1 = 0;
$ ?) O8 m& D4 { r$ `
}
0 O4 b! l/ Z; Y! }
, s, F* ^' W" _$ q0 \% h. N
( (CUser*)this )->AddSetChangeJob( nJob );
# f$ U1 j5 U* \5 ~
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
W; q" t" C7 [8 |+ o) A; _
9 f* U7 V; q# w1 N. \! ?/ h
" P# V2 I& \2 q0 w7 f, w, K
#if __VER >= 11 // __SYS_PLAYER_DATA
3 C* M" z/ @0 {
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. y3 z& b0 I' M3 O0 A
#else // __SYS_PLAYER_DATA
0 Q% G" I7 @/ b1 N
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ j4 e5 k: v9 Z! U0 z! @
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: m5 s9 z6 Y( V. q
if( m_idGuild != 0 )
; e" |% z, A: P+ h
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
1 C( H1 p# I1 \) o" ?1 R0 @7 P
#endif // __SYS_PLAYER_DATA
# a2 i {. \, A, |- n: `
SetHitPoint( GetMaxHitPoint() );
d* @0 r) W m4 Q: ^+ B
SetManaPoint( GetMaxManaPoint() );
% f$ Q4 i c3 y5 Q
SetFatiguePoint( GetMaxFatiguePoint() );
$ P: d5 x/ t) U% |
if( nJob >= 1 && nJob <= 4 )
# Q$ z9 N% e* O# t5 Q) {7 n
{
9 i |/ {: i; t J9 f% i. H" R
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, x7 @8 R+ V0 K6 X
m_nRemainGP = 28;
- S% G7 N5 x% q) n
}
9 Q$ H h/ e3 y7 D
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! Z5 @4 V2 q/ o9 X+ U
{
4 a0 \# _6 a2 s; o$ c6 T& l% E
m_nRemainGP = 118;
: J1 N- n7 u1 r3 Z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" H' J4 O6 [; V2 D7 T
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 I9 x$ { C6 V" y1 Q! B) Y1 O
}
( }7 m3 h1 J/ e" y! k7 L6 k
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* A) N( [% G7 V# n6 s2 H
{
' e7 r* o: F, s/ q5 E }
CItemElem itemelem;
- _4 D0 h. S! M6 M5 g {1 }
itemelem.m_nItemNum = 1;
) k7 p D. e3 ?: p- X6 d$ w- p
itemelem.m_bCharged = TRUE;
1 S% H4 {. k5 I% F
BYTE nID;
- ~2 O2 w' h8 h% f+ O
' W0 q9 N6 u0 {" ^
if( nJob == JOB_MENTALIST_HERO )
4 e) J0 l y G7 t
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) L1 R0 w. e( E+ m
if( nJob == JOB_FORCEMASTER_HERO )
' p+ F5 L' a! x6 e4 b+ h* F! |
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: N9 e% m- b2 q) G+ D! C5 I$ t/ x3 Y
k; p/ X0 d3 Z, j( {
( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 ] S5 c% [, O9 M5 R
}
8 n7 k( z% r8 s1 _: Q3 \. Q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. e- f& U2 I1 e2 z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& @$ C' `1 v6 N
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! N1 M" O$ \, U# k: y' a
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 p/ }& }4 P, Z2 `3 X" b1 Y7 w5 G
( (CUser*)this )->AddTaskBar();*/
, o# X3 R4 a0 T8 x
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
Q" Z8 a4 x8 O3 B; ^; ]) g+ l
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( I' z3 v3 S, ~3 A
((CUser*)this)->CheckHonorStat();
9 d' s& s. k$ N, A" {. F; F$ B
((CUser*)this)->AddHonorListAck();
& S. c0 d, f5 K: x- @ w+ S
g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 o0 a/ W. ^9 g6 H4 C
#endif // __HONORABLE_TITLE // ′Tà?
5 b6 U! h+ v- \: x% f
}
# {- w+ j5 a9 @" X
#endif // __WORLDSERVER
3 w* i; a" Z9 c' g1 Z
}
5 @% W" u# m) X! ?7 a% K
& T* v1 i- Z0 @1 a
然后你进入functextcmd.cpp并添加以下
$ \1 ^+ P2 }+ w$ O
5 J1 P4 Z" f+ v2 c
代码:
4 V, g, k @, U+ c
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 N5 g* t; ^3 o
下面插入
2 n& p5 J" a# M l, y" \% K9 W
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ ], ~& g4 f, Y+ I* N
- O! V. L* }7 I+ ~- p1 I, J
然后你去
& s/ `: r6 J: \5 T3 A2 e- b- h+ e
9 f1 ]. a* ?' U) Y9 E
代码:
4 W l$ |+ F. _0 s) P3 R
代码
M K3 I& r. c& D0 Y3 z
BOOL TextCmd_ClearPropose( CScanner & s )
7 I) N2 ~. h4 D3 Z
{
; h& Q# Q7 Z _' L5 L( J8 S: n
#ifdef __WORLDSERVER
1 v& R! m$ i7 L; g& M1 W. {
CUser* pUser = (CUser*)s.dwValue;
1 i) h! J& c) W/ P% v
g_dpDBClient.SendClearPropose();
7 l2 Q% Y- L# j. I" I9 e
#endif // __WORLDSERVER
6 `. F3 b5 X, f+ f
return TRUE;
! O# X: p. L9 A Z$ f2 u, f" N
}
1 u0 s+ [2 b, Z7 O( r; N% ?7 C
下面插入
I$ E2 H! i, I( X/ E
BOOL TextCmd_rebirth( CScanner& scanner )
3 `; _1 w0 A* E, c, l, F5 A
{
2 c7 u& V2 s1 x2 I7 X8 H
#ifdef __WORLDSERVER
! e9 R- W! X1 T
CUser *pUser;
" N$ H8 \3 v8 G2 l2 ] z9 A+ L
pUser = (CUser*)scanner.dwValue;
! {6 g- m" I2 z" G) i+ m# B. k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
/ A, ]. k, ~( Y) }1 Y$ x( m) p8 k
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- j. F( y/ g. {2 U& y
else
' y( p, F( D- ]6 [$ `
pUser->AddText("你还未达到重生条件!");
, i6 U3 j4 c! \8 w: Q
#endif
2 u# |- q5 O5 h% e- e. x9 a, Q
return TRUE;
* @4 v. d) [, k+ ^4 `! M- w2 i
}
4 E4 e+ C( U/ U& @ g5 K
3 N: ], \( K S
5 l$ c' S. o2 t6 a/ I; Y5 P2 i6 q
5 V& z- n' W, y3 R
6 Y! g0 d% N" Y; R
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2