飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 a$ @7 y9 L" B! U, i+ c
* i7 A: m& Y. Y" ] S( k
Mover.h
+ P- D$ Z0 }2 j0 F9 u' M9 t- S; _( v
代码:
a: o3 m8 R! ~
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 W) R) z+ n6 _+ O% [. Q
. y( }1 R0 F: n$ H/ {2 {
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 X& c- O( x0 O! B0 H9 C* w/ O
5 v. y' A6 U: `2 X9 G
然后你去mover.cpp添加
2 Z5 y* | N, j. z
4 y* Z3 Q3 u' q4 R7 o9 j- w! A
代码:
5 V9 ^( ` j- L/ ]/ l& a
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 C! U3 r9 @: m) h
{
% {5 T( l) t R' y! Q7 w5 L0 y& `8 n
#ifdef __WORLDSERVER
! E7 ?1 z* V. r4 Q% _0 _
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: D2 f9 n0 R# `
MoverProp* pProp = GetProp();
& b4 d6 ~ J0 X" r; R6 o
if( pProp )
- o& s6 A$ q+ j9 R0 @3 Z
{
7 R" A( a' F) J
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
+ F" O& x) Y. B8 K: L# C f
{
& C- P# i" a) \& Y; m6 x9 u) R5 l
AddChangeJob( nJob );
9 I. u; a6 T( p3 v7 d/ Z; [7 [
}else{
5 n. {* `; q# t8 S3 o7 o
return;
: s: B' [! I4 I# K% W9 ]: _
}
9 w( \) E. L) [" @" \+ d8 o, O
int nPoint = 0;
: g" f L5 {2 U- z3 Y; R9 o
if( m_nJob == JOB_MERCENARY )
4 ]( j- ?8 D6 }8 S9 j; G
nPoint += 40;
2 j4 v6 \% X9 Y9 x9 y$ | O# n0 }
else if( m_nJob == JOB_ACROBAT )
" h" K) q- N0 {- i% r/ B
nPoint += 50;
! t& t% S, n' x# X2 y( q+ {
else if( m_nJob == JOB_ASSIST )
- d) M! ~- X3 v# s7 _% ?7 J
nPoint += 60;
, `7 ~ { G- r6 t3 T7 F
else if( m_nJob == JOB_MAGICIAN )
; r2 [* _# n3 n3 @ N/ k
nPoint += 90;
5 L9 N: e( ^, B, p
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
5 b z$ v/ y7 S4 Q1 a' S1 b
nPoint += 120;
3 R" Q& f( _# l( ?
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 X9 N# H1 ^. @7 T6 b
nPoint += 150;
/ g- `5 m9 d3 p% {
else if( m_nJob == JOB_RINGMASTER )
5 W! g: [+ P) i; Q y* R+ c, b
nPoint += 160;
) x, p, J8 ~, s: T/ m! m
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 C0 ~# B& h9 `; C- g; S7 {. N" H+ a
nPoint += 180;
0 |7 R( f& t* e3 R0 a) t
else if( m_nJob == JOB_ELEMENTOR )
3 P+ ]/ t, f. d( p( H1 u
nPoint += 390;
1 g8 A; V' J* L# F* Z9 n* E
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. z9 H& G" J+ B8 e0 u/ A
nPoint += 120;
' h4 |. k0 _& h4 p2 ?- Q8 O! {" @: _/ P
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 {, y! {" @% z/ e& B) B% M/ `: _
nPoint += 150;
- e/ ~$ P" m8 `9 i8 l- X
else if( nJob == JOB_FLORIST_HERO )
5 l6 g! s/ p3 Z, X6 i: M
nPoint += 160;
9 p; L; V* a; q; g) V) \) F2 t
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 b$ M2 i6 q; `6 b
nPoint += 180;
8 K( F7 w9 @7 }2 ]$ O
else if( nJob == JOB_ELEMENTORLORD_HERO )
% L4 i5 i3 R* }) W; W5 {
nPoint += 390;
/ |6 s2 p% M. Z6 C8 G. t
% Y; G! }* Y$ y6 G9 V
AddSkillPoint( nPoint );
4 ?0 O$ V2 ]0 k) ^0 a5 H( M' L: _, z
m_nLevel = nLevel;
$ `* _7 a9 c7 h F- t. U1 ~+ c4 f
! x, M6 b, [) w, m/ W% W: w
SetJobLevel( nLevel, nJob );
& `% X6 s! m% y8 I% ^2 G/ K' h
m_nDeathLevel = nLevel;
' p) Y1 W& I+ e+ O1 |! a( {
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: G2 D0 H. o8 Z' x, b3 z
if(IsMaster())
; q/ Q3 N) X- c# |: i
{
. ^, }8 p, `3 ^. U2 V& {
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) d0 t! ]) E1 h4 V) Q3 m8 N
if( nLevel > 59 && nLevel < 72 )
% T% ]* H1 p: w3 M( i5 ^9 J) m
dwTmpSkLevel = 1;
5 q) f, X# Z9 L: v
else if( nLevel > 71 && nLevel < 84 )
4 [( r' W4 y7 y( m# m
dwTmpSkLevel = 2;
# V$ k4 U, a. e
else if( nLevel > 83 && nLevel < 96 )
- M, r( S7 V( M8 Q" @; A
dwTmpSkLevel = 3;
# g: `$ r \3 ]
else if( nLevel > 95 && nLevel < 108 )
- u& l1 N6 t3 s/ j- @/ L
dwTmpSkLevel = 4;
4 O- V. r$ i1 ]7 B% ~" m. X# C1 R
else if( nLevel > 107 && nLevel < 120 )
8 i( `8 \7 f% c. p& p( q% k; s
dwTmpSkLevel = 5;
. B) {( M: [0 y6 D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 y3 |6 b# ]1 e0 c; n# V# T
{
9 \; z( _. I% y/ }3 j- k
LPSKILL lpSkill = &(m_aJobSkill
);
6 c2 h$ W$ j; v5 E; U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 U/ w& ?2 K. l0 @4 O7 l% [5 S
{
2 K/ W' y8 i, l* n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( \9 `) h) N; K& j: b
if( pSkillProp == NULL )
! ~2 ?: O ]- H( n
continue;
/ ]" a0 h8 {9 x, _# E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 y- |# o. W1 r$ {
continue;
9 n/ L. h+ r- J( C5 b7 Q
lpSkill->dwLevel = dwTmpSkLevel;
/ [( s T! T+ M) X8 B4 P3 Q" ~( d
}
, P3 w) E3 K& l r @. C
}
5 d0 _5 ?0 b! D3 D( |# B6 j# q' F2 n
}
5 W" N* ~( v# A- G1 g
else if(IsHero())
% k0 R7 t/ I6 o" Y1 _, H
{
2 J5 y; w" ?& L. m* V5 I
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% C" n' b7 V! ]: A0 q% J/ j
{
: J( p3 q' z1 Q3 W% ?9 W# d
LPSKILL lpSkill = &(m_aJobSkill
);
1 n1 n' ]+ i' k3 [
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 B% k) a( p- R9 q7 W. f: E- \+ {
{
/ a2 t; N, @3 E$ N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# P! p" `( i' D$ C5 @9 r
if( pSkillProp == NULL )
! k8 X z0 Q8 W" x, J K
continue;
; \/ r; e. n( h- Y3 I( b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
]& |4 X* ] Y( z! [) m0 A
continue;
0 R9 |! J5 A$ U1 G- [5 d
lpSkill->dwLevel = 5;
, V4 j, n' q+ N0 I6 j, ?6 P1 `7 S
}
) ^* G" Q4 B ^- Z3 N* }
}
+ S% j+ r3 s P- n1 W
}
7 L, }, n, S8 a* P
else if(IsLegendHero())
* O2 f# O6 r9 m4 D# X5 T
{
% V; n9 t5 T3 b" r$ X; m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 u' v3 A& m4 Y5 E& w
{
) z0 i1 b0 F7 S. ` S6 j
LPSKILL lpSkill = &(m_aJobSkill
);
) ]% M b) N, y0 E: C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 s0 g. H2 k" x) V4 @0 Z
{
& Y7 O& }3 ^6 H) o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. Y: |$ x( P3 Y
if( pSkillProp == NULL )
% }- K5 K4 k2 v( U! c) s$ i- y5 F
continue;
2 _; M, G0 \& v" k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 o' W. {. C v4 Q( Z8 g6 ?7 A& |
continue;
9 ^, f9 C: y2 `0 b9 H6 L: z
lpSkill->dwLevel = 5;
0 Z! M/ i1 x- w$ J, B' d9 U* r/ Y8 g- f
}
- G$ `, I! i* W- j) ]6 W6 K
}
! D7 J4 P# c- ^1 M4 R# }! m7 o( a/ W" P
}
& s) D" l9 t3 D; d& Q8 v" {
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- T/ v" F! ^' n
if( bGamma )
& F0 i2 X0 o4 A+ C
{
' Y( q+ o9 G/ l9 G; J7 K- y3 ~
m_nExp1 = 0;
3 Z+ Y l k. m- l! F
}
+ m3 _ p4 k( ]9 W* q" J [( f
& a# ?. z0 b: z, @" Y+ k4 J3 S- i
( (CUser*)this )->AddSetChangeJob( nJob );
- O, b$ Z- w5 h) W' t# O6 R6 {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ }- D1 s; h3 h" D
9 b: y/ x# W5 A+ h: E! a0 P
1 d L4 i" Y( _% n) ^2 F" }8 X
#if __VER >= 11 // __SYS_PLAYER_DATA
1 R. J8 l# m( L+ h* z$ R6 o7 p: r
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& x K4 f( ], p# j5 \( S1 |6 p0 t
#else // __SYS_PLAYER_DATA
" N5 G6 U2 d, }4 x* z" q# B
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 B, A g! B a; @
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 l* w1 _9 j( E
if( m_idGuild != 0 )
: v7 _4 \ c( E4 u
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( v/ H5 n5 _8 l: K/ z; Q4 t
#endif // __SYS_PLAYER_DATA
n2 Z% A1 [% F* D0 b
SetHitPoint( GetMaxHitPoint() );
0 I( F! w: z5 w+ Z, v3 y
SetManaPoint( GetMaxManaPoint() );
7 ^8 ?7 j4 _0 F, F, i) m
SetFatiguePoint( GetMaxFatiguePoint() );
6 K* L! x7 R/ i! a4 B! f1 r& h7 J
if( nJob >= 1 && nJob <= 4 )
: R8 w* f; M3 U- |$ D
{
0 U/ ?& _4 ]( D! G5 F. J8 x/ T7 V
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ _6 x( \9 D. b6 s6 p- [0 F. O
m_nRemainGP = 28;
( j) N3 d' A8 N
}
' r$ `% ?6 W- |0 n9 g. t c/ U
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- |* F5 Y* W5 h
{
' h0 H' h1 I% }
m_nRemainGP = 118;
. w: b0 c$ B" O. H( h
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ k5 F5 w' @" T
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ \# L" H& G+ Q+ ~/ i6 z
}
6 {# J' q! O7 l; X4 C/ t$ O1 |/ Y0 g
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" n6 S. {0 p3 R/ B3 S2 ?
{
8 P6 k2 M. e/ W6 a( z
CItemElem itemelem;
( B. V, O: T% i" {8 n# H! c
itemelem.m_nItemNum = 1;
9 q! e8 e" s D; a( L
itemelem.m_bCharged = TRUE;
" m: f, t D1 x' K- R; C
BYTE nID;
# v% Z( W) S, y3 f3 I& C; e. Y& ^- p
. V, U# t) S; Q, U% U
if( nJob == JOB_MENTALIST_HERO )
* ]. I, W" F& |; N, L: g
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, ^/ X0 S8 S9 \$ ~6 }% H
if( nJob == JOB_FORCEMASTER_HERO )
/ K9 ?+ b T+ |; b6 M# K
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, G5 N. L( p9 y" g- d
/ }: a1 w0 r# N* p3 O$ Q- R, B6 K7 i1 x
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, q* }: h, y& o5 }
}
% s- O! ^: I- _8 I2 u
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 v, A3 @6 E/ n
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 r, i: Q/ T, P( S! ~" g/ U
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. o( `, o2 |: P# C. a
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: p" A! k! `5 [; v) j" N; e4 ~
( (CUser*)this )->AddTaskBar();*/
: s& I6 T9 L" ~2 E/ ^: u
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' G+ j, S) k6 @5 x, H; W7 B
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( y+ d! H/ M( X, x3 i) U( i$ c; ~
((CUser*)this)->CheckHonorStat();
6 W! o7 C, E! s, Z, G* Y
((CUser*)this)->AddHonorListAck();
5 y5 V; r4 u; b9 ^$ }
g_UserMng.AddHonorTitleChange( this, m_nHonor);
; j8 _+ e) x$ ]# B/ S1 K$ z$ G
#endif // __HONORABLE_TITLE // ′Tà?
( l0 i. l. f2 F$ O
}
9 d5 f- p4 G; _7 C8 |
#endif // __WORLDSERVER
2 ? q: `8 ]: m2 S) Q2 y
}
; `2 k- q: t7 z+ F
1 i) H9 D/ e% m: s( b, z
然后你进入functextcmd.cpp并添加以下
0 f6 o4 D$ H9 Y6 I: E6 s" X6 D
* {) Q- \3 T6 y
代码:
9 p6 p/ X! e1 n
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 A4 |8 G9 R* q! @( N) o
下面插入
$ h" y' \' ?1 R( U+ I: V: u7 a
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% F8 q/ H) y7 z
) @/ k: g: i* R: J1 ], H/ o
然后你去
0 T* n% s% y2 v' B
/ f0 H0 w! R4 b/ D: F8 Q! B% k6 a
代码:
. }5 h, j! L. E' a( M" i
代码
% Z* i5 M% Q" m" A( t
BOOL TextCmd_ClearPropose( CScanner & s )
0 ^9 W2 n- t9 T& H9 S2 y, p
{
7 Z" M2 i# v( G9 i; p& o' h% H3 X
#ifdef __WORLDSERVER
. u" d& F( R6 K. n6 w
CUser* pUser = (CUser*)s.dwValue;
2 M+ e% Z' ]3 s2 w5 @
g_dpDBClient.SendClearPropose();
* X; Y3 H6 C+ N: Y* @
#endif // __WORLDSERVER
! l, L' x1 Y# q+ Z2 S2 v" K. W# C6 v
return TRUE;
% m2 k9 o# e; [
}
" z# ^' {! M# ~
下面插入
\9 D9 T: c* Y, G7 h+ j
BOOL TextCmd_rebirth( CScanner& scanner )
+ d! w2 C, m" l1 e/ U+ n
{
- n& r: }( j% K# u! B
#ifdef __WORLDSERVER
! [/ `: ?& w7 ?4 S1 l
CUser *pUser;
! A% a6 E5 w4 m
pUser = (CUser*)scanner.dwValue;
9 ?2 s$ z* q6 C& R6 L4 H( Q8 S4 f
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# N6 N3 @4 n: R/ R; h
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
) G# P; O# ^" K
else
; {, `5 S( p- e* q9 ~
pUser->AddText("你还未达到重生条件!");
4 c" t8 I8 V: r; `# w' K8 s
#endif
: N3 g: z3 {: A9 T+ g; P: j
return TRUE;
2 C" o5 R3 p) r, t/ m
}
, u/ w1 x" d( J
6 [& i3 @, ?; N9 K* e
1 ~6 P3 _& V" m+ }' n
( V7 G+ ~; f/ K' d: U) d" d, C$ _# Z- w) k
; z T' J8 s! a% y+ `
欢迎光临 飞飞世界论坛 (http://ffwold.com/)
Powered by Discuz! X3.2