飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
w& _& X: }& v E
2 h' u+ x {3 K0 h+ Y- k o: _% B: l% w
Mover.h
& b4 l' |! j) f/ @8 i; O9 K! l
代码:
0 N% F6 @' t: ^5 [: o* f) a, z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- Z7 r( s0 b- I0 d/ {( {5 I
* M. R, h: ?" {+ _
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 ^& U0 i' q0 z/ R& _1 I- r
8 w5 N6 t# x* B. u0 O2 }
然后你去mover.cpp添加
h" C8 _# w6 F* q! R1 d" a
* {6 Z. C4 V# I' b
代码:
7 n8 A+ i) n) x6 h' W
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: G+ H4 g5 N) j3 L+ Q* {8 {; v
{
- H4 a* d5 s/ _# V+ F% R
#ifdef __WORLDSERVER
8 V8 W5 w7 I7 g0 M8 d, q
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: I8 H" u6 g$ l
MoverProp* pProp = GetProp();
# H. K1 c9 r% A( b( ? P' p; B6 \
if( pProp )
) |6 ^, j5 A H! b# b
{
! D" p1 g8 J; h
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( L* ~. c. \# _0 U% L+ n2 W- {
{
- Y2 J# d! u0 |( e; u
AddChangeJob( nJob );
0 \ m; Q, \* T* P) j0 ~
}else{
$ G6 N2 Y( f$ K6 I% s- a- B' a
return;
, b( ]$ O* W2 @/ w; C. Z7 ?
}
. {* @8 n. x' N9 Q: C
int nPoint = 0;
7 @. R3 Q: n4 q$ @/ O7 T9 @% ]
if( m_nJob == JOB_MERCENARY )
# l5 s0 m& c& W, R! W
nPoint += 40;
. r) |6 g7 A- E4 ~( {
else if( m_nJob == JOB_ACROBAT )
& n- c! w9 U# H+ z% A
nPoint += 50;
H" p. a% p- [# `- [# Q
else if( m_nJob == JOB_ASSIST )
* E& r0 L. d8 T4 ~5 {$ d0 @
nPoint += 60;
- z2 W9 U3 ]$ X [, f$ ?% [
else if( m_nJob == JOB_MAGICIAN )
6 k' E+ O M9 e8 w/ q( V
nPoint += 90;
4 h& Z" q/ l. Y' W, C
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
% L- Q# _+ o0 u$ B8 x: ~" X
nPoint += 120;
2 H+ J- H6 V& B. ?( G7 k
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: T: Y- m7 Z! S* y% _3 @1 e! W* |7 ?
nPoint += 150;
9 m/ g, _1 N4 }% E. K( a5 j- _
else if( m_nJob == JOB_RINGMASTER )
3 G# n8 l0 p* {. u6 o+ c4 u$ D
nPoint += 160;
% x/ e/ ]2 {& F x6 k
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 S3 X# y W$ i
nPoint += 180;
, {- |6 `3 t1 y2 r/ m
else if( m_nJob == JOB_ELEMENTOR )
+ m% q$ S, L( l q9 C3 C
nPoint += 390;
F- U/ @ E, v1 T: R. p
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 O/ y1 z3 @$ {5 ?& l( v, ~
nPoint += 120;
e$ S- { _$ R3 P
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* U! v8 ]* W) ^( [
nPoint += 150;
7 B6 G$ h3 Y+ L; V2 b4 H
else if( nJob == JOB_FLORIST_HERO )
, e8 z" k0 c5 l, V
nPoint += 160;
$ f! W. h! a; K! ?+ y! I k! r
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& j0 s& O2 E# i& n+ {0 N3 o) ?
nPoint += 180;
8 I4 S; O) m! M" D E
else if( nJob == JOB_ELEMENTORLORD_HERO )
: V' U' q, m; h- P6 r e
nPoint += 390;
" d/ l) A: C$ A% u
6 i: q* m6 F: }9 }9 q
AddSkillPoint( nPoint );
1 d2 Q. W2 L4 [/ F7 r* t
m_nLevel = nLevel;
# |: P9 j- `2 i/ s( Y" i
6 R2 c8 ?2 l9 I$ q1 \+ k& `& T, ?
SetJobLevel( nLevel, nJob );
8 ~9 C' @' ~( } x% b" \
m_nDeathLevel = nLevel;
# D4 a9 H; u1 [
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: C: X5 W: x, Q$ m. @
if(IsMaster())
4 I$ L, ~8 o0 ^" b8 f/ }
{
& X @7 h9 ^7 e C1 T2 [
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ |- P/ h" H2 y, J( I
if( nLevel > 59 && nLevel < 72 )
' |# c5 p1 j G3 E1 _7 }
dwTmpSkLevel = 1;
; y) N& d, K. O" x! @
else if( nLevel > 71 && nLevel < 84 )
2 A; ?6 I7 V$ H
dwTmpSkLevel = 2;
' x% Q# K' q$ ^1 N6 _4 i
else if( nLevel > 83 && nLevel < 96 )
. Z! F3 Q' O4 j; y( C
dwTmpSkLevel = 3;
) m5 U8 h- K7 ?3 F4 K) v* Y
else if( nLevel > 95 && nLevel < 108 )
$ M" E4 Y l' [# @: y. H: P$ u" Z$ U
dwTmpSkLevel = 4;
" w& F1 e) O2 F& z0 ~: x' U3 H
else if( nLevel > 107 && nLevel < 120 )
0 N u3 @) ^+ L) j U! ^
dwTmpSkLevel = 5;
' n2 Q4 R! z) X6 }+ w
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# `* i' g1 K/ M" |' z2 N. w0 z' x2 `
{
4 H: z+ ]' y( r8 s8 w: ?# _# U
LPSKILL lpSkill = &(m_aJobSkill
);
6 w, Z* [3 A3 `3 K( s* Y$ @* p
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& r c$ f/ z4 s. E9 p
{
$ i( X# K2 U7 p# P, t& K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' v# N6 h6 o: k
if( pSkillProp == NULL )
! N/ w+ K; G5 y7 c' J- J R5 ^
continue;
3 j' ?/ o3 p& {# H' _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) b8 u+ i7 m; {# Z
continue;
' p& E. f6 L; Y# Y' c* j
lpSkill->dwLevel = dwTmpSkLevel;
; D$ z+ I& t' A: x6 Q- j8 N; Z. d$ F
}
0 w# ~% ^3 i& m J3 y3 M9 u
}
" K7 _9 X+ j; ?
}
2 O7 X& _: N j6 u! x' v) B4 k* ^
else if(IsHero())
\3 h8 X" U' q# C8 P: l s
{
5 ]" N# j6 _' i2 [
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 T x5 x* ?0 G0 {
{
/ p, J3 @! [6 _. R+ \/ b
LPSKILL lpSkill = &(m_aJobSkill
);
' o& d9 T) x' u; ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' l9 E4 R0 E# q r0 `5 p# r9 G3 t
{
3 [" H5 U% {* k9 \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" ~0 G. U& r1 d. C3 n
if( pSkillProp == NULL )
/ Z( |0 ?; P6 I; Q2 R# {# H
continue;
0 ], u+ [7 j/ J4 y' g5 V; E8 W' `7 W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 K0 g3 C$ a& R* j4 o
continue;
' l( q+ ? q* p" Y. J1 X" T7 m
lpSkill->dwLevel = 5;
# }1 F9 S/ S; Q e
}
5 N; G9 S6 \5 n
}
! c# O1 R+ ], N$ t# w
}
8 m# @$ X6 B2 q# ]6 K2 w
else if(IsLegendHero())
7 _3 k- s8 G8 ?! u2 _4 n
{
' y3 a M# v. @9 f. I
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- V- V9 x& n2 ]. [, h) i( Y
{
; T- p9 J& q* b* e Z2 @) l8 T
LPSKILL lpSkill = &(m_aJobSkill
);
% E/ i/ r' p( f0 ^! E
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% {' v7 @* ~7 ~" }* j. U
{
# W. s- z; q" r& ?) Y( e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 ?+ p$ M5 s5 j& X; [
if( pSkillProp == NULL )
5 b0 [" y! E8 c+ C; \/ ]: g
continue;
0 f5 k1 v7 r+ Q' }1 B* Q! m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 [5 e3 a/ a; ?% f# q" R/ g
continue;
, h5 Y. [4 p& Q* I
lpSkill->dwLevel = 5;
6 a4 I. ~. q& S/ [8 {
}
& F9 G1 J: k* C! D3 f5 b, q- o- K& ?
}
5 Z4 a) e2 y9 i9 C, ]0 u
}
m }6 M$ ~* ^, ? |1 G3 n
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- ~% F( i3 v; _3 x$ E
if( bGamma )
8 e o: s7 z2 ~" C# M/ F/ ]
{
; k0 G! R) s# I7 B
m_nExp1 = 0;
8 @# ]& V) v2 y% p: R9 j# Q s
}
8 U6 \9 n( w, `! G1 ~7 l s
, f' N9 @- B4 I8 } C; T
( (CUser*)this )->AddSetChangeJob( nJob );
1 D; F( N; J! B( |4 k3 E
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, B; x+ U- n5 \- o6 c/ S9 W" y. ^
. g2 L4 V d! T% |+ I' O0 O5 {
! c2 E4 o, i9 x
#if __VER >= 11 // __SYS_PLAYER_DATA
( U# z, C5 L% p# [0 N. @
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; c2 a; V% K" Z' `
#else // __SYS_PLAYER_DATA
" k2 {3 R, L6 F
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" x$ I" `% v7 H q: T, K
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
{! e9 d8 U( u2 O ~
if( m_idGuild != 0 )
" g2 q/ L& V, Z! j
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
9 t1 {* p; k/ o/ I( d8 z! z
#endif // __SYS_PLAYER_DATA
3 m1 L+ l4 x+ e4 E2 H8 N) R
SetHitPoint( GetMaxHitPoint() );
% H7 `% V1 m! W+ |+ u& Q
SetManaPoint( GetMaxManaPoint() );
8 g" ^4 t# Y$ k' |; b
SetFatiguePoint( GetMaxFatiguePoint() );
y2 v8 P) j8 f1 X' ~* k
if( nJob >= 1 && nJob <= 4 )
& G! Q0 d- z4 [" {9 }% J+ F j
{
! { _* `3 d. O1 J! N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ R H" c0 H% Q, e/ o
m_nRemainGP = 28;
" T3 o2 S; J2 K* Q% s
}
! E& C Z; j. j% D% N
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 J0 t# N7 n) K1 A5 q
{
! \/ B2 D, I7 o. T/ g# u I
m_nRemainGP = 118;
: j/ t& @2 t/ M2 }+ G" K& ~! a# [
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 F {( T0 J5 A0 `# b8 i
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, S4 u! l! B) ]) i
}
7 H. X( L9 B0 E" o0 m0 X$ Z9 {
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
$ C. j2 X) X- p }: u+ }4 }3 K
{
" X3 C3 y, a. O; H! I
CItemElem itemelem;
f- u; R/ n! e# Y3 m
itemelem.m_nItemNum = 1;
; q* J7 V" E3 {2 u1 A- w/ I
itemelem.m_bCharged = TRUE;
7 a e) h' R# A
BYTE nID;
% T1 w. e7 F4 K! t
& L. \' E; |3 E: ]2 L
if( nJob == JOB_MENTALIST_HERO )
" m- w& K( A2 \+ ~2 p% e* Y+ I `
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 {$ K! C+ Z+ f3 Y& k5 { w$ x
if( nJob == JOB_FORCEMASTER_HERO )
" j2 \$ N: C% @, g- s
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& L4 |% s) }8 N
: f) l3 X$ u* A' e3 Z# F, ]
( ( CUser*)this)->CreateItem( &itemelem, &nID );
) i$ r1 T$ X( r& g' T4 L0 m
}
. i5 L7 w* q6 M9 h
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* u H @+ b6 ]
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. {' h; |! c# ^5 o9 n, X4 X
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- |5 d& A' t; v1 T) e! ^) Y+ ] O
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& s. V, p7 X% v: j( g9 }
( (CUser*)this )->AddTaskBar();*/
! I- z1 E! E7 X' @ ^
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
) H& r* Q8 F! ]; d2 G
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 u, u$ d/ p( I+ E- f0 G( W4 B
((CUser*)this)->CheckHonorStat();
2 H* Q/ H2 `# L/ j% Q1 u/ Z
((CUser*)this)->AddHonorListAck();
# l9 _3 w) @( W! w2 w
g_UserMng.AddHonorTitleChange( this, m_nHonor);
7 j$ P! S& X( c' M6 c* G8 G2 u
#endif // __HONORABLE_TITLE // ′Tà?
+ P0 k9 m5 o+ I' ~" \6 A
}
% i8 k$ }' p8 \( o0 m
#endif // __WORLDSERVER
+ r, G/ n+ |% W. q' k+ X
}
* u u M6 `8 S
9 Z' x% f; A Y. ^6 a
然后你进入functextcmd.cpp并添加以下
" x, G# p2 j6 Y }& y
+ }# f* `* [" V
代码:
- x3 ]* j: e0 y5 l( Y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 ^3 b& c! t9 |% ~0 E
下面插入
M5 z& d' c, w+ M
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* ?& |8 W$ v; \; x
% n# i: C6 p7 k$ o
然后你去
$ Z' b. m+ {+ e [7 G6 A
& m% i# T! P; w; v$ @9 ]
代码:
; q7 _8 d9 {- K2 c( \$ k5 M* ]
代码
. D/ R8 Y+ N' t% r s
BOOL TextCmd_ClearPropose( CScanner & s )
6 S" U5 B' y* m- n& l/ W
{
" P. \! _, T ^$ y( P: ~
#ifdef __WORLDSERVER
. c) ?+ D6 S6 T% i4 ~: S& y
CUser* pUser = (CUser*)s.dwValue;
7 t+ I6 M% |7 `
g_dpDBClient.SendClearPropose();
) ^- `) I+ `1 l( r+ j S
#endif // __WORLDSERVER
2 {5 ?8 l& U8 `" i# S
return TRUE;
; c! D) g8 z5 I, g$ P: ]9 y' ?% w
}
; [3 F' b- _8 a- | e! \
下面插入
3 A& j; d# Q) K3 n) p, |
BOOL TextCmd_rebirth( CScanner& scanner )
! e! t2 M9 v8 ?/ L P6 g
{
\; r ]( Y; d. u
#ifdef __WORLDSERVER
1 Z# G3 Q# _6 d: V- f0 X. [7 o
CUser *pUser;
/ B, C. Q; U& t# x
pUser = (CUser*)scanner.dwValue;
( F; U3 z% y# |" G$ p0 P4 V
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- u* h7 M, s h$ r. `: V" ?+ \
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* ~# S& P Q0 Y% D; }; Z
else
; m4 J$ u% q8 y7 z1 Q- D2 @+ J! B6 k
pUser->AddText("你还未达到重生条件!");
! K0 `5 B- N* ?# I- M
#endif
( s7 k7 ]" L* n9 v( G# z' }
return TRUE;
2 V8 w5 x- g a! U
}
0 J& t% y: Z, N' V! U% a. c
U- x- {9 A" X9 Y S) S
8 P& U+ T+ @2 g
# O E' A/ k1 Q9 a' v
2 h7 o0 ]* ?" h9 Z! m' R
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2