飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ J9 _5 K' V. r2 p. g: a* \) W$ Q
. X) a% g6 ?' M( o' ^: d
Mover.h
7 i& x' p& w% o5 P: ~
代码:
- c Z/ `- i* l7 e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. s4 ~2 j9 ?) P) J" n) x3 a1 t
0 x, T- n$ h. b
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: _) \/ q2 T& Y2 n( X1 M! K1 R
! O( G, W( G; p8 q4 L- J
然后你去mover.cpp添加
# c% k0 u# B' v7 k
. I+ t* Y5 j& c7 z" O/ _
代码:
& E* x: R4 E+ u# Z) D5 {
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
% s( u& f& m2 n
{
' o5 w w! I. S$ X
#ifdef __WORLDSERVER
( t+ O2 Z5 v6 m5 h) |, l
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 o- i% g; c5 x3 g2 C ]
MoverProp* pProp = GetProp();
$ C2 P% O. |+ O' J& S2 N
if( pProp )
6 \: X4 r" D% ^% z3 M& w( ?! t
{
9 J: q$ `2 h3 `( }
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ C- E" ^5 s1 w
{
8 a4 Z' N- G8 M. ?
AddChangeJob( nJob );
! p3 g7 c. L2 S3 z! n' q2 L% i
}else{
8 Z& ~) h: M6 _' J" O
return;
* O- c9 D$ E" B! a# R
}
0 _& } ]' u6 n, [, j$ f9 ]
int nPoint = 0;
& }1 E4 Z1 r5 P' R
if( m_nJob == JOB_MERCENARY )
m; U) q. O; i
nPoint += 40;
4 W! E6 G6 D; _; @' f
else if( m_nJob == JOB_ACROBAT )
& l" f) ~( v1 \8 k# c8 _( _
nPoint += 50;
. x9 U# o2 I: ]; A2 T& P
else if( m_nJob == JOB_ASSIST )
9 l* @( V) }4 e
nPoint += 60;
- O0 G, V3 m' M: v
else if( m_nJob == JOB_MAGICIAN )
8 r$ @/ n# ^% g
nPoint += 90;
5 }3 q7 d/ G5 v& Y8 |
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
5 H' M3 ^$ E# I! m2 }+ e/ t1 ?+ w
nPoint += 120;
* G! E: N: o2 M& Y
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
* v0 e5 ?* Z* ]! C! A
nPoint += 150;
$ A1 ]* e, E; x0 M
else if( m_nJob == JOB_RINGMASTER )
; ?# o t4 ]& S' N1 q5 R' I
nPoint += 160;
# V3 d/ P/ w$ @- a
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: B, A" D, ]( ^; @
nPoint += 180;
) y9 H7 Q. w( M6 u' d4 l/ n
else if( m_nJob == JOB_ELEMENTOR )
# v" T* t- ^) N. W# K2 f
nPoint += 390;
" M5 k5 m/ [% ^1 E: B
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 F' z, j: p) x0 M0 R
nPoint += 120;
- m0 x; `8 T; c3 k O* o
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
+ w8 `9 Q" B$ a* i* r% g
nPoint += 150;
1 I) [5 ~* ?1 Q7 |; h
else if( nJob == JOB_FLORIST_HERO )
6 c+ b- U! \' o6 d" ~0 b
nPoint += 160;
% L" `( m1 p& P
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 H* v* z! C: j* I. r s" R
nPoint += 180;
& C4 r$ T1 j9 P5 a: \% J
else if( nJob == JOB_ELEMENTORLORD_HERO )
$ G* j; H4 p' {& |" f ?
nPoint += 390;
4 |: b; j1 ~. Z: f* j t; N2 x: ^
$ \1 U# X/ I6 D3 ~7 B
AddSkillPoint( nPoint );
$ _7 ^8 t6 I9 P: R7 ? S# m Y
m_nLevel = nLevel;
6 w+ @5 _* r. H5 `, y$ [7 f& G" w
2 J; J1 c* D- N _! K4 S5 n0 U
SetJobLevel( nLevel, nJob );
, V- I* m% h7 X4 K2 t0 Y; F
m_nDeathLevel = nLevel;
& P( ~& T+ ?8 P" w# |8 N1 ^. W
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* a* \" L r0 a' u. v$ {
if(IsMaster())
- w2 v3 J9 \0 f" i7 I1 T
{
- z$ B0 T" n; J+ Z: [4 \8 J3 L' V$ y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: u7 P$ }9 Q9 V7 {1 W1 [8 ]9 Y
if( nLevel > 59 && nLevel < 72 )
$ w/ i4 c/ _, \1 K( h
dwTmpSkLevel = 1;
; s C; w$ R( ` A4 |0 O; `
else if( nLevel > 71 && nLevel < 84 )
* _8 z" M6 r2 D
dwTmpSkLevel = 2;
% r) d% b) }, H, p3 H% M: R
else if( nLevel > 83 && nLevel < 96 )
0 K+ [+ x9 K* |
dwTmpSkLevel = 3;
1 \8 S% X6 Z* E% z! R* B
else if( nLevel > 95 && nLevel < 108 )
2 N6 C3 `/ @' K( P% p
dwTmpSkLevel = 4;
0 q; y( f3 J6 [4 ?% w
else if( nLevel > 107 && nLevel < 120 )
6 i3 |/ `# c& |2 ]: }3 x1 y. C+ p
dwTmpSkLevel = 5;
5 ]# V. x; D) M# ^: w" Q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 J1 \; w+ P6 U1 ?' C F
{
5 c0 \, s4 L5 x$ R0 G
LPSKILL lpSkill = &(m_aJobSkill
);
; u% {: p! p1 v4 q' g: V$ ]1 o
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( A0 K7 }# k% ^, ^% s, Q4 w
{
. P& V1 d2 x- c1 ?! Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( e# ?! J" v) a7 M
if( pSkillProp == NULL )
# R/ R% w5 G8 x- ]" X6 S
continue;
0 J! a& T1 u. x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ l/ g; ?9 R9 n7 U
continue;
0 c) E7 z" {) o/ B4 ?9 U
lpSkill->dwLevel = dwTmpSkLevel;
8 L& P! V; l( a
}
) B6 @, {( S3 p3 \+ T
}
4 p! V3 A( f0 ^
}
4 }0 o A3 F9 G6 K% K g
else if(IsHero())
: g1 T1 s }, ^
{
1 O: L; y. K; X
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! V/ }7 z, ?7 |) d7 l) B5 e
{
8 y. e3 m# w8 K' u( D" W
LPSKILL lpSkill = &(m_aJobSkill
);
8 T* x9 k1 o5 f- j% B* z* ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& q! ]. @ _$ l' |- H% m
{
( y! P! i+ i, m ?# V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# v9 X$ q& ~7 M
if( pSkillProp == NULL )
+ [* ?7 Y- b& S7 A# Q% o, m# i
continue;
6 [! W Y# a% [4 v. T$ D) O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 F; K; k2 e, D: l: ~+ g) _ P8 E
continue;
* b" S6 y7 L$ x$ [% L4 z. g
lpSkill->dwLevel = 5;
% y ~" L8 V( c4 {
}
4 r7 b! I0 a) j! k
}
. N/ J# a& ]+ K! O6 v3 {7 }7 n
}
: f3 z+ B& B- I7 u
else if(IsLegendHero())
- W2 a8 ?+ P/ O; k! m# ~9 C% r) _
{
; m) n" |$ o4 N4 x. V3 `' [7 z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( N& i8 b& f% P% @- P
{
3 i, [1 K$ t- g. f4 g8 X
LPSKILL lpSkill = &(m_aJobSkill
);
0 K G1 Y3 ^: Q( L0 @# ~& \( Y! W
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) p! H {6 I: R# X' U( k
{
7 L: j" }& k1 o& G- R" s9 k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% j# l" Q! B5 r9 M/ Z
if( pSkillProp == NULL )
% D& S) j6 C. x% X# E) w$ R
continue;
( C* s( h9 H! [4 h. `7 _% V- l" W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- e( n# @3 K! _# _( V3 S: B
continue;
" s* s- E% I* g; S9 P/ h
lpSkill->dwLevel = 5;
" x( M5 A+ A0 ~) o
}
1 m! w5 h" M! o
}
9 [1 z2 ^1 I/ [) p/ V4 I% I+ M
}
4 k$ V, n) x% `) Q% x o
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& e, i0 G& u3 C+ S+ g; _& U; {) M
if( bGamma )
! D+ h! Y; D" s2 [( l- A9 j- b6 t
{
% K0 a& z( a6 B+ H: E8 P/ K. b
m_nExp1 = 0;
^" c$ u: d- S+ Y+ r7 s
}
0 b/ g! C* x) r2 O& g
$ s D# x8 Y2 [( f* c
( (CUser*)this )->AddSetChangeJob( nJob );
' e$ J0 q+ h+ V, H0 S2 h
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
: X& ^, U+ @$ g% q% C* O
3 e) o& k* V6 h
. p7 D7 Q2 m1 \8 o& m4 ]% @
#if __VER >= 11 // __SYS_PLAYER_DATA
8 w7 _$ O: s) Z$ {" N- m# F
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
7 W9 v' X' V* n
#else // __SYS_PLAYER_DATA
, ~& V+ M$ r% w$ O
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 b5 q! N$ I# M5 B2 s
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
/ L3 O& T+ u [0 @
if( m_idGuild != 0 )
% s2 X" T, }; }9 C
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) }7 Y$ W+ s9 p% c: ?% {+ i
#endif // __SYS_PLAYER_DATA
2 J0 Z, K1 K1 D _& u+ K' {
SetHitPoint( GetMaxHitPoint() );
; ?+ _) y+ S& e2 X. O* U! T
SetManaPoint( GetMaxManaPoint() );
( A( P: _" w0 a% d9 t2 ^7 g
SetFatiguePoint( GetMaxFatiguePoint() );
5 u1 n* L% ~2 g
if( nJob >= 1 && nJob <= 4 )
0 t% t9 \5 r: Q" q- K. d \. e
{
3 u+ P+ ]# M$ |7 w# E
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 e0 c, Z3 R4 q6 P
m_nRemainGP = 28;
4 u. N+ I8 M4 j4 u" ^8 E1 z
}
# t1 f+ t' p" h8 [' t4 \4 I: ~8 j
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. @3 \2 ~" J& p& n' F
{
! i! `- ?+ r( m, ]4 H/ U
m_nRemainGP = 118;
0 A% N _4 f5 G* k% U; D1 ~5 e e( j
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 `+ z( r& _. t& Y" v" Q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
N0 c5 ?; R4 e) }7 Y
}
7 P& p# ]3 j' P
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. s- Z7 V+ _& B& {& V/ j, `6 x
{
C# T) H2 M' E- t% G% a1 V1 f
CItemElem itemelem;
6 ^* h6 d8 I/ U8 k+ A
itemelem.m_nItemNum = 1;
/ S- d: S: d' ^" w9 \" \, z
itemelem.m_bCharged = TRUE;
( y0 C+ s& k; o. p& }3 z- T! Z
BYTE nID;
3 v3 h5 G9 c0 _3 G E
7 h# B; k0 l: x) E9 e( m8 [( \; x
if( nJob == JOB_MENTALIST_HERO )
% J& c" s( z* ], v. f' W" u
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 @$ a9 a8 `5 c" j, _& O F
if( nJob == JOB_FORCEMASTER_HERO )
" |+ Y E5 C; v
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% V+ q( ?& }* M
2 F' i$ k$ e$ c# m! j" m
( ( CUser*)this)->CreateItem( &itemelem, &nID );
( S H$ W5 k R4 L
}
) t! M$ e, O, p$ n: e+ k2 o
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
' G9 u% J$ E4 L7 v/ a& i( M t
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( _1 j3 |7 s; D6 X! n$ b
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ Q2 T2 O" z) M2 F2 h; I. O+ G
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
( G" b/ H4 |! R1 H. z- X
( (CUser*)this )->AddTaskBar();*/
0 l b1 T' w6 b# M2 M& h
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
( U- n$ u3 H. g7 B
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) N3 Q9 [" {# n, B# C# \% N5 M! \0 g
((CUser*)this)->CheckHonorStat();
' M j+ H5 ^$ E2 K
((CUser*)this)->AddHonorListAck();
9 E E( _+ U5 W7 K$ k( V
g_UserMng.AddHonorTitleChange( this, m_nHonor);
. x9 b3 ~, d/ U
#endif // __HONORABLE_TITLE // ′Tà?
d9 Z! c* O9 l6 Q8 k5 N2 E
}
4 o$ `7 [* n: O* R& b/ x' n r
#endif // __WORLDSERVER
/ v w' ^4 w- b( E% L7 H) \' T, W
}
7 q$ F& \3 g4 W' ~7 u
6 j: z4 E, H! A6 K% [
然后你进入functextcmd.cpp并添加以下
- U4 g! u( I7 }" p
S# d; P- y' U9 d
代码:
" T9 S# q# E: S8 I. [( G4 {* c1 F
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' W* H9 ]# v$ U, @& k$ D
下面插入
/ N& v I; ?, |, c% H
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, D" @' Z! G2 \$ W' q
$ P3 T% I* _( Z4 f2 ~" Z
然后你去
3 b; x+ d+ \. k* E, F) X x* l% d
( E) c; E; V+ X2 Y. m/ f1 L8 ?
代码:
4 A: E! _' U1 ?; q* D8 c6 _
代码
4 O) _, k1 f/ C8 Q8 V2 ]' m
BOOL TextCmd_ClearPropose( CScanner & s )
8 I5 n% M* @5 }& l( w* H/ V
{
" E! J) C7 k9 }" x" Q$ s# p
#ifdef __WORLDSERVER
/ \# u" f! t! ^+ B( `4 X1 u
CUser* pUser = (CUser*)s.dwValue;
$ x# p' e0 L9 @) u5 @- I0 f4 h. G
g_dpDBClient.SendClearPropose();
" [7 E" j# \# ]2 i# m
#endif // __WORLDSERVER
" ^ F2 ?# W1 [
return TRUE;
, [9 T4 X" z2 ^) n, }% h% F& ?- R
}
- f6 @0 b) L! Z$ d$ O( c5 k: V
下面插入
4 P; w6 v! o* y9 ^9 w7 A
BOOL TextCmd_rebirth( CScanner& scanner )
2 }* Z" n, M" T+ d
{
" r8 e2 ^% w& D% V, q! P; h1 Q
#ifdef __WORLDSERVER
' O6 J7 l* t( B! [
CUser *pUser;
. b$ ]* m' y0 Q, V3 h/ g
pUser = (CUser*)scanner.dwValue;
; v2 {7 k% q$ o' y" z- `7 f2 v
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 }5 E2 ` x, V7 q/ |5 [
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
A; W' k% N& Q y, t' b
else
$ S4 {" R0 z+ D1 Y. @
pUser->AddText("你还未达到重生条件!");
# C, _- b. {' S$ p/ P
#endif
1 P2 Y: {: J; Y6 V1 U+ v" L
return TRUE;
9 |; e: \: b; K$ n7 G" s1 W
}
% W* E( r/ N! `( x3 a7 g4 A
9 x- Z+ W; ` u; H% \
% L4 d4 ]; p8 u3 E" t
8 i- \4 P7 H( U$ T9 R @
. b6 s! @" R, J& }4 v
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2