飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; v5 S& J4 D; u0 h2 ~
9 W! q H9 z% e. |; t
Mover.h
/ h) Q d! k1 N- j4 \) i
代码:
" Z% r1 R/ ]7 i% ]
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
" r) r9 g. l/ L* l
% V6 J) b' B5 T, A
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; p7 |: b# }: h# M7 f9 e* O+ W, }
( E1 @1 ?- a7 ~: f$ H
然后你去mover.cpp添加
3 m' ~7 C" p5 `0 t
7 F7 U# V0 U7 u0 ?7 H" v
代码:
! H& l# B4 f( W) a6 g
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' Y& b& \: e6 {7 q% i0 d
{
" ~% L5 W$ R7 U7 Y: Y% D/ r
#ifdef __WORLDSERVER
# |2 p/ l' H8 G+ a8 @
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 ]5 D/ [2 \* Z: G
MoverProp* pProp = GetProp();
; X8 q& Y/ ?; i( P7 J: X
if( pProp )
( C5 h. o: z4 M! J# q/ S0 a
{
: q- ^3 u5 C8 v6 e# b
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
+ Y& H6 u* B5 n* q6 K, q. ]
{
5 i- Y2 S% N# r
AddChangeJob( nJob );
: ^1 g6 `( t7 Z8 {8 O' w1 w' A
}else{
2 k7 o/ R; u2 p
return;
; m4 d% g+ p0 f. v' B
}
% {6 O% o" z3 X2 g+ K9 b3 s$ x; V
int nPoint = 0;
% i. a+ O, n0 C+ [* J- N; H
if( m_nJob == JOB_MERCENARY )
: l$ I* k4 V4 B$ j4 d- S' U/ C$ P$ s" t
nPoint += 40;
* R7 w% H" |; K3 C9 |- `7 E1 n
else if( m_nJob == JOB_ACROBAT )
" |( ~& a* ~. N' [
nPoint += 50;
3 `1 r3 z+ f* W) I4 }3 R- i
else if( m_nJob == JOB_ASSIST )
; V( ~0 E: g6 t( g g2 U
nPoint += 60;
. \* I% f' o. m4 \3 c* l$ j3 d, ~
else if( m_nJob == JOB_MAGICIAN )
) n- d/ q6 |/ }; c$ ]
nPoint += 90;
& Q" G) p; W2 H* i
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& T6 P% b3 d& I4 u* C# w# v% j
nPoint += 120;
: a3 J+ W3 S3 q
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: _( U1 c/ A2 p, x
nPoint += 150;
M/ v5 L( N. u- d& `. p! g' ^) J
else if( m_nJob == JOB_RINGMASTER )
: L) Y( r/ k( G2 M7 y
nPoint += 160;
" \, W; o+ [! K7 H1 Q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 j" p& A4 Z% R# m
nPoint += 180;
6 f2 r' \; N. @' w3 K0 X
else if( m_nJob == JOB_ELEMENTOR )
1 y2 r" s" V: f, O/ J
nPoint += 390;
9 E2 C F% V. ]. z3 `- L
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
; O: Y2 J J9 L( ^7 g; `; N2 e+ ~! {5 \
nPoint += 120;
/ f' g# @- ^3 f5 w
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 U6 C: ^5 d, Y/ Y3 g
nPoint += 150;
5 Q( h7 m6 G! ]) [. g
else if( nJob == JOB_FLORIST_HERO )
$ n) c6 |! [" Y0 o N0 I) v
nPoint += 160;
0 X, G7 L/ W1 l; ^' W
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& `* F6 T8 }; x9 F) Z- ?0 {6 l9 K
nPoint += 180;
5 M/ n# o" d/ O5 M9 J
else if( nJob == JOB_ELEMENTORLORD_HERO )
( d; O( v! K; ]0 L
nPoint += 390;
% ^4 F# l, r9 j# y
/ p4 u. Y* V5 q) z& b2 }: \
AddSkillPoint( nPoint );
' @( f, e& z6 h6 w, Y
m_nLevel = nLevel;
3 x. W% [. I. ]: v" L
0 [; I3 `9 n7 E/ W
SetJobLevel( nLevel, nJob );
. `* W% J4 I N5 q" e
m_nDeathLevel = nLevel;
; `. ?6 r# h; C# A F( h
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
C# w+ M( Z) p! N9 A: V
if(IsMaster())
- j# p" Y. z }* A
{
% Z0 {7 N2 d1 d' f
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: y8 `! M9 `: ^0 n- ?9 X' } E
if( nLevel > 59 && nLevel < 72 )
. R# |' d# N" M+ |6 `
dwTmpSkLevel = 1;
; b- H0 l o& N7 [/ W
else if( nLevel > 71 && nLevel < 84 )
5 J$ } S* C" ^: ]
dwTmpSkLevel = 2;
8 R" P! v2 X, l" D. T# R) |
else if( nLevel > 83 && nLevel < 96 )
% T+ P1 e# }% [" M
dwTmpSkLevel = 3;
. \' V# @+ g H4 _
else if( nLevel > 95 && nLevel < 108 )
& e+ M3 `9 @! A7 G3 I, O7 L- |2 ^- x
dwTmpSkLevel = 4;
$ i. |+ E* L# K D! W5 y* K
else if( nLevel > 107 && nLevel < 120 )
7 K( k- T, l3 k& W
dwTmpSkLevel = 5;
, f9 b7 c# a; [; Z1 {( u
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 T* {. l9 D$ o" K: Q& l! W6 y
{
2 \2 h! Q! U9 p6 F; e
LPSKILL lpSkill = &(m_aJobSkill
);
! x: ~; l) E+ ~4 {% u; j/ Q( T
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 R* x" h- ]/ E
{
+ f( O1 w+ `; ?& d# `4 b; j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# o9 Q- n K! G. p
if( pSkillProp == NULL )
# b# d7 j( O- ~0 j, J' }3 J4 _' b
continue;
! @, s( }) l" q6 [2 t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 ^5 V: a0 ~% o6 `! F& ]
continue;
2 C! Y h6 B6 v
lpSkill->dwLevel = dwTmpSkLevel;
( H4 R7 K2 x% D* [) A4 K+ I0 Q
}
0 C4 X" e& h$ j- Y" p: b! C
}
$ [8 \1 {! L. }
}
" ]. E |* \2 {
else if(IsHero())
; N" L5 r( G5 G. |1 }- z
{
6 L% X* i8 g/ E. l. \0 S" h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 \) u+ E& G6 @& c$ V1 t
{
) u: w1 X7 f, R/ Y7 ?
LPSKILL lpSkill = &(m_aJobSkill
);
) I0 |8 O3 u4 |! ?; Y3 l' [5 B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; v# T8 k( E5 I8 K1 i
{
5 i; q" G- I$ L4 Z5 x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' x0 h3 }, R- G/ |2 u
if( pSkillProp == NULL )
' [& u2 d# N7 l% M
continue;
8 }1 M* e9 } d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 a9 K" [9 j4 l3 R
continue;
, z( N' h* n+ [+ e7 W
lpSkill->dwLevel = 5;
; a+ z8 a/ r4 v! u9 V. Z8 L9 P- V
}
4 ^, A. D: }0 K# G4 v5 z% A
}
; }7 c" ~: F; Z, r, k
}
2 Q) ~2 |- h2 y+ k* ?" A
else if(IsLegendHero())
* y- p X" T) I( r& J
{
) D+ I8 }) ^' l! U% M+ w: S) b2 b
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* q' x$ c7 U; X7 L; Z; ^
{
0 a0 S' z& N0 Z$ r2 N B9 V8 b
LPSKILL lpSkill = &(m_aJobSkill
);
4 u# e" c1 `/ n2 j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: E' Q) t1 x# o
{
3 t6 a+ i3 N; P+ P' H, d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 w3 } ]! d% T: H0 R+ B
if( pSkillProp == NULL )
0 v" o" v6 p4 Q4 a$ L
continue;
# N* T: r! I1 ?( t" j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- u4 W+ v: c2 K5 H
continue;
# x \' |7 y& {' X% p& ?
lpSkill->dwLevel = 5;
+ q" T L: \ U. y0 ]& ~
}
' Z( q: m2 o& a3 l9 N+ x+ q
}
# x& X1 [1 c1 t+ L, t8 ]9 f) J
}
8 {0 }6 F3 ?9 M6 A% C, k* P
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 }% J: [- P2 R
if( bGamma )
- X# v6 W; h8 K
{
, {9 @$ K# w5 ?1 \
m_nExp1 = 0;
3 Z3 @) Y8 Z s
}
3 X9 T& E) V$ l( L q, Z1 P
1 W/ ^# F' U8 g+ q' P2 s) z* D7 Z
( (CUser*)this )->AddSetChangeJob( nJob );
3 q J: |4 z z1 J9 Q
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 `: Q( ` \4 R
+ n8 X6 ?( E& ?% B+ ~/ f
/ ^+ L, @# c" a+ I( {7 E
#if __VER >= 11 // __SYS_PLAYER_DATA
+ q2 T- G. k2 [7 Y; X
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 d- G4 E% I% O
#else // __SYS_PLAYER_DATA
* t$ B4 \) A+ r' p( Y" Y0 C
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* w* K, l/ s! g, j+ f
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, c7 a' W8 K+ ?* h3 w
if( m_idGuild != 0 )
8 z `8 y( h, x
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
' k8 ~: j" P. _: E5 x* |
#endif // __SYS_PLAYER_DATA
5 h( N3 f8 N) v# g1 \: m" Z
SetHitPoint( GetMaxHitPoint() );
* Z; k2 {6 s, q
SetManaPoint( GetMaxManaPoint() );
, ^7 k! O5 l" C4 ~5 ^
SetFatiguePoint( GetMaxFatiguePoint() );
/ ]; k' W# J f' w* U' @2 J- k
if( nJob >= 1 && nJob <= 4 )
6 c5 d; ~" p) e, F$ q
{
. ~. t# D' S5 f* d9 I' M
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( N. `1 Q, n5 O6 _
m_nRemainGP = 28;
) @) _! }# m1 O5 ~
}
4 m% E- b! K* Q4 M* [% x( F5 ]- W
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; H2 B d8 t6 I% I9 U. J
{
$ D+ f+ s# [, Q
m_nRemainGP = 118;
- V2 I6 {' M- U0 D7 l6 g3 a! z6 O Q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' t/ w) z3 M& T
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 X! s3 w# T! L( z' {2 Q, M6 i" \
}
. V* y4 U! F( ^, W, g3 o
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! e" G; i# S3 v5 O
{
# t O- @( N! Y. E0 x: _& `
CItemElem itemelem;
0 s9 L4 Q/ R7 Z; B6 Z# A) d
itemelem.m_nItemNum = 1;
! @$ T* }/ h0 P$ s }0 p! o
itemelem.m_bCharged = TRUE;
. @8 K, T' G2 C/ O4 m" I
BYTE nID;
- F; }: H0 k, o5 W# A* d- }
* Z' @( }/ \- \ j
if( nJob == JOB_MENTALIST_HERO )
0 M6 }; z4 z Y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ U) B7 F) U) G$ l0 s8 C+ Z
if( nJob == JOB_FORCEMASTER_HERO )
, w- |3 L7 f4 t& O$ o+ ?. v. v
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ \3 J, ^9 H: S+ r2 {. M/ a! e2 ~9 }
1 q' H/ q5 o9 J6 P7 ~& ^8 b
( ( CUser*)this)->CreateItem( &itemelem, &nID );
h3 J+ t% Q: u
}
* n! I" g( C" M7 X
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* M9 ?# B3 w7 _1 d1 w
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
% }: R1 i: J$ R& S" {& b9 o
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 \' H" j% U5 W; T: F4 o
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& d: c+ X% W4 K W. |* G
( (CUser*)this )->AddTaskBar();*/
& |2 Q; Z$ T: i8 [
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 ?' T; g/ {/ L7 E' r9 w/ m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" ~( ?3 @$ I( V
((CUser*)this)->CheckHonorStat();
& ?6 |$ i; z% z! r$ \4 d# k
((CUser*)this)->AddHonorListAck();
% h0 W! K& _; h9 i2 s) o. z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 E1 n0 e0 T9 U8 Q5 l6 i
#endif // __HONORABLE_TITLE // ′Tà?
K- f4 K1 B9 N9 }
}
0 O: x8 O; ] t$ K
#endif // __WORLDSERVER
6 f4 c$ |2 ]+ n
}
* s7 T6 L- V2 h6 R
* e7 p4 F, L" t" M+ v7 H2 N5 J
然后你进入functextcmd.cpp并添加以下
& m: y1 |9 }: t
7 p% Q: i: a# ]' y3 R
代码:
! b& t1 e# K% }3 w9 X+ X, D, A
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ Q8 D' z+ v; ^# q5 b
下面插入
0 U6 M: a& v0 N; }0 [
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 j- H0 _2 g3 h+ e3 `" k! _* P
S# r6 Y0 Q' E4 h8 }5 O
然后你去
; u( H3 w; k- u) X2 a# Y1 R2 A. X, t
: H- y0 s8 U2 ~9 L( i9 C- B9 c
代码:
8 E' J% |0 A9 Y
代码
' c2 b" l: W+ g9 I
BOOL TextCmd_ClearPropose( CScanner & s )
" | [1 G8 Y: {' n8 K7 m
{
4 P8 T B7 z. O& b
#ifdef __WORLDSERVER
& I! E) x- }" o a$ q% \$ \$ [. ~ F5 ~% a
CUser* pUser = (CUser*)s.dwValue;
1 a& m; w+ |, K8 E6 D: B
g_dpDBClient.SendClearPropose();
; \( y1 N/ R" d9 T8 a4 }, B
#endif // __WORLDSERVER
: y8 Q5 u8 Z: `& P# l0 W% M
return TRUE;
0 M/ Y! J" z1 |/ Q" D8 a/ y j7 B
}
/ Y& M/ C/ P) K* v; l; z: Z9 o
下面插入
& h4 h% I6 _+ H8 P2 E
BOOL TextCmd_rebirth( CScanner& scanner )
8 Q" c. r& `7 _; |
{
7 C. ~7 b8 X# \" M
#ifdef __WORLDSERVER
( C4 Y& P `( l% U, p8 b4 x- u
CUser *pUser;
) g! j j+ W3 r0 t6 ~' V
pUser = (CUser*)scanner.dwValue;
R. z6 a; J$ K1 _/ ^1 j+ T2 K0 S
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ i7 n! _9 E$ p" ~
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
1 O" w* v ]& _- @0 ?
else
7 P1 F9 K N8 `: ^- w/ z
pUser->AddText("你还未达到重生条件!");
6 N9 l/ k$ X; _7 E( w
#endif
; v) T* Y5 i2 ^) M+ G5 @2 }
return TRUE;
. j- C4 n* Y. i2 z8 Q
}
: e# P, b. f2 Q8 c0 P) K* g, n
; ~( J! O7 a1 {- q+ X. A- W; X4 t
; @4 d# N# `2 s' k
; H' ?& A, _3 ?9 Y+ \
3 K0 s( \; `1 l! N' z' b$ f
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2