飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, ~0 j* f6 r( |% X; z
; J0 t2 W6 Y4 F+ S6 f
Mover.h
0 ~) Y9 i/ S h- |
代码:
5 l( f) I* o P( M& q0 o- W
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- F* Z9 a7 c% m* h! w
: H8 W% `4 c9 w- g) B# ~" S4 L Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 Q J$ L; A+ N' ]8 _+ Z4 v: i
; R" v+ H7 P0 |4 k
然后你去mover.cpp添加
! O$ h9 R3 C3 i3 T. ~
, D" {0 B5 m# g: n
代码:
) k0 _) b; ^. P! F, p8 @- z
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 W* ]+ Z. H- R1 c/ ^7 }; M7 v; g
{
4 p8 z/ X) ~% F" w
#ifdef __WORLDSERVER
; z1 @- T5 @* f* @ }
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 ^9 T- Y3 E. l4 @0 J- i# g1 H
MoverProp* pProp = GetProp();
% a' k9 G. W! t
if( pProp )
) H. w, Q# |6 X. a6 g
{
. G' d P+ N! b- y( o+ V
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 R( ]5 |$ g; Z# S$ b r7 B9 ^+ Y
{
( h- ?1 L' N% v- ]4 m& _4 I
AddChangeJob( nJob );
! n& R2 ^+ R% M& A- L
}else{
2 g C. b9 y3 r, t" `+ g
return;
9 `: T0 Z' u7 f$ @/ X5 u
}
: d! v( A# x2 C' F( N
int nPoint = 0;
* @" ?8 ]% p1 S% ^+ _) U. t
if( m_nJob == JOB_MERCENARY )
0 U: H7 [# [" W
nPoint += 40;
; t% O" c, e& O8 s( y; P; R
else if( m_nJob == JOB_ACROBAT )
6 i4 _( y3 C8 E$ w) J% I$ C0 l
nPoint += 50;
9 X' ?% u) @( D, i: d$ ^
else if( m_nJob == JOB_ASSIST )
. t+ M+ u) i5 L. U1 A
nPoint += 60;
( u. B4 S2 Z& t" ~+ T/ h# b
else if( m_nJob == JOB_MAGICIAN )
: E" C- y( @) x4 O
nPoint += 90;
3 K" N \, F% c% y! Y' Z& d% b
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 y0 i, H5 z0 j0 p! r
nPoint += 120;
1 A, L+ G! `! _- O. s
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" S: n" |4 J8 D. N* [/ u
nPoint += 150;
) ]3 J$ ?6 C- ^# \ Z) H: a# R1 a, n
else if( m_nJob == JOB_RINGMASTER )
& h' t M6 p) z
nPoint += 160;
7 \4 i* m# v% y- B
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, R. X; t* w1 R' t7 y! |! J
nPoint += 180;
2 \+ I+ l) J. |3 W/ ]4 t) l
else if( m_nJob == JOB_ELEMENTOR )
" y }% j o/ y$ p
nPoint += 390;
" m2 ` U+ [* T: p' t
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# S$ B. p6 n4 Q3 @
nPoint += 120;
3 `( e1 w$ L% ]( ^
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: Q9 e- u, t1 s( R% \( f8 Y4 v
nPoint += 150;
) ?% ~ M1 w3 s# y8 ^$ _
else if( nJob == JOB_FLORIST_HERO )
5 l' L- X5 `' O. f2 v
nPoint += 160;
4 \2 W0 ~8 @1 k5 @6 n+ |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( \' o8 x9 W+ r& W: p
nPoint += 180;
" z$ n# r; i2 r
else if( nJob == JOB_ELEMENTORLORD_HERO )
0 A" Z7 }; u- Q3 ~$ ?9 U- `
nPoint += 390;
" F3 a+ ?/ H0 U4 b( p* x
: N/ J" x A) \: G6 T+ @
AddSkillPoint( nPoint );
, K* ~7 t# P8 C/ f4 C
m_nLevel = nLevel;
8 @& Q$ h7 j4 ]; z* y# P
, Q) ~: o+ y. O- L2 z7 o0 @4 T ]# ^4 q
SetJobLevel( nLevel, nJob );
I; m y4 E' b+ _, g# C: N& q, T' b
m_nDeathLevel = nLevel;
8 x( ~8 i+ c, W) U' ~/ H
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' v) I* R; u% x+ u& j3 u
if(IsMaster())
2 b: ~: R$ t% |% Q! N2 \) m3 d S
{
' a) A9 @6 e' \: h
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 M: |' l& ?& o- C
if( nLevel > 59 && nLevel < 72 )
9 i7 D: B/ J7 g: y2 i" e
dwTmpSkLevel = 1;
# \' D1 `# ]+ A) a& z) ~0 f
else if( nLevel > 71 && nLevel < 84 )
; \# F1 v# I' m* ]
dwTmpSkLevel = 2;
4 I2 Z! u! q, ^8 A" ^- q5 @1 r
else if( nLevel > 83 && nLevel < 96 )
7 o9 s4 S9 a! f6 a
dwTmpSkLevel = 3;
9 Z4 h# j- H4 z; ?. Y
else if( nLevel > 95 && nLevel < 108 )
7 V* H8 d* ~# `5 E
dwTmpSkLevel = 4;
8 y+ u" H4 C$ K; G2 g& u9 @) _
else if( nLevel > 107 && nLevel < 120 )
4 K3 `1 S( }" \( L- W+ j" |
dwTmpSkLevel = 5;
3 a+ G" ]% A. j* z' g1 g6 b, I
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 c; u4 d8 E( q; [% j* [& l: C
{
7 _+ k" ~; g" w- a5 B
LPSKILL lpSkill = &(m_aJobSkill
);
+ i. V" d6 b. l2 y8 V' T6 [/ T1 }
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& i$ R9 a1 R: n, M4 \) J
{
) I( b; c7 \7 _! x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 E: v: |9 S, P8 [
if( pSkillProp == NULL )
6 l' n7 J5 d; J; n8 J. x
continue;
: N5 m& k' B1 h* a$ q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ k9 X: g# v) s2 \ r4 d* s5 W: j
continue;
2 q" u2 b- L2 a2 H* ^6 [; l
lpSkill->dwLevel = dwTmpSkLevel;
$ @2 C$ B) w' J
}
6 k( q" n/ }# x! Z% w
}
- r" m1 s6 |4 ]. R( l
}
" R3 `' H/ Q+ R: o- L( T- c& n
else if(IsHero())
/ p& C2 X9 ]* p8 h( i( t
{
& o0 [* W8 Z4 V" w# U v9 k
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# S$ J; j. N# G" k, h
{
2 g3 Q+ L, @: p! r( `- S7 D
LPSKILL lpSkill = &(m_aJobSkill
);
$ ~7 f: X: l8 ? U( X& [9 O
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& s+ ~( M9 r" Q& ]+ [: S
{
& V) ? u& V2 e$ ^" |7 y5 X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ ~) F+ ~) p8 d
if( pSkillProp == NULL )
8 g5 J+ }! W2 c9 r
continue;
' Z- ~6 P' r1 K' y' X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 q! A! h0 c' f) F" L, _
continue;
+ c9 _+ [0 k/ E/ n; z
lpSkill->dwLevel = 5;
8 B) o+ _# n h, v
}
# o& N0 ? @$ {& w0 U: }
}
0 `, s. h! \& @1 G2 [
}
/ h8 I% w* ^# r) h
else if(IsLegendHero())
7 M5 k; l/ X+ E0 }2 H
{
+ A; u4 |; v m3 f
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 m1 P: f9 o9 @4 z" d& X6 q/ I
{
' w5 I w' [8 V0 R' d+ T! i
LPSKILL lpSkill = &(m_aJobSkill
);
: ]; x7 b$ J6 B" m% i
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: D7 W6 R4 [, C2 W) T9 b
{
8 l: r! N! |+ J x2 o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! n* r& c) u& z8 I" h+ e
if( pSkillProp == NULL )
b. P, ^8 ]: F, q! ~/ M
continue;
# ^. h5 J5 l1 q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! b9 n# i& o5 h6 q% s
continue;
" F" k1 G4 n# B7 H/ P& p0 b3 ^) Z
lpSkill->dwLevel = 5;
: R# {" v# y% {7 P
}
, j/ y$ T+ u K H- B
}
3 H/ y: N% k! A+ q
}
+ O, h& g% p9 ]) C. e1 s" ~
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- S* x/ j& @- b0 |" D1 m
if( bGamma )
6 u, Z0 g6 i) m/ ?. D
{
' U. D* M3 ?5 k8 @4 N$ |9 Z
m_nExp1 = 0;
, `0 {0 Z6 D- A4 n# o Q6 `$ M
}
( I9 `( c2 J) l
+ R( d3 G0 D# f9 D! K$ D
( (CUser*)this )->AddSetChangeJob( nJob );
6 c$ n4 e# A, ~
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! B" \+ I. B$ X' x, d \
k4 Y$ F, p% n* J( O$ K0 G
- C* _: I1 `2 `6 f$ j8 s
#if __VER >= 11 // __SYS_PLAYER_DATA
- W( c- K$ t! m
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
4 U. j: f9 _8 r( ?( U0 C
#else // __SYS_PLAYER_DATA
& K2 x( V. ?" v( {) g
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
- E. n, h2 a' f
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
% h4 C* ?9 n# K+ P6 \/ f
if( m_idGuild != 0 )
& l3 f! C+ H4 x' @8 p
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 {7 \% H% \3 I+ a. F3 j! e; M
#endif // __SYS_PLAYER_DATA
0 ^( k$ F4 G% U, @' K0 x
SetHitPoint( GetMaxHitPoint() );
- N7 E- P' Z& W# ^+ p' {' x3 g- v
SetManaPoint( GetMaxManaPoint() );
% Q' I8 @7 T8 S5 A8 _
SetFatiguePoint( GetMaxFatiguePoint() );
+ Z+ ~1 H8 j) Z3 h4 A4 }" ~' O, q! ^
if( nJob >= 1 && nJob <= 4 )
3 J9 A4 ~7 H! ~4 B# W7 Y
{
( r3 }, I% G, M, H2 Q7 ^
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# i! q. w) P6 Y
m_nRemainGP = 28;
# |# c' }4 X: J# ~# L4 d0 a
}
% `5 a9 E5 i. b# L. @
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ j) D. @) c2 U6 y* M
{
7 Z4 e4 Y+ r2 l, Z- A2 n7 H
m_nRemainGP = 118;
; p; I0 N, ^ t& a
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
0 y$ O% Y4 g4 L7 T
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% Y' K' S2 q3 ]9 j7 d
}
+ ]) `2 m3 Z' U8 e
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 h8 v# q. O% t4 }: m% w2 R
{
* |4 j! j2 i/ x8 ?2 c# Q9 u3 A
CItemElem itemelem;
0 V4 R) [5 k1 S% S- Q% z% n& q
itemelem.m_nItemNum = 1;
+ x2 c9 f' z i) T6 W5 O
itemelem.m_bCharged = TRUE;
2 I' q1 V& W/ c4 L; L1 ]
BYTE nID;
5 S% ~& a/ H/ l- k$ _0 E
. [0 e$ e) K, M
if( nJob == JOB_MENTALIST_HERO )
M' N: U3 b% e) N; p: p# T% I
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
; m" ]; i; t3 u- D. o/ z" q
if( nJob == JOB_FORCEMASTER_HERO )
5 B: Y; l3 L V! W& ^8 q) Y
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 f; e- f% I5 z e0 z
( K- T- E- ?* C$ N2 h) S
( ( CUser*)this)->CreateItem( &itemelem, &nID );
4 Z2 S2 Q. Y7 y. H/ w' ~: ^& s
}
8 m' N2 T6 k+ l$ G1 u ?1 K0 N
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
5 C( b# ~; x; b2 F* f$ |+ i" Z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& h3 Q. S3 d+ G" Z& z
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ y' Y/ K; Q) [; |( L; t3 n0 e
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 D# o5 h$ G& q7 w9 O
( (CUser*)this )->AddTaskBar();*/
9 f1 }. f! B5 D% j* e ^1 j: q
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" h) D& o1 h# d3 c! i
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ s( y: u ?3 g
((CUser*)this)->CheckHonorStat();
& F5 W/ f+ ^ V. r" Z) T
((CUser*)this)->AddHonorListAck();
% _8 S' x; O4 O, y _& h
g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 n" N8 u# C# C* P5 X/ o, `
#endif // __HONORABLE_TITLE // ′Tà?
$ K7 X+ w: ^* f {* S2 }
}
8 j0 ? \) ?' r4 a0 j
#endif // __WORLDSERVER
( N. {. u5 k* b; n1 x% D" ~. j5 ~3 T
}
; q% o! y' w# N
" ?: D4 Y: m& {; W6 F
然后你进入functextcmd.cpp并添加以下
k2 O# e7 C, Q4 z0 e
* e& P3 c5 L7 P& M5 M' f* B& b
代码:
$ v$ G: `; U3 P5 p! j; n
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% u. h8 g, M6 F( Y, ~! L
下面插入
8 e, n) l% T8 j; `
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% r) V/ ]7 G1 R f" ?' l6 X, w
% @# N; H# g! d% j( Z' D
然后你去
' B) }" G; L0 c ^3 e
/ F/ B1 \7 d6 ~' _3 U. H
代码:
! O4 ]+ a/ [5 N
代码
9 a8 j v6 W, l2 a' b2 k5 z8 p) E9 g
BOOL TextCmd_ClearPropose( CScanner & s )
! P @/ J7 b5 t) g& I4 t& U f
{
) X( l, r. m7 J$ j) b0 |% N* |
#ifdef __WORLDSERVER
5 O1 g) E) k& Z6 c" m1 j$ @0 S0 |0 B
CUser* pUser = (CUser*)s.dwValue;
0 o$ x0 t, c' x
g_dpDBClient.SendClearPropose();
6 Z d) f0 l+ M" a
#endif // __WORLDSERVER
' s/ j# {* f% F$ h! ~# C
return TRUE;
3 Q; q. z X2 ~( Z* M: n- S
}
! H- ~$ C) P0 b- k! s. U
下面插入
3 Q2 W: r& N6 |/ V5 Y L
BOOL TextCmd_rebirth( CScanner& scanner )
5 o( o2 c9 n$ d
{
2 T9 w1 x% J, Q8 L
#ifdef __WORLDSERVER
2 T' ~" H2 y8 T
CUser *pUser;
) P6 F8 ?$ y" ^: k$ I) b; y7 x
pUser = (CUser*)scanner.dwValue;
" \3 X, }+ `: T. G0 |! R \
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 ~! R8 v- _4 K6 v- Y& r
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 N/ |! {) F1 ]5 l& b9 J
else
6 k$ j' @9 t# g+ a" A9 q, u/ D
pUser->AddText("你还未达到重生条件!");
' u# h# v0 M8 r1 ^/ C! c$ d
#endif
# B, D* K0 C9 e; L& F. [4 W% \
return TRUE;
7 ?8 w8 }$ Z' s. ?6 o/ M! Z
}
+ V5 I. [- Q0 k6 [' `
9 Y9 X+ }& S! H, D! p
+ n7 M/ B, T% {5 J( N
: _! l1 K3 p! b3 L2 K
2 `9 y2 @0 Z. J& l4 h
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2