飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. t5 ^+ J, m( J1 _
& c/ L4 k+ r# M! j+ @# C* q
Mover.h
9 Y) y+ w6 e) i5 v6 F: t
代码:
) B$ }! F) ]0 Q, I8 k1 y" n
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 G! [* C8 y/ ?4 b# |# {
8 l# k1 w$ m) h0 Y" u: \; W. l( b
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. P0 K. N5 c3 N2 \
0 E+ \$ r* q; p. @2 W7 V1 P
然后你去mover.cpp添加
3 a V) w* _4 |- i3 c' t
( }9 H8 H3 }, @/ k e# q
代码:
, C9 A8 T2 V/ C1 L- A
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, a8 h+ P$ j9 E/ L# {
{
! d* J0 U7 n3 z0 ~6 r9 ~1 S
#ifdef __WORLDSERVER
& p) H9 ` b" h4 z4 V
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) _/ h3 d1 H$ d0 C+ R/ M5 z
MoverProp* pProp = GetProp();
( X4 E$ U. t# F5 e x
if( pProp )
0 r& W0 t; ?/ j4 R& v. P
{
2 w0 F$ J, v+ S! M3 _4 o
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 M2 w$ G) @; \& ^
{
2 } r# f4 D/ z- u i3 E3 m/ \8 U( v
AddChangeJob( nJob );
9 ^( X$ ]& I' a, [# K+ A, W& u
}else{
. X; D4 e1 ~7 C/ z6 B
return;
( y$ b2 e. c& c6 q( e
}
. @ B' C4 H! o) v) }& A
int nPoint = 0;
; F8 _8 W: J' t; W
if( m_nJob == JOB_MERCENARY )
9 \( G r7 A- @% a" W8 W
nPoint += 40;
) d! C3 a: Q3 I; a; T
else if( m_nJob == JOB_ACROBAT )
/ n( \9 s Y6 b9 u
nPoint += 50;
4 ^+ s# R( }" _8 e |, W
else if( m_nJob == JOB_ASSIST )
( U$ V! {$ ~1 V! w x. S: b) H* ~
nPoint += 60;
/ ^5 D6 u- c6 I& e: x
else if( m_nJob == JOB_MAGICIAN )
7 C+ K6 D$ P% X
nPoint += 90;
# @+ ]# q, y | h! m# h. A, Q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) x" E$ j0 K/ J+ @# H: L
nPoint += 120;
. }+ f' U0 D: f
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
1 B* C% N3 d8 r
nPoint += 150;
/ r' @% |3 R( f) b8 j! l
else if( m_nJob == JOB_RINGMASTER )
9 K; \! s; ^0 O ~* N
nPoint += 160;
! |; q( D/ q6 {. H% k
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" D' n4 Z# R, y: j, z4 q5 E
nPoint += 180;
6 c: I0 I. D6 w- o
else if( m_nJob == JOB_ELEMENTOR )
8 O( f. y/ ~2 v2 I" `: K% C
nPoint += 390;
' k, I$ _! u7 C- M8 o2 }
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 }. h* \. M% c I K' M) K2 W
nPoint += 120;
/ V1 G/ J! g9 e2 s. S
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
3 u9 s* x: M7 Q8 H# q, k
nPoint += 150;
& ?, |* L' I$ W. r& U+ K# e6 @$ a
else if( nJob == JOB_FLORIST_HERO )
& I( {+ N8 B- i
nPoint += 160;
4 g2 {/ M1 g+ x; h
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. k3 F0 v: c$ [5 e
nPoint += 180;
; G2 E' t3 `2 t% ^& ^* ^* ^8 y
else if( nJob == JOB_ELEMENTORLORD_HERO )
$ T! V. A* x9 n: W) u6 h
nPoint += 390;
+ |0 s: @' t8 r0 C; f/ U8 M
. _5 Z ^8 i# o [
AddSkillPoint( nPoint );
3 D8 q/ ^- y: ]; ~* D2 H: S
m_nLevel = nLevel;
2 d% u: m" }( U( N: v* X
9 w1 U9 w0 e/ C( K
SetJobLevel( nLevel, nJob );
% R8 q8 k, ~; o
m_nDeathLevel = nLevel;
! e1 d/ @4 ?- J6 y% Z% ]
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 G% a$ c# M( d* x
if(IsMaster())
* h- V; c6 }0 T, d k. ~5 R* u
{
4 X$ U# Y4 O! X9 y) c F' f
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 O7 L6 n! z0 S4 r/ ]$ ]
if( nLevel > 59 && nLevel < 72 )
8 |4 v8 F' U3 B* g
dwTmpSkLevel = 1;
' j7 d8 \! J$ d2 \/ w* A
else if( nLevel > 71 && nLevel < 84 )
9 g: w* r+ G) s0 p' k7 W
dwTmpSkLevel = 2;
5 U2 L4 N8 z$ G8 _
else if( nLevel > 83 && nLevel < 96 )
: v. ?+ V# C$ [5 o& [- S
dwTmpSkLevel = 3;
. }( _6 ?# c4 [# D% c' `* u
else if( nLevel > 95 && nLevel < 108 )
/ V+ y+ S8 s3 D0 ?* J$ b# B5 g. a
dwTmpSkLevel = 4;
5 ~( c8 C8 e3 K1 q( s0 k# i
else if( nLevel > 107 && nLevel < 120 )
7 e( J9 E0 n+ j
dwTmpSkLevel = 5;
3 ?& I+ i" ^) w: m' u
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* l: a+ |( V0 d( a3 s F3 o7 h
{
% X, L, Z( Y7 r: a
LPSKILL lpSkill = &(m_aJobSkill
);
, {5 {; U5 [8 ^2 X. h: S" J
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" L) U* d2 c7 M. d7 x
{
( p9 B. A2 A; V# i; Y- ^/ B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: A" w6 X; P, t
if( pSkillProp == NULL )
0 K4 y3 F# z+ z
continue;
) m M/ x+ ]7 _" J( N/ l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
r1 Y P+ o5 l3 [9 M& M$ q
continue;
4 P7 F3 m& C3 o- Y! ?: \
lpSkill->dwLevel = dwTmpSkLevel;
8 [3 y1 t8 \: Q- l( f
}
. \: |" f8 i+ @' x
}
1 y9 {# \$ P9 Z) {6 Z! z l: ~
}
% e" X- s- R3 s6 {4 U6 a# B
else if(IsHero())
u2 w7 `" l3 j' n+ Y1 K
{
7 A% V1 ]$ J2 g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 c1 k( O* K5 l! q) n
{
5 l5 ]% d# _9 N/ O1 j! I, E
LPSKILL lpSkill = &(m_aJobSkill
);
5 ~, q2 a2 f/ K: W5 F* b& s" y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% D6 ~3 l. p: Q0 {9 }$ v" ?
{
% r, C7 ^4 t9 {. ^. v9 s/ U4 z# O; K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" H% P& L8 {5 ~# y, u% ^. x
if( pSkillProp == NULL )
" y4 x5 T; s0 K6 V
continue;
% h# F$ K* J" P3 T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* E+ f/ g3 u/ D4 p
continue;
( p" Z. ^- ^2 x [
lpSkill->dwLevel = 5;
0 I5 D2 F6 h& x: w! [; ]% x4 t
}
+ c6 w; O" A# U$ E
}
* F% D! D; P+ ]: i, _# ]
}
$ v; V/ n0 r' j7 t r3 b! F% Y
else if(IsLegendHero())
. r0 S1 s7 a* b1 s+ \
{
% i" r1 \0 s& ]
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. V/ l7 c9 d! Q4 j; d
{
- w, C" I: W" ]7 e. j3 _: H$ _) @1 n
LPSKILL lpSkill = &(m_aJobSkill
);
9 U6 n( ]- c6 D9 u! D& z# d4 F) l
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, Q1 f/ ^5 @* v" {, v
{
/ u- d& i. }. j! U2 R' D- c. c. ]! z0 ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 G0 v6 t$ W" r( h& |$ S, b
if( pSkillProp == NULL )
9 I7 P% C: r5 ]$ j
continue;
+ {) Z; p+ h& T9 F3 Q: T }: [2 _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ L2 e( J+ ^5 R4 p: b, h1 u! ^3 Y
continue;
. k# E- f3 J' K
lpSkill->dwLevel = 5;
/ m# H; B7 y5 c3 o- O0 h
}
# K2 C; i; J3 d* Z
}
% t& m" ?0 v' g$ x! E4 j
}
/ ~0 Y: c- U! \
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* H# [; E/ D# Y% r, I7 B, z
if( bGamma )
! I( E# t# M1 ~$ S0 j, p- U* p6 _
{
0 M$ \8 c7 |7 a2 y9 f( F. h& y+ I
m_nExp1 = 0;
" B1 m$ I; D$ a- |
}
! v1 t! B" O! Q
3 t% R6 W( a( b/ {/ {5 b+ ~5 H- A
( (CUser*)this )->AddSetChangeJob( nJob );
# e5 h/ C( c3 [* G" p; b( V7 n
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' O' F! z3 _9 v/ {+ z
6 I, I2 L9 P& h% z6 T( j
' ]1 O; B1 y! d X q4 P; j% t2 K
#if __VER >= 11 // __SYS_PLAYER_DATA
# \5 g! u) E/ D; u n: K7 l; Q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* L" r3 ^ j/ k. j
#else // __SYS_PLAYER_DATA
0 f; k: v6 M" h3 \( a0 ^" T
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: i9 d) {3 d6 V8 u, i
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 n3 V7 M, I5 {8 j; n
if( m_idGuild != 0 )
- P# T3 X; A& k( g; D
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
$ _" D* X. P8 D
#endif // __SYS_PLAYER_DATA
8 f5 Y$ Z$ }9 g, r
SetHitPoint( GetMaxHitPoint() );
. a* L0 q: N( k3 I$ a
SetManaPoint( GetMaxManaPoint() );
3 z" Q/ x9 e" a* \, `
SetFatiguePoint( GetMaxFatiguePoint() );
- `6 l2 \6 n6 V: X. x- {1 Y9 W
if( nJob >= 1 && nJob <= 4 )
9 {( r* o" H# j9 M4 Y; Y
{
" m+ R* R8 }+ a+ U( A
m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 H# O t+ T0 A) u' l
m_nRemainGP = 28;
2 g4 l2 d8 G3 t% {- b
}
0 H: S8 x( ~ f5 F
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) C2 m1 H0 v: R
{
& V7 C; A3 |) _+ ^: m0 \- E
m_nRemainGP = 118;
6 D$ Q( I/ i ^5 w" X9 K
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' F5 J$ ]0 P7 ^2 V
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ Q& ~* m9 I3 w
}
9 E9 }" E( K' Q) @, N7 i5 |6 }
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) ?2 E2 j+ E) U2 \
{
- C- U' w" Q% u: }2 w
CItemElem itemelem;
# Y5 D$ t+ \. H
itemelem.m_nItemNum = 1;
/ C0 [, k$ w) H; O$ Q3 y9 Y3 F
itemelem.m_bCharged = TRUE;
' u& g* y& s* [1 ?6 |9 ^) z8 H4 |
BYTE nID;
- V \) J% e }5 u7 p
; M& `* c) ]) U2 x( D7 T+ K# @
if( nJob == JOB_MENTALIST_HERO )
) }2 }7 w6 y5 X
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( Q7 h- L W# A. V* q
if( nJob == JOB_FORCEMASTER_HERO )
# V% g. M1 W: A/ q
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 c/ m( N3 N8 S0 P; T
; c- @: y- ^& o$ ?8 O& S$ @
( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 S7 K# a9 _ n# Y6 V
}
1 n; _9 D3 }) b
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 f& Z9 X1 z- \, l) @6 R
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ O+ b9 H& I! H/ g
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* I3 w& Q. O3 r* \& y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; ~% k3 T" t$ b- {: p5 M; @
( (CUser*)this )->AddTaskBar();*/
s0 C h1 H! A/ E; \# H
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ d6 J/ b8 |$ W, [. S
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 A% i4 _# \8 U& Q" @" X* b
((CUser*)this)->CheckHonorStat();
9 @3 S; c2 \5 F8 O
((CUser*)this)->AddHonorListAck();
( f0 h9 \( E* ?" b
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& {; O& S: W2 {9 F: H
#endif // __HONORABLE_TITLE // ′Tà?
0 R3 Q/ R/ O4 a" A ]( {
}
2 c* R% N, A7 n- l% x
#endif // __WORLDSERVER
6 ]* O" \0 K. I/ B. S
}
# C! e8 C% j* x9 f4 b) q
# u# T% V# B# n: b! |2 e
然后你进入functextcmd.cpp并添加以下
1 X, f6 b: h8 A* f" X; F1 ]! }
' e: _) H J5 ?! `
代码:
3 O) B9 `- V# E$ o' C) e/ n& d+ q
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
v8 g) j9 C1 D
下面插入
& T# A9 Z9 ]* R' Q8 n" L& D
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 V$ |& e) y& [7 s
6 F: `7 z% O: f7 L6 P
然后你去
& O2 r2 \; [0 v. P0 s% N% }
; [6 b2 f" s. r. n( z
代码:
# z2 X' P) n4 i
代码
/ Z" M. `( Y; l; t. n
BOOL TextCmd_ClearPropose( CScanner & s )
) }: b: l+ V8 i& M5 U" V
{
& X4 j+ l6 E( n# I& l2 @ W
#ifdef __WORLDSERVER
4 r5 o" {/ |4 p' F
CUser* pUser = (CUser*)s.dwValue;
/ x3 r6 T3 N5 l2 s5 w
g_dpDBClient.SendClearPropose();
0 b$ r/ X- j+ X% q( @8 ^
#endif // __WORLDSERVER
, w( ]/ `& o2 i7 r! F% Y
return TRUE;
8 m: ?5 @* t% ^
}
1 T8 m$ D0 f! W2 A( h& Q; R7 D& {
下面插入
2 L( N+ R7 W! @/ `+ o
BOOL TextCmd_rebirth( CScanner& scanner )
$ @ D( c: Q5 B* w9 k U3 j" V
{
! q/ J7 Z+ y/ E' q
#ifdef __WORLDSERVER
, h" R# Q- K. t" Q% u
CUser *pUser;
. H2 K' x1 {; _* M; M' I6 `: B
pUser = (CUser*)scanner.dwValue;
+ D; B/ E/ l3 g
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) C" e7 j, k/ G# w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
! L, H: F2 m2 B4 W2 v
else
4 C* _. B% U! c7 D( I
pUser->AddText("你还未达到重生条件!");
' _$ C l9 y. ~& P4 w" s1 ~
#endif
) ?( l; r: N Q
return TRUE;
+ m$ l# O0 y6 _' R1 Y" b, C
}
1 j( g/ `! Q1 b, S
, E1 L! G7 l. @0 m: r
9 F( r: X# p8 h
. v+ S7 g9 |! X
" y, c+ Z: Z. z* \
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2