飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ ^* F5 [5 i; E) e0 U/ J
6 \. Y$ ?7 M- `, ?
Mover.h
f; ^ b% z, _( Y7 Y2 T
代码:
+ r5 Y* j2 X( R9 ^
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. p% d1 i0 _& n
6 d& d1 V3 h( Q0 Q) y& z0 w
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! ?/ P( e7 _) c+ s
8 d2 x5 N! p4 r; y
然后你去mover.cpp添加
: U) J4 G# N6 ~8 z6 S7 l2 V
. P* `4 G$ U; C
代码:
' _0 N. n) E7 h9 u* O0 ^; R. @0 Z
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 q) C8 d( f- R% d2 }
{
; P* e8 }8 `3 k( D8 h& U& b
#ifdef __WORLDSERVER
I8 }$ p: s3 o" ~
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# W6 s- N3 U7 f5 e; l, I
MoverProp* pProp = GetProp();
% W4 t- F Z! ?3 J- \! U5 T
if( pProp )
8 | r& j' }3 j n( u2 Y
{
7 l, ?8 q" u( J s. v+ d$ x0 n3 T. l
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) n p/ S7 v0 E1 [2 e7 O5 p- l$ ^) W
{
2 K" J: w6 c8 v3 { f
AddChangeJob( nJob );
9 m( j$ v/ o( A! m) l
}else{
; M" c6 W3 J5 S% x
return;
- d7 D- b1 x/ B9 K( D& ^
}
( ^8 I" [, x6 V5 F( L7 ~
int nPoint = 0;
3 {, d' }! L3 ~3 V% y1 P2 [! r0 l
if( m_nJob == JOB_MERCENARY )
( z( N. E' ~# e K
nPoint += 40;
2 w% Q/ w0 u* M" w/ n* [) B
else if( m_nJob == JOB_ACROBAT )
/ r+ L5 z$ [% y" s
nPoint += 50;
# A9 G c% M* @8 S- g! |
else if( m_nJob == JOB_ASSIST )
7 M9 _9 C5 c$ Y/ O+ u. F5 D. U
nPoint += 60;
) U3 I5 z, k; e" E4 p5 n
else if( m_nJob == JOB_MAGICIAN )
Q1 p- V6 k; Q7 X7 E( V
nPoint += 90;
; P) i; g6 S' C6 z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& R3 ?' N( _0 b' h
nPoint += 120;
) S2 ]- N) I* z2 P
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% J9 V$ O4 q' ^7 t0 R% A; b
nPoint += 150;
% o/ D: a( p* v$ q6 P$ d! O
else if( m_nJob == JOB_RINGMASTER )
4 P8 z1 y- ?# \8 [
nPoint += 160;
a/ ?$ o4 c$ D1 `! p( z, L% e3 E
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ p' ]0 ~# `; d7 g! R
nPoint += 180;
5 g% ^8 H( K, ~; O. _
else if( m_nJob == JOB_ELEMENTOR )
7 L$ }8 r% N3 j0 Q2 b! y8 n
nPoint += 390;
o5 k! Q+ k& M( r+ c
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
% k8 \& U, V8 @: e x1 V
nPoint += 120;
+ i! X& L+ P# I: p
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 e+ J# @ J5 t0 p: {
nPoint += 150;
# p6 \ F9 }* k4 f) z' S
else if( nJob == JOB_FLORIST_HERO )
3 l: L! s! S& X, F8 x
nPoint += 160;
8 P' Q$ P9 d2 i
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( b1 ]* [' l0 ~; z
nPoint += 180;
/ L4 Y, e! A) M/ }( L
else if( nJob == JOB_ELEMENTORLORD_HERO )
6 V! { q: c" H* B) p
nPoint += 390;
: E. ^* a/ F2 X6 L
& C1 w6 g. v! K+ u) J
AddSkillPoint( nPoint );
1 ^/ }1 x! n7 I6 T. Q3 x0 j
m_nLevel = nLevel;
6 e3 o$ M7 ]5 C* W: l$ H6 Y
2 {7 z/ r" v, @ f7 R1 @/ o5 }* n
SetJobLevel( nLevel, nJob );
4 e# B. M" v1 U: z" J/ q
m_nDeathLevel = nLevel;
5 ?) Y2 r* `, s9 Q2 z
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# p' u! z, X" ~# P7 Q6 x0 p5 p
if(IsMaster())
% s, Q7 [ m5 ]) i Q4 s
{
# }( T# m6 m7 _- l0 V- w
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, v$ e9 A2 g: Q, F8 Z
if( nLevel > 59 && nLevel < 72 )
1 x3 N# E6 C; G9 v; }
dwTmpSkLevel = 1;
+ V3 o2 ~0 u9 v" u$ |# S i, b2 v7 e
else if( nLevel > 71 && nLevel < 84 )
- o7 a. ^& F0 h* U
dwTmpSkLevel = 2;
0 w3 h# w* W( a% O6 t% v8 k
else if( nLevel > 83 && nLevel < 96 )
0 i% J" d1 o2 q/ E0 n8 J
dwTmpSkLevel = 3;
: A6 s" n+ O7 P6 E' B B8 B2 ?( n
else if( nLevel > 95 && nLevel < 108 )
2 g% c* @) S Z( `+ Z4 _( K4 O
dwTmpSkLevel = 4;
8 t i6 @" X- c4 s$ u
else if( nLevel > 107 && nLevel < 120 )
, s& E3 M- Q! M8 q8 l e2 C
dwTmpSkLevel = 5;
L8 ?; M4 o6 V8 Y: T
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ P; |6 u+ Y+ Z4 t& z9 @+ o
{
$ n2 f" j$ E! d) T
LPSKILL lpSkill = &(m_aJobSkill
);
4 w# k0 b0 W4 o" g. [$ U" p- c, K3 ?$ U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% {& E& }2 H6 Z" M' f
{
5 @) _: ~( Z) I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% b, L$ L% y* j8 o& f4 B
if( pSkillProp == NULL )
5 \3 s0 v0 p9 G! f5 N$ a0 [# T
continue;
: f% l7 \/ q+ x7 D6 y1 p9 h9 [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 P$ S9 n6 H0 B+ l& P' r
continue;
- V" B# `" y _$ ^4 P N/ i0 r, B
lpSkill->dwLevel = dwTmpSkLevel;
/ R+ D' R+ n, E& z6 A# V
}
5 ^% U1 }. J" T$ M$ D
}
. `0 B4 X1 X: ~5 ^- C
}
$ [: W6 C1 \8 X4 h2 S- x- R
else if(IsHero())
2 Y; u/ {1 ^4 j3 S3 }" K+ _/ ~
{
% v& j: N$ n! a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ I2 e; S% Q/ h' }4 ]0 z
{
4 e9 d+ N) \' e( g$ O. p9 `( c
LPSKILL lpSkill = &(m_aJobSkill
);
4 v( P5 f' ]9 U/ k: L6 [
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 I- _& a3 y! n0 A$ M4 I: V+ ~
{
6 b* {$ X7 j$ Q' D, b8 h; f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; U9 q$ U. e* ?% ?1 H! U
if( pSkillProp == NULL )
% H* N- B% @* T4 {1 |
continue;
- V) l; ^4 s. o* |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! D) D0 M9 v# a4 Z$ B
continue;
9 y* [: f+ x [
lpSkill->dwLevel = 5;
& ?# J+ N0 s* d: ~) R
}
) N# i8 w9 `' y# G, g, c: d
}
1 c; q$ ^! Z0 J/ v: M" f6 a
}
) T$ q6 J2 ^. {/ g
else if(IsLegendHero())
`# l1 R. M. `1 R3 g2 `
{
5 d8 [6 R8 k* ]( A% W
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 I9 W y2 P; d$ o5 j
{
9 g5 B! y/ J- A6 l3 g4 X6 t, `
LPSKILL lpSkill = &(m_aJobSkill
);
; T# A5 l5 o. d# w$ ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- K' v3 b! n. V% p+ ^! G% z
{
- B3 ]+ [& h6 z- `; j: a& T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' I, q* i5 m: ?, Y3 i7 P s
if( pSkillProp == NULL )
0 }2 C6 T, B) d
continue;
/ A6 C; K. E8 C* ?3 q$ z: j* z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; G3 U; R, c% ] f- p F1 I
continue;
, }+ [8 S' K6 A% g6 W
lpSkill->dwLevel = 5;
) O8 Q, I, r' N9 W- J4 n
}
) Z% d$ P% |6 M
}
# J6 ]$ Z7 N$ T# `; z
}
$ a& R2 E1 q" y! A
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# y% L' o" [$ u1 I# j# v
if( bGamma )
. T) y% e# \' a' {" V
{
, C- r" a- E" \ w- ~- O0 z( p' K
m_nExp1 = 0;
5 I! ?- f2 R7 H1 P( |# p% v
}
0 K2 E1 ?' `5 J' t3 N0 u& X+ U" d" v
% O$ G) i% Y8 p* i8 U: i
( (CUser*)this )->AddSetChangeJob( nJob );
+ n, R7 z6 N. |3 [3 }7 ~6 e
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 H1 f3 M4 R2 I
5 B! \, V6 g/ F. A# Z( L( U7 h; f
$ q, I$ e. \: }7 P7 Q. X; w. {9 W
#if __VER >= 11 // __SYS_PLAYER_DATA
% T9 E/ {2 {3 s4 H8 ]
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( [% X- p' a) q. U
#else // __SYS_PLAYER_DATA
7 I+ S; j/ N0 C2 ~% C" Y
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& M j# Z% S/ ?/ w$ p, n& l
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 K2 Z0 G A6 E: s
if( m_idGuild != 0 )
3 b" i6 v, K5 p# ~0 R
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" J" T" p) G) a. j2 X( E) W
#endif // __SYS_PLAYER_DATA
9 {4 @( }' S' Y% H6 Z3 f% f# g
SetHitPoint( GetMaxHitPoint() );
8 Q$ `' |- }; O6 v: W* p+ o
SetManaPoint( GetMaxManaPoint() );
+ y' X6 y* x5 K+ D
SetFatiguePoint( GetMaxFatiguePoint() );
- w/ o+ a5 L7 W6 z9 _( F2 `
if( nJob >= 1 && nJob <= 4 )
9 E. M6 e% n P) `6 {( m
{
- R9 ?& x6 p4 v5 M
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 c$ y2 v1 |/ a4 @2 B5 a! Z
m_nRemainGP = 28;
; o0 s: Y' g- e$ {0 a/ o
}
; q4 H! W$ P! u9 [" x) r
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 h h9 a# {- G. H, T; ?
{
7 j0 s0 P8 }" |; X0 X5 J
m_nRemainGP = 118;
) y) ]2 \% T1 X$ n3 A+ y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 M: r+ W+ S- w$ t3 |
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, o% d5 }9 b8 `+ w4 u& ^+ m# {
}
5 S! W+ d. A( f6 n
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
- m+ [* a+ l- k9 v a9 a, t3 _
{
1 R( C) T B2 O2 y, t
CItemElem itemelem;
3 B% B( x) U& a) c% e. z' G
itemelem.m_nItemNum = 1;
- `) P7 b* `* r
itemelem.m_bCharged = TRUE;
' E* ]$ d$ ?2 N2 K) [. U
BYTE nID;
' L' g9 x, u/ \( ^2 ^
: D! f6 g n- f2 O5 _3 b
if( nJob == JOB_MENTALIST_HERO )
* I! o+ D c4 B6 L! ~- D1 k3 D
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) @( A- K: q6 `+ X4 Q2 s
if( nJob == JOB_FORCEMASTER_HERO )
1 C, N ~; T& G! s; O+ g9 l4 F
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& j+ a/ F9 V/ n2 J6 U( X# Q
' {3 y( N4 N# V& K! a! n; L) Q
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 e' L- U; p8 {" i) m% C2 u
}
3 G' {/ R' G. r: d) U
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
0 K7 l/ ^0 f0 W1 q: P
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
9 P7 P, d/ j: b, j( c
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* F/ a4 }6 }+ i y* J
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 G s( p# B2 _# b" j8 i; U/ L
( (CUser*)this )->AddTaskBar();*/
3 P% [" a5 K% s& }; f9 M
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, x% \/ u9 {3 _" d8 k, z4 n
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
4 {$ y0 @! u: m9 o/ u/ m& C7 c
((CUser*)this)->CheckHonorStat();
+ ?' t9 Z$ G1 L
((CUser*)this)->AddHonorListAck();
9 Z! j: B! m& t3 q, h8 X7 p
g_UserMng.AddHonorTitleChange( this, m_nHonor);
, }/ @1 d0 x! r$ F, Y8 l- Y
#endif // __HONORABLE_TITLE // ′Tà?
3 g. s: g; u+ A$ S: l, v Y
}
, j; F) A5 b6 _* u* G+ ?% _
#endif // __WORLDSERVER
0 i# I% k; u: V; t9 p
}
4 d& k) H$ N" s" s
' }8 |0 Z+ r2 s% ~6 N$ U
然后你进入functextcmd.cpp并添加以下
5 _* }+ t& [; O! d1 _2 I, ~
" P1 Z" }1 S: T9 N" q: q% z
代码:
1 A \) Z$ L, l& B8 I5 G- ]
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% n% m' ?# x1 i, G$ g
下面插入
. T. v9 Y7 b) @7 ^
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" `9 I% I# k9 c7 ]. P
1 n0 e0 \' m' q" J8 {5 W
然后你去
+ t, G- A! w, [4 s5 y3 h2 i3 E
/ _8 `$ M' A1 S0 q o, r
代码:
* X* S; y! d, D9 h d# x; p6 O
代码
( s' ? v/ e4 w) X& \
BOOL TextCmd_ClearPropose( CScanner & s )
4 B) U8 v& U' j* f' o" Z# R1 G
{
8 r+ Z) C& {* p6 }) z
#ifdef __WORLDSERVER
% H7 E* ], t5 T! d+ u/ g
CUser* pUser = (CUser*)s.dwValue;
# N9 Q8 [( N8 z; [
g_dpDBClient.SendClearPropose();
0 d$ d+ W$ j4 }! z' v6 o% P3 R
#endif // __WORLDSERVER
P) q5 A, L: ~9 }
return TRUE;
; U7 c, k i; Z9 S
}
7 W* u. x3 r' s
下面插入
% W' n9 n- T2 i* H- E+ }2 T
BOOL TextCmd_rebirth( CScanner& scanner )
2 t9 N9 H, E2 ~, ~' j1 i+ n
{
3 U4 y( }8 e. r* S
#ifdef __WORLDSERVER
8 l( M6 S- c" A3 R* J& p' G
CUser *pUser;
0 c6 q0 P0 X! @2 h
pUser = (CUser*)scanner.dwValue;
# C6 i% @1 ]& e) S$ P
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 o0 ^2 B! P1 F9 A; v
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 g& H% ]+ _& ?0 ^7 f# c0 O) ~
else
8 S! O n' H4 W) u
pUser->AddText("你还未达到重生条件!");
' X5 ^* \2 Y c' g; [8 j
#endif
: D" w$ o3 }" F- q& F
return TRUE;
( l) E5 _( f% Q8 F
}
. s6 g# z0 P" K: q& w
5 u& H9 k% u# V# h5 k# a
! S* M( q4 g4 g, V
8 g3 ?3 D5 `* r, D
. Q& _+ L: ]* b0 T4 Q3 ~3 w3 t. R
欢迎光临 飞飞世界论坛 (http://ffwold.com/)
Powered by Discuz! X3.2