飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: X- h$ N8 z- p5 `3 }: f! H; |
6 b$ D1 @: f; G. h) T6 M
Mover.h
7 X1 f8 E+ i* K
代码:
& I* @. N3 D" L
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ U U" l+ | A4 E
( T9 C0 ]2 {9 D
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
g- L6 B' @& u! z9 f
' R+ y0 ~* c4 E' S6 Y( w) i
然后你去mover.cpp添加
' o5 O: ^1 J C
. z. e8 ]* U% F' d
代码:
$ P" Y) h- }4 K. L/ m& i
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: Q6 a2 M% `+ t% W+ J; s2 ~9 q
{
& P- n: Y( |) f2 Y- g6 s. ]
#ifdef __WORLDSERVER
" c% B$ d$ b4 O& t4 W! k* n3 {
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- _9 d; g4 @6 ^3 u; J8 Z+ L
MoverProp* pProp = GetProp();
9 Y: s- U, j, j1 ~
if( pProp )
$ u" r' I7 e' O7 z, S
{
' y, W6 d+ k4 u; T! U5 A4 k
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# ~/ f5 l6 {6 ^3 ^* y3 T% z
{
6 u, [& y7 z1 a w, z1 y1 o
AddChangeJob( nJob );
# t* F' \0 p. i8 `/ Z* l5 x( H4 h
}else{
; R) N: @, d$ P2 O# x' {
return;
& f4 d1 {, d$ x7 K
}
, J3 g' _+ B2 z5 O! Q! i) z! c
int nPoint = 0;
* ]" Q1 |. ?0 \
if( m_nJob == JOB_MERCENARY )
* F5 s) U3 V- S$ Q6 C$ d1 X
nPoint += 40;
( p* d# \, r- N3 R: t& h, `
else if( m_nJob == JOB_ACROBAT )
4 b1 v0 U0 S: l) P
nPoint += 50;
0 G6 ?# a M X) o
else if( m_nJob == JOB_ASSIST )
) N" a' j( X3 V, _
nPoint += 60;
- ]$ b2 s0 w! Q* O: x- U& b* d/ Y; U
else if( m_nJob == JOB_MAGICIAN )
. z: F3 s. M f* L* ]% U- x6 |
nPoint += 90;
( O6 [: g: s" l. }! a- g$ B
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
, L$ N( b0 N- G0 N% P. D# C' p u$ A
nPoint += 120;
; ]* R9 y6 X" S2 o
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 I7 k, p) e4 g! N. k, q0 j
nPoint += 150;
/ p8 T0 ?8 |6 N6 S) [+ d
else if( m_nJob == JOB_RINGMASTER )
1 T4 ], s' H, X: A
nPoint += 160;
5 T3 q) `1 }3 L2 j7 j# n
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' i2 X* `, @) ?) W9 a3 C
nPoint += 180;
, d/ |+ B2 [& x
else if( m_nJob == JOB_ELEMENTOR )
' w; R i5 T4 A- o. B3 ~
nPoint += 390;
% f5 `9 T' S, H
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
% h+ M V# C& k6 i/ l C {
nPoint += 120;
. r, p+ a. N4 f; I: K0 A
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 ~ @7 d8 ~. K" T. q# P3 B
nPoint += 150;
4 m/ w6 P" v/ x: W6 ?( k
else if( nJob == JOB_FLORIST_HERO )
$ e; q( Y9 c1 B/ R
nPoint += 160;
( R1 ], e: l" P% k. ^
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& P) g3 ^# z# I7 O( f; a: H
nPoint += 180;
* a- y9 a# p3 o8 U
else if( nJob == JOB_ELEMENTORLORD_HERO )
$ f1 j4 y" {" x) K: I
nPoint += 390;
3 L- x) G, K$ _4 \ |! p
6 @* M' W( J: t6 d$ H# Y% d
AddSkillPoint( nPoint );
7 m9 ^/ K S9 m9 w
m_nLevel = nLevel;
+ M& _0 m4 ?2 E0 [$ w: E
" n- a% ], \! j6 ]' J
SetJobLevel( nLevel, nJob );
9 X6 t- `- s# A% U4 d
m_nDeathLevel = nLevel;
% h. M" i! e; B/ j* u
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 i4 }3 `( N& D
if(IsMaster())
* q0 O( D' q7 G+ X9 y2 J
{
2 b2 c) |6 Y8 t$ F8 H; Q6 I- T
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
* g! r$ b; s. p. d; e2 e7 E
if( nLevel > 59 && nLevel < 72 )
0 U% j9 \& v/ |. A
dwTmpSkLevel = 1;
: B. G, u; g8 W- ]8 d, x6 l) h
else if( nLevel > 71 && nLevel < 84 )
8 k% I+ y1 m* K' R
dwTmpSkLevel = 2;
N! F$ W2 M G. P! G/ U- v9 _
else if( nLevel > 83 && nLevel < 96 )
5 Q% K, q4 e4 k1 G( b$ J1 t
dwTmpSkLevel = 3;
) P& R9 p' X A8 M0 N
else if( nLevel > 95 && nLevel < 108 )
9 C% W9 {9 D8 ~
dwTmpSkLevel = 4;
2 @ Q4 N: Z3 t: S
else if( nLevel > 107 && nLevel < 120 )
& \* Z( K( p: l5 ~6 K
dwTmpSkLevel = 5;
6 H' c, h! R9 u5 |/ A5 M
for( int i = 0; i < MAX_SKILL_JOB; i++ )
O) @( t+ V/ m9 _( k
{
) @1 c9 W1 _# M6 n+ r
LPSKILL lpSkill = &(m_aJobSkill
);
# M% B+ h1 M# r' \- d" T0 f7 O
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' L2 E4 W5 j+ j) X/ K5 S
{
5 D. @ ^& w8 I" e; [( v+ c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* @/ n/ F, @/ q$ N7 g) O& F, T
if( pSkillProp == NULL )
4 y' ^* h& R# u8 e% E- k1 k
continue;
+ F! X! y9 t) B* S A, I# a; F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% F* y0 u: Z9 f& S5 v
continue;
* Y8 t; Q: o! _$ H% G+ s2 p
lpSkill->dwLevel = dwTmpSkLevel;
8 N2 G3 _) }9 F9 B8 m
}
/ j0 M5 p& o. ?7 n) c
}
4 V. Y' Y- h6 Q/ w+ d. H; K, V0 e8 L1 _
}
% u k7 \0 z/ \6 e2 P5 t6 F' J! [
else if(IsHero())
) A1 k8 K1 [. E |
{
8 _ Q2 T- v& e' m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
q. i3 j; G x- n4 c
{
; ?; t# H$ c3 B- Y$ b5 l
LPSKILL lpSkill = &(m_aJobSkill
);
4 _& r# m* v1 y! P- {. S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 v! |1 N" o8 O, g/ @$ h; w* t' r
{
) g8 P0 d6 ]& @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' Z6 n; k/ X8 @
if( pSkillProp == NULL )
9 f$ r z! [8 y( X; | ^
continue;
: c" a& j& `, g3 X1 v+ m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 D; T8 I9 K/ q& }! v# t
continue;
+ k7 g$ O) F, V
lpSkill->dwLevel = 5;
5 U/ L* F5 C0 ]' @+ q) X( |$ a
}
/ ]0 w( i% r' I6 i/ f- ]
}
) c" }2 p% g, w3 T1 U* _
}
0 o, G& S% k P9 p1 y* I7 a! g1 Q2 H
else if(IsLegendHero())
; c% M8 d0 Z7 B1 r( \. `# D$ m
{
1 y% ~8 g7 }# [0 U
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 B" j$ I$ F: H6 q
{
: Y, g; c$ @4 { u6 }: |) I) k
LPSKILL lpSkill = &(m_aJobSkill
);
3 \0 q7 h2 a! S- d, |
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. X; w7 ?$ e" y
{
( l' U' W3 E. S2 I1 O, D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# J% `/ ^: n- x( \$ b/ G5 T8 i
if( pSkillProp == NULL )
8 X3 h+ }8 O' S% P; ?3 p. w
continue;
) J; C* e @; V2 v7 K5 _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 O7 x3 e% u: B* v# v
continue;
}5 C6 S; A1 N) b0 D. D; ~! C
lpSkill->dwLevel = 5;
/ c& I3 y+ H% X: `
}
, g. O' F& O) n( M, y, F# r
}
) }. f W+ y) k$ Z: L+ A
}
2 ?3 u' F) C0 r( l% P
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# v! e- Y4 w& ?3 }! B0 R _* y
if( bGamma )
3 ?5 p) @$ `& p! B+ d$ t. K% Y& ]* l ?
{
1 w/ p* L3 a- |1 o k3 V
m_nExp1 = 0;
$ S5 X. X- O% X3 [
}
9 A% ~$ f$ r( G0 V
* O( Z4 o1 v5 S' S7 q7 t- c6 T
( (CUser*)this )->AddSetChangeJob( nJob );
0 I8 z! J+ o8 L; V# c' Z$ U
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, j! o4 B _$ b( B
2 a9 o1 t( t$ F0 A7 }, W- c+ @8 E
0 B" m+ g* Q$ a7 E9 B3 Z1 a; Q
#if __VER >= 11 // __SYS_PLAYER_DATA
2 U0 @9 C( J# \9 q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ h5 a1 q3 X8 o# \! ~
#else // __SYS_PLAYER_DATA
, z& M+ ~& G7 X0 @: g% p. M0 S
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* m1 u7 Z) C! h4 i
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
z' E, |8 T* }1 L* |
if( m_idGuild != 0 )
7 W( A3 k4 M" I7 N* J
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 J) l s/ ^$ U7 F; t. H+ F
#endif // __SYS_PLAYER_DATA
! l& B3 O/ I: I0 Q5 ~( }
SetHitPoint( GetMaxHitPoint() );
* A' I8 y! u2 _( v P! W( n
SetManaPoint( GetMaxManaPoint() );
. Y2 V4 q& t) R, f
SetFatiguePoint( GetMaxFatiguePoint() );
( ~" z! z* R, A
if( nJob >= 1 && nJob <= 4 )
! b$ |6 I: D5 m) x7 t4 G9 c$ G/ q
{
: m7 Z" s9 o; V+ Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 y: v! G! K% ]6 x; f
m_nRemainGP = 28;
) H2 D' Q" m0 s' W+ L J0 N
}
- Y* M0 |3 V! `9 x+ }. U5 Q9 h
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 U5 H; y) E$ }9 f
{
* i' O3 Y8 j# n# S, `' ?8 V2 D
m_nRemainGP = 118;
1 \6 G/ G/ s' B
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ N: D6 J* v8 c, c$ m) y3 e- c
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 R' R1 Y4 P) V$ u; g/ m/ ~" n
}
! E* v, l7 m3 A1 f
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
$ ]) d/ a4 U0 ^9 Z* g
{
2 r0 L' l: t; `- o1 ]# k
CItemElem itemelem;
$ Q' R9 M- v `
itemelem.m_nItemNum = 1;
/ I5 O, X4 s/ E& v: g) T! Y7 R
itemelem.m_bCharged = TRUE;
* Z7 I2 ?! }2 }, _! Q3 L( U0 }1 [
BYTE nID;
2 h4 ]3 n; O/ j; W5 s" _5 z" D
! K# L; D) m- ^* B& `) A. U
if( nJob == JOB_MENTALIST_HERO )
/ X$ k* [4 z4 x. F6 n# D
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
7 n1 c* |# e `0 i
if( nJob == JOB_FORCEMASTER_HERO )
! m2 G1 a% W( i# p/ }5 H) E+ C
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ O6 @) e$ k6 q! {
7 J; n" T) j; R
( ( CUser*)this)->CreateItem( &itemelem, &nID );
! [5 |) `2 j& }$ ^! V2 h- F: j
}
& E2 l' ~# l, I% E- u3 n0 G
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
E1 \# S2 v2 b5 a2 I
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# \2 K5 o* ?3 R: @. o8 n
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! L5 _) _ l S
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 W. i( Y5 a1 w
( (CUser*)this )->AddTaskBar();*/
: L4 {; i& a) n% b* \$ w
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ s7 @; }; y2 M% _9 v* I
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 W$ ?$ O% r0 ^
((CUser*)this)->CheckHonorStat();
4 s. j5 \, m: S$ N
((CUser*)this)->AddHonorListAck();
7 p2 N3 ?: f8 H4 U- [* r7 S; G
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" l1 Z, F# ? l' d9 J' l4 k
#endif // __HONORABLE_TITLE // ′Tà?
' `* u" S4 L( ?' B5 R& ?1 f
}
/ F8 d* p$ m1 K% ]7 z' ?
#endif // __WORLDSERVER
. k/ o. i5 n3 M2 u A
}
& p+ v! b1 {/ t' p" Q
+ \: ]; ^% N$ Y5 N B: H. L
然后你进入functextcmd.cpp并添加以下
' s! t0 y4 v! F5 V. V# J! ?
9 i5 N4 I& b- g5 D' m. m
代码:
7 Q2 s% v8 {3 P ^4 N8 U9 V
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, l; d: K% ?, j8 |. L
下面插入
( u( R; {3 ^! _2 v5 c; ?
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; z: {" Z& c* a8 H! i& B
4 e' o9 P6 v* V' Y+ ^6 L9 R+ e2 p
然后你去
! W9 a% ~3 M, H4 C' b; m
5 e1 u# t4 j! A) [$ y
代码:
* A- u' g6 J' @' `
代码
4 h* Y. I6 U$ i6 `
BOOL TextCmd_ClearPropose( CScanner & s )
1 b/ _4 h' j7 W
{
5 N- B& @! n% C- m
#ifdef __WORLDSERVER
! x$ m( @( Q+ q0 w+ B. m
CUser* pUser = (CUser*)s.dwValue;
7 b; f" Q' `7 [; E: |
g_dpDBClient.SendClearPropose();
* ^4 R# [$ q* {
#endif // __WORLDSERVER
! M, ^% \; W: ?: `# m1 f
return TRUE;
2 G( P: l7 Y2 Z/ m9 Q1 h
}
! ^5 T( c5 z" B- }4 [: O
下面插入
( m" P% E! p) ~/ |+ p9 m- D4 }
BOOL TextCmd_rebirth( CScanner& scanner )
* T8 V6 f# w, ?6 z- n5 q
{
3 k5 }0 E3 E& S
#ifdef __WORLDSERVER
9 [- g# m) {- D4 J* T: s6 Y7 t
CUser *pUser;
' Q1 p+ P% S o! J) N
pUser = (CUser*)scanner.dwValue;
! w3 R2 G& |/ S: V2 y
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 N0 f+ J& A+ b+ Z+ {# h( U
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 G" y" K( I. `. Z- R+ j/ {
else
( C7 o& W) @6 e
pUser->AddText("你还未达到重生条件!");
5 f8 ^2 l+ A Z% b3 u
#endif
! S. L0 c c" E+ J: m' s I5 L `5 s, v$ B
return TRUE;
7 n- v/ b" Y' [# M4 a& a1 _
}
, a' t2 ]. ]9 l2 T3 \8 y
+ t: h7 b2 f* z
, E9 @4 o, R; q/ }8 y( }0 a
$ \. t; D9 Z; p+ }
( v1 b2 _1 M' \/ I0 N7 M* V
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2