飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
' d: I+ ]7 Z" V9 n4 L
% Z4 a) y5 v) I$ a
Mover.h
% D: g% p$ I: Y# q1 ?( Y5 T
代码:
7 `- |* J3 v, {9 x+ n
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: i# O! d& l: t- B0 V, C
; F* o7 T& Q3 D4 X) s4 v2 [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 G2 b. ?" r2 ]: R/ W
! T6 U6 I4 j. z, V& t
然后你去mover.cpp添加
' {. P5 h) E; z b, W3 \
6 C) R# R8 l7 a2 O4 {, A+ D. w
代码:
: F1 u+ V- Z2 c: L$ Z& C6 |- t
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 a" s5 G0 W$ F0 h0 V
{
7 \1 _4 x$ T4 h8 a" u
#ifdef __WORLDSERVER
v* j( p/ k4 o1 v2 {( q2 w1 ^
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
0 E) T) @# V! }
MoverProp* pProp = GetProp();
3 \5 ` R$ }4 N" g1 ]! {/ ]0 U
if( pProp )
8 p0 E Z& z) Z; ~
{
5 L5 \& ~4 y- }3 K
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
3 k# w6 t7 z [8 v. {& `' M" N( ~
{
" G7 j' ~# t9 j& l0 @
AddChangeJob( nJob );
- E& P2 l7 g Q8 n+ T/ G
}else{
1 F1 T8 T( ?) E$ a. Z
return;
# J( ]/ ]7 A5 I4 |- U
}
" X4 e; l& C: Y5 M' _
int nPoint = 0;
3 q6 \0 Z8 U; w! ]
if( m_nJob == JOB_MERCENARY )
! i! W W& K' ?4 s! J0 u
nPoint += 40;
% J P( x* n6 @* b! x* C* A8 P5 x
else if( m_nJob == JOB_ACROBAT )
9 ?+ u# r; ?2 i% I& \
nPoint += 50;
8 Z& k% p& o- Q( J4 T' ]
else if( m_nJob == JOB_ASSIST )
/ c+ z, O2 A/ P
nPoint += 60;
2 j8 _+ U/ c3 p5 _2 L" F6 Q* j
else if( m_nJob == JOB_MAGICIAN )
2 @0 a- ^) m+ ^
nPoint += 90;
, m/ ?* ]4 O- ~, P$ w
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. b4 c5 V- R( @8 ?
nPoint += 120;
+ A3 b4 H( i! S$ B5 B; Y/ z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 [1 d6 Z) l# B0 D* `% ]
nPoint += 150;
0 |9 ^. q) ~2 `
else if( m_nJob == JOB_RINGMASTER )
( Z \4 V7 Z8 p q
nPoint += 160;
# r7 j, u M) E4 N$ j
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 y# Q4 y0 G6 z$ H- u
nPoint += 180;
3 q* t3 W5 r% m9 o6 n/ B, W
else if( m_nJob == JOB_ELEMENTOR )
) y& @$ i( A, w" }8 s/ l
nPoint += 390;
& }1 Q: ]! {' S+ k- c9 X
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. k/ I/ m% _# o/ a' D
nPoint += 120;
, z$ ~ D: T0 b4 J" g
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
& @: g- o) w0 f, Q. `
nPoint += 150;
8 M% b2 {# U, Z! ?% D' V
else if( nJob == JOB_FLORIST_HERO )
7 C4 ^8 C6 c4 G/ O0 x# T
nPoint += 160;
) s' b7 i2 E* E% R9 l
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 m! V2 J% f& \. {! p' i0 K9 B- M6 ?
nPoint += 180;
. o+ }5 Y7 P( K4 g( P+ w6 v
else if( nJob == JOB_ELEMENTORLORD_HERO )
$ y1 E/ Q+ K# g
nPoint += 390;
, c8 A0 q) I& H/ O! D" V* G
" m7 L" [/ E! D
AddSkillPoint( nPoint );
3 J) b# U/ g7 r$ Q
m_nLevel = nLevel;
/ u4 o1 C' K) U: @6 v% u: s, G
7 x! b2 R$ x- k* f# j
SetJobLevel( nLevel, nJob );
A f$ I9 y8 Z2 y+ u
m_nDeathLevel = nLevel;
% q; H% a( V: H# V7 H3 S* o. o; G( D
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 B6 c, S$ T" G2 P! n
if(IsMaster())
% |# O0 f1 K( G$ E7 q8 d; F( Y
{
8 o3 G; J2 h- N
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 l* u9 l5 K3 I8 U; T
if( nLevel > 59 && nLevel < 72 )
0 E5 ]! H* Y3 Q4 S1 v
dwTmpSkLevel = 1;
! Q: Z% w/ U! @9 j
else if( nLevel > 71 && nLevel < 84 )
% e& r9 `! X! p& z
dwTmpSkLevel = 2;
$ m; G" R; G3 d' D" ~
else if( nLevel > 83 && nLevel < 96 )
3 z1 H7 n6 a! E8 Z" `
dwTmpSkLevel = 3;
$ p5 O3 V% d- ~9 s
else if( nLevel > 95 && nLevel < 108 )
% @* ?3 b8 {0 V) b: Y8 ~3 N0 L8 R8 _
dwTmpSkLevel = 4;
* O7 h7 @2 C' v" C$ Z
else if( nLevel > 107 && nLevel < 120 )
( c& J& F7 a, \% m+ k! a9 p$ C3 b! g
dwTmpSkLevel = 5;
4 {& Z* d/ s9 q9 w: t: B Y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) |' S7 F6 {0 t: ~
{
8 Z) z% V# Q7 H" ~
LPSKILL lpSkill = &(m_aJobSkill
);
: a. `, b8 k- p6 f, u8 y1 d
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- w; p0 F0 I" o$ i& s( `
{
) K6 o# x7 _& {/ c7 i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 e% F& Y# k3 e1 w
if( pSkillProp == NULL )
7 Y. m/ w* }! \$ U2 j# e
continue;
& Q1 L4 |& J/ m( A, i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ o8 c( G0 h' ^9 f# Y
continue;
' w& H/ {) R6 v
lpSkill->dwLevel = dwTmpSkLevel;
. X1 U& a, e9 u* z7 N
}
6 e! r8 V* n% W: C: Z' L2 i
}
|# ]/ p6 `! @/ }8 v' S7 v, Z5 d
}
% A# R, o3 x$ E6 H
else if(IsHero())
* _; @2 @' K8 X5 {" `/ k
{
* v7 K9 u' K W% O6 M
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 e- Q! j6 z6 I: ]1 R, e, K
{
" s5 T: n9 n2 Q. n- p5 \! M% ]
LPSKILL lpSkill = &(m_aJobSkill
);
# _- ?1 c; E% O0 Z. b: f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; `* V0 e9 x" f/ E
{
+ T4 m' p8 M& T: P! C2 u1 }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) @. P- D7 C. m" {
if( pSkillProp == NULL )
: A M1 L2 ~# F
continue;
/ m, B9 D; e$ N* f2 w2 o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 d4 H, R; E0 v( l& K# f/ k( t8 ?- s
continue;
% r1 p2 R/ K* A5 k0 I1 T6 S7 M
lpSkill->dwLevel = 5;
# a% T( J( H% ?3 K; K0 l
}
* w2 E! }; v/ @
}
0 A; t: G. w" Y {- i
}
& S8 i8 v9 r* V5 D
else if(IsLegendHero())
" t4 ]( e8 |- t' V/ a% L: N a
{
4 p. u) g6 g7 l+ N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ `' I& @) K6 T0 @2 Q/ a
{
1 v/ |+ w0 W" T3 P' z
LPSKILL lpSkill = &(m_aJobSkill
);
3 x/ o. M; }+ k' J! N
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- p5 f( {0 O! }' A2 {& ^) b
{
. O8 r5 v% {9 {" O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, W& D7 S8 |8 P3 [; o
if( pSkillProp == NULL )
! Q8 `" L: X: g9 h) P
continue;
$ y W. M% D7 H/ t) B$ B9 Q8 ^: q9 |8 m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: B( A) r3 ]- j
continue;
+ c" F: U) g% j# m
lpSkill->dwLevel = 5;
; y" A- m7 B6 s" ^, I2 y+ Y
}
( j" U9 p- C* @2 o2 n+ M' k* E; L
}
! {. B: k d/ u
}
8 e, F( V) r% F
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: K% ]' {6 t& D; f2 y9 Y t- Y
if( bGamma )
% v! K; E$ k* B& ~: B
{
. {" x4 h2 Z: M. i
m_nExp1 = 0;
* f3 |9 i3 ~, H0 L
}
. W5 ]0 |3 n4 S i
) B7 a3 B+ d0 Q4 q
( (CUser*)this )->AddSetChangeJob( nJob );
& e* c) L1 R% ]$ b( T5 S/ V* O
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- g& A, \* z, }& a$ N+ O. E
# }# |, w- `- k e8 s9 N2 ?
' _. [7 ~0 d& X& u* H
#if __VER >= 11 // __SYS_PLAYER_DATA
: x$ T0 }6 H: Z+ p$ A6 n
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 P% p- `1 J S4 q
#else // __SYS_PLAYER_DATA
- d8 V* i: V( q1 B) _
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. x4 g8 s1 C7 E0 ]6 s7 u
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 d# i" a' I& P9 p' |
if( m_idGuild != 0 )
4 h4 A/ j d" h3 h) h& ?$ n b
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ | _* l5 e+ L+ y" c6 ]& C& K
#endif // __SYS_PLAYER_DATA
8 `! k; b+ H- s3 p% U
SetHitPoint( GetMaxHitPoint() );
8 o/ L/ G7 c+ ]8 V6 o, u6 }
SetManaPoint( GetMaxManaPoint() );
7 W$ D* g: G6 V: M, L
SetFatiguePoint( GetMaxFatiguePoint() );
/ T- M4 E8 j7 C: e
if( nJob >= 1 && nJob <= 4 )
0 \! I2 u7 J/ y, W0 r$ T
{
X% K8 u- x' l
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 K- H6 N8 f3 q2 A1 q7 x. a, ~
m_nRemainGP = 28;
& l8 c% y$ A- F# S# _9 x
}
* P7 b7 B' K/ n
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 |. j8 k+ A( h; I7 k' J( J* G. k) `
{
7 h- W- y* C0 ~4 W( Z8 O. d
m_nRemainGP = 118;
, g& t. j! z! R7 Q5 G' a- U
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 u2 t0 z2 D2 \$ Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, N4 x$ S5 h' A9 ^
}
" R) }8 i3 o; l7 L* {
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& o# u. a. I% |) q+ o, l
{
( v( e1 Z9 @1 h3 |0 X3 U9 N. l/ q
CItemElem itemelem;
7 X0 Y8 f0 A9 ^: ^
itemelem.m_nItemNum = 1;
6 u1 d$ Z5 h! `5 {* H! V+ f6 {6 }
itemelem.m_bCharged = TRUE;
] [6 t1 r/ G9 J, k5 |* Y# q# q# m" u+ w
BYTE nID;
; O+ e9 [, `2 Q% ~
' ?+ `' D9 }5 ~ g3 j- u
if( nJob == JOB_MENTALIST_HERO )
. p3 p2 u" [/ p
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) Y0 C2 }$ F+ t2 u- ?% i- M+ ^
if( nJob == JOB_FORCEMASTER_HERO )
' ?. D- }* ?% ?) S( P" N
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 E' Z7 r4 o2 ? P3 l
" v# A. a! ]# J ~. X
( ( CUser*)this)->CreateItem( &itemelem, &nID );
; Z4 c& ?2 x' R$ ?' Y- _% U
}
- k1 ]( l3 V/ Q$ V# A
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* A, |! g" F7 s- X$ m" x6 N; |. C
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; W! K: T+ }+ p/ a5 \7 O% P
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ V$ L5 \, t4 b5 u7 c- p, h( B6 h
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
# F+ w$ t7 ^) }7 ^2 A1 R5 V
( (CUser*)this )->AddTaskBar();*/
2 Z& L/ q9 R- F* z8 N0 u0 ^+ Q
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 j8 ]" L0 t h! C- t7 A% z4 k. w
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
. A3 L/ [1 q7 Z, Y* m
((CUser*)this)->CheckHonorStat();
: o4 l3 r! J2 d9 j' Z) f, t
((CUser*)this)->AddHonorListAck();
, {8 M9 H4 A6 T3 J) q
g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 Q/ A* |' ^% I2 v* f
#endif // __HONORABLE_TITLE // ′Tà?
) U: E. R- S3 e8 o
}
- H! v& G' x/ @ q @
#endif // __WORLDSERVER
* I" K' h/ J' s5 H) D4 H$ b
}
5 h3 J5 g% S9 W9 @5 j
% F/ U! v' T7 h$ K0 W
然后你进入functextcmd.cpp并添加以下
- z' \& Z+ d( K" W- A& Q
y: ^# ?) P5 T
代码:
1 A; A$ J3 \* W" k Q+ W2 ]
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. E D( ?8 M0 h% C9 r( X; q' A5 M
下面插入
, c; F2 w# A) ]$ P) p
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" h& l3 H. M+ r! f- B' B
" v& Z. n* F" b" i L: _) w7 E6 t
然后你去
! a$ y1 f K5 `# Q
6 q/ j3 X- S# H. D0 x2 X
代码:
! P% N, n0 w8 @
代码
' \. m3 @7 e s) v9 B* S4 h
BOOL TextCmd_ClearPropose( CScanner & s )
: k! } i/ _, n8 E9 T+ g% V
{
- Z8 N: \) |. P6 e
#ifdef __WORLDSERVER
/ i8 o/ S( J X4 U5 n
CUser* pUser = (CUser*)s.dwValue;
+ ^" ^% H4 O3 k2 c
g_dpDBClient.SendClearPropose();
& }' k2 _# I0 u4 D- K1 e
#endif // __WORLDSERVER
|: D3 I1 h! `' L9 t# K7 k/ w
return TRUE;
# U l2 f8 m1 _
}
( U/ X+ m$ M( l5 s! V2 ~5 n; c; c9 y
下面插入
. L% K1 d/ K1 Q; ?8 v# ]2 q
BOOL TextCmd_rebirth( CScanner& scanner )
( a ^& m. M2 e! [' c
{
5 R9 \- p# W9 Q1 l3 c4 J7 w
#ifdef __WORLDSERVER
2 x# P. S6 `( t8 \
CUser *pUser;
0 F! _) k7 X+ O0 g1 Z
pUser = (CUser*)scanner.dwValue;
! `8 }; v5 N/ d$ j
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ V) y9 \4 E' B: g6 M
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 u) w: a" @9 W' v; o( `# }
else
' r9 t2 \- Q9 F( }( J
pUser->AddText("你还未达到重生条件!");
9 O; {7 \! t9 O O* q2 h
#endif
$ D- o |( L: [6 ?6 T
return TRUE;
R6 u3 I3 A* B1 Y0 N9 Z
}
9 E$ C# z, R9 Z1 r/ k
3 L1 q/ n& X3 d) {* a' ]' ?9 g
4 {0 Q# M2 V) B/ t% B
! T: C) d" e ?5 @6 g! Z( r5 y! ]
; r, O$ `" A2 J5 x) d
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2