飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
O* s4 p/ ` ]1 g9 c) n# \! g
7 K& r( H% O# t# v+ I; \8 x
Mover.h
: S0 ^, I5 X; T! P) o: b8 l- Y
代码:
5 V+ v9 @- C5 ]( P+ ^8 r
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' K8 c0 h/ p" ^8 r8 x
/ J: u$ y. o/ ?% I( P
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
' O9 I3 p' R4 N7 a$ B5 ~+ w+ |
: c+ p& u$ j* e$ K
然后你去mover.cpp添加
. J' `( v% x) p6 ~7 ]
$ U9 @! G0 @$ B; `" O
代码:
; k5 d/ U' U1 B
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# M) P$ u+ d# a" t0 S) g( M
{
# @% @, S0 e' [* ?
#ifdef __WORLDSERVER
5 K, z3 b- v4 l! Y: C( T
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 o3 L7 |% O& l. d" w, G! S0 q) f4 [
MoverProp* pProp = GetProp();
' q: F- h2 p6 @2 ^* w, r8 y% u- f
if( pProp )
W! C( X% B7 u% c: m" j! B
{
4 G0 \" O" G1 E8 t1 D8 S P
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
5 g5 G, s; Y+ E5 D* L
{
. e z7 v1 O, o0 I; ^' D# X- I1 l
AddChangeJob( nJob );
+ ~$ p* c, q+ W" c8 o2 m
}else{
7 O2 w t% U3 b% a6 ]4 V
return;
" M; b9 a) `% A5 h1 s
}
) c! R! ~" j* l0 W5 g% Z T; L. u+ z6 f
int nPoint = 0;
+ R; h% C' |- g# V
if( m_nJob == JOB_MERCENARY )
! k( _0 Z7 M% y0 a! g: f
nPoint += 40;
& \* y" O+ V9 A2 W1 s- y0 T
else if( m_nJob == JOB_ACROBAT )
5 M* i% e& O1 x7 x9 ~3 b# i
nPoint += 50;
5 U" e( [ N0 a
else if( m_nJob == JOB_ASSIST )
/ l4 w1 X9 F) A; `0 P2 H: [
nPoint += 60;
8 v/ b0 y+ j. I8 [+ A7 S
else if( m_nJob == JOB_MAGICIAN )
% e% G' `/ o3 \; Q3 s \
nPoint += 90;
9 q( D5 N1 i' k* |: t
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' w4 Z! F3 T! `1 G. c. k
nPoint += 120;
1 ~& T; i, e1 ~0 W) D- b! s
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. }! G. J. ^. T# z$ ^2 i: ~
nPoint += 150;
+ ^# q2 r0 U5 U) O4 `+ u
else if( m_nJob == JOB_RINGMASTER )
! B1 e% m5 d, e$ A0 H4 @5 J. W% e
nPoint += 160;
: y/ B. C% ~9 A9 |8 S: i p4 j
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
. p5 B. d- B/ F: N6 t
nPoint += 180;
3 x3 H: W0 M |2 K6 v
else if( m_nJob == JOB_ELEMENTOR )
* Q: r* n( M1 z9 M/ r/ t# [
nPoint += 390;
: ^+ M; s) J# c% p% N; F
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
P" O( a: X7 h; e. E. p
nPoint += 120;
$ j# E8 S7 N T5 @# J( V& S1 Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# F! h* Q. L. O- R
nPoint += 150;
% _7 r6 ^' T3 k4 }# Y* l+ |2 ?
else if( nJob == JOB_FLORIST_HERO )
( t6 V) V, ], b
nPoint += 160;
( S' S, l, s; a
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
h* I' [# N& g3 `" `0 k+ U
nPoint += 180;
/ x# m) v$ L8 |) j
else if( nJob == JOB_ELEMENTORLORD_HERO )
9 f* y1 t7 P( z1 C
nPoint += 390;
9 W; c0 J* C" S) i% x1 m* h1 @
P C& D3 e6 P: c4 n8 @
AddSkillPoint( nPoint );
; s( V1 C( U6 e; b8 M
m_nLevel = nLevel;
% Y3 U- J6 k6 S
s0 S/ m" U; y" e: t
SetJobLevel( nLevel, nJob );
/ R( ^8 O; S; y' R7 D
m_nDeathLevel = nLevel;
4 @( |; V% ]& ^! W: u+ `' D# K
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) z4 ^2 G" N4 g
if(IsMaster())
) c3 x1 ~. a9 a
{
1 i$ N( X, g' A' q1 K
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 A$ ^: q: }5 n9 Z0 T! X8 c4 r5 ]
if( nLevel > 59 && nLevel < 72 )
; _( J8 o" o/ E
dwTmpSkLevel = 1;
& D: y3 h1 {& V3 f- X, N
else if( nLevel > 71 && nLevel < 84 )
; L/ y5 O( W' J/ b4 u- d. P _
dwTmpSkLevel = 2;
: ~# K; J" C" n/ z
else if( nLevel > 83 && nLevel < 96 )
6 L/ l# o1 Z. j: ?9 V
dwTmpSkLevel = 3;
/ i6 k) ^+ V( A; |
else if( nLevel > 95 && nLevel < 108 )
* f; A: M2 Z, q2 O( {! ]
dwTmpSkLevel = 4;
4 _! f. s7 {; J o
else if( nLevel > 107 && nLevel < 120 )
) j% f o7 x0 Z4 I$ X; ]
dwTmpSkLevel = 5;
; D r4 ~0 [, O/ w2 P: J
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' z) q+ y* |; m8 Z ]
{
* y( L- u, L% J! m
LPSKILL lpSkill = &(m_aJobSkill
);
3 ]& M7 r. N V( Z+ j: ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 @; }3 r- K$ v
{
( \ p; M. m4 b) @- _. d, {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 }0 r7 v2 s* |3 d5 e) E
if( pSkillProp == NULL )
0 I/ _+ S s) p2 {; J+ i, W, Y
continue;
$ d( t; h# ~ y7 {7 {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, T/ q$ o( `) E( R5 J
continue;
g( u% L" F8 ~ e) d
lpSkill->dwLevel = dwTmpSkLevel;
' C2 D6 f: W) ^, r4 ~! u
}
3 S& ?( [' U* Z/ g1 n2 \2 g1 h4 p
}
+ \3 y5 E- ]$ {, u9 I
}
3 t6 f6 F) f w/ [- C
else if(IsHero())
}; E) q% M2 g7 J. L: n" x1 a/ E+ r: d
{
% r# R3 z; Q9 b7 z* ?9 \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ c; V) E9 e% S4 P3 d1 r
{
1 l! Y/ n0 E: m, U& l
LPSKILL lpSkill = &(m_aJobSkill
);
4 ^- b2 v5 c; s. v% o- S% T* v8 y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, }$ C4 {: T9 I' @+ t0 Y* C8 ~' N2 y
{
: E. F& M8 Z* i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 M; ?* M, W0 w+ _) M$ t! F
if( pSkillProp == NULL )
0 [# E- H$ T% @5 b
continue;
5 v4 d* M7 S- y. k/ X% V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 b, g1 W% J- m/ |% i
continue;
" }# E6 ~6 x8 L& z' s3 [2 U2 @
lpSkill->dwLevel = 5;
; N+ {$ y, @, K C; J1 b
}
2 m) H {/ ?$ \+ x; Q% o* w" C
}
p/ R' ~& E \9 N \
}
6 \4 l/ D: r' B; M+ K% n7 I
else if(IsLegendHero())
) {6 ^/ M1 ^ ^7 u3 s: Z
{
! q9 q& h2 S2 A; x3 M
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% P6 T% d7 C) e, R& l
{
3 n+ p; F. C( J) D% s# K5 K. {" @! B8 y
LPSKILL lpSkill = &(m_aJobSkill
);
1 c1 C5 N1 F+ V! M3 b& f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: S0 i" T$ s. p- X! ?' W# \/ _
{
( z/ o& C0 P8 o1 Y0 F& Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
q! `3 R! _7 p$ S
if( pSkillProp == NULL )
5 i1 X- G+ W7 v2 s7 E( i1 D' C
continue;
2 ?0 j _+ J4 D. w( m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 [" ?, ^- `# J! J
continue;
; u5 Q& p. h, n: c* \8 `1 P
lpSkill->dwLevel = 5;
3 _* T- x1 u D8 n
}
# [. V$ d$ f, ?: u6 E1 |& }
}
! Q$ A# ?/ b) G0 m& F/ S
}
# C `1 D; _# A5 J6 k7 N/ Z& v+ u
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 a R2 F5 o+ z. C
if( bGamma )
; o3 X; A% }- L, X# O3 ]
{
. n7 o1 e$ N& m- a3 l
m_nExp1 = 0;
. |3 u9 O% }& M; O# m
}
9 _! B/ c7 E0 k4 f
; Y: d P0 h& G/ D4 ?0 @$ V) o+ u3 U
( (CUser*)this )->AddSetChangeJob( nJob );
( ]- }; e/ q) I K5 j8 N
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# j7 ]+ f; A+ w) _5 Y
6 i2 z) R9 M G
4 U- e2 P2 }9 L8 S* g- _
#if __VER >= 11 // __SYS_PLAYER_DATA
2 \$ d. N9 r, l9 H* C! l& J8 J
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
4 B3 a" Z( r$ |0 l
#else // __SYS_PLAYER_DATA
& ?; o7 D& V! ^ T& }
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
- G Y9 |$ X: i0 L. n9 M4 L2 l
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. }0 s) z& _$ b, V' V
if( m_idGuild != 0 )
. ~* c- r4 v* I+ W. L3 m
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* R& @. A l' t
#endif // __SYS_PLAYER_DATA
5 ] C4 m/ {1 C' _* i
SetHitPoint( GetMaxHitPoint() );
7 G. I) F$ F4 Q' g6 ]
SetManaPoint( GetMaxManaPoint() );
: M. l$ v7 y( N9 p! w3 I' x1 P
SetFatiguePoint( GetMaxFatiguePoint() );
% t9 v/ M% @+ {# A) z
if( nJob >= 1 && nJob <= 4 )
- ` i$ v4 D9 C9 M. @2 d
{
8 n( ]2 ]+ Q0 H9 g5 R
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 j( `* C5 I1 B+ W7 C
m_nRemainGP = 28;
! f- l- b* {* f# j2 n/ w( _
}
; y' S) M6 W1 Q, K0 i" }; U7 W
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% C% d6 ?; @/ b$ t2 {6 J
{
& c4 ?2 N3 a& C
m_nRemainGP = 118;
2 P; g* W( v" m, u$ \
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
! m4 c4 ?" l8 Q( |( O
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! E! }9 u' e& d- z
}
6 Z9 x' g4 t3 j5 h# u' X* @
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 m% G* b# y( H* O) l" T
{
+ R- K1 y' T9 q
CItemElem itemelem;
8 ?% c ?) O) L" L' ^
itemelem.m_nItemNum = 1;
# o# w( _% k% H! ^ y
itemelem.m_bCharged = TRUE;
9 @2 z! [/ l- W) k+ x/ Z; H5 }
BYTE nID;
- \/ e4 X. k$ \
" j& A0 U3 v, r0 c4 q; r
if( nJob == JOB_MENTALIST_HERO )
* I( u2 V$ D2 R
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) X& J: S* r+ C$ `% L& R8 U; b
if( nJob == JOB_FORCEMASTER_HERO )
8 h: J7 d; c. h
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, B( c; v/ |- V) r& F! ] k/ E" \( U- D- y
8 ?) e) T" S2 X5 p. J0 b
( ( CUser*)this)->CreateItem( &itemelem, &nID );
/ i5 Y8 v$ k+ W# ] }+ i
}
: a* r' l$ Z# E3 {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
: X6 R0 P/ e9 b! w7 Y; [% ]
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 t% ^( R9 }. N$ O
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 n0 k- ~0 O* d3 k/ B
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
9 H: n& L4 h, z
( (CUser*)this )->AddTaskBar();*/
. B8 i2 p# ]; x! i( [
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 F) C2 u# F. H6 D7 D. G0 r$ I# n: h
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
0 E: d8 b* V. U H
((CUser*)this)->CheckHonorStat();
2 J; v; H% h9 B4 N
((CUser*)this)->AddHonorListAck();
3 r4 `% L! F- s, `
g_UserMng.AddHonorTitleChange( this, m_nHonor);
: S4 D1 d# M. `5 N) K0 [
#endif // __HONORABLE_TITLE // ′Tà?
$ u* E* M }3 h
}
" M( C, e9 |7 z @* o& n9 g; L
#endif // __WORLDSERVER
# T* H! x( E+ c! s1 @4 j% a
}
6 M* b V( H. M0 M' u% V
# ^3 \- R( m/ F3 i/ C: B5 j' T
然后你进入functextcmd.cpp并添加以下
' n* b6 c' P' g& {' c' g2 `
/ U/ u U( K( L. \
代码:
# w+ n [( Y& b' m2 N4 ~
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
; b3 m8 C. M8 M* \
下面插入
( X4 B5 O$ v! I P& U
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. X3 S. O3 O2 s6 w
) _4 f( `) X& f
然后你去
9 p; Q$ u* b4 c8 i# [! C
( k+ D" B6 ^" a0 Q) t' Z' R+ c, z3 Z+ S
代码:
1 ?; S5 E2 a( }/ P$ j' x
代码
" f* F5 v, v T2 N
BOOL TextCmd_ClearPropose( CScanner & s )
, H0 j. f4 ?/ H4 W
{
& H- w9 D0 M' P3 s
#ifdef __WORLDSERVER
& O6 R# Y& ~) O% S
CUser* pUser = (CUser*)s.dwValue;
1 x' J# T( q3 W: d4 K% u6 K
g_dpDBClient.SendClearPropose();
6 l- w! D0 k K# }$ i! Z& k2 C$ @
#endif // __WORLDSERVER
% @4 R. D6 w' R6 s7 z
return TRUE;
8 _ s4 p0 ~& R9 _: Q- F
}
8 d8 T Q0 X8 e8 H8 a- n' V1 `
下面插入
5 T# O5 [! X# Q
BOOL TextCmd_rebirth( CScanner& scanner )
% s- ^" ~/ i) N; H0 G+ H6 k
{
; u( L# @# S2 @& I
#ifdef __WORLDSERVER
6 C: L1 E' Y c: O" H
CUser *pUser;
8 }, ?; _) h( ?) x, V9 P
pUser = (CUser*)scanner.dwValue;
* D; u* o2 L$ F" d
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 b8 g8 t% ?: @0 k# f6 C
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
' G7 T6 ?( _& q! c4 S+ r
else
' ?/ t# h/ z7 R% \" u# O$ _: }
pUser->AddText("你还未达到重生条件!");
: E9 a: m% r! |. w7 a# B2 Q7 D
#endif
5 e) \6 ^ S4 o8 O
return TRUE;
. | e- D! v& E, t
}
2 ~9 t0 a; D& ~8 e W, K; K
; @8 _. |1 I0 B) H6 B2 c/ ~/ `3 v, J
% z. L c3 g5 Q9 i- i( s
q2 m. `& N6 q0 J9 z, u6 I4 Y
" ~5 }& v0 `4 ~0 O" M M
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2