飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
9 a* M/ t+ S, j7 |0 [
" d( ?* W) l; B M! i7 N7 A3 C- l
Mover.h
2 t9 a0 R9 K3 b3 F, k4 P6 m
代码:
w9 j3 }: C% V- ~: ^2 n
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% w8 z3 W2 }* b9 b- D
; b# [2 H& {! E! r2 l
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: P |6 z* \9 q( u! x, f0 o
: H4 h* b+ `+ \6 C
然后你去mover.cpp添加
# o0 r( G* `" _
3 r8 H* O* o/ `3 c
代码:
+ S% I+ M$ O5 N$ r7 C$ m" g: S3 x( V5 Y
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' I' Z, L' I+ c+ Q; Z% Z- r& D
{
# f/ p, m' ?$ M' n L5 C5 o8 E
#ifdef __WORLDSERVER
; a5 y. W+ d: I& ~1 G
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% H3 c* ^* o; L" R* {! r
MoverProp* pProp = GetProp();
( P& f; I, Y2 y z/ |
if( pProp )
, I& A9 T b8 ?% |1 q
{
* o' R. d+ `% g
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# `& c% `- B+ }) `( E$ w
{
) j( [' ?1 `, x+ o% X' [
AddChangeJob( nJob );
) j ~: X( U& J( g6 \* r1 l' {
}else{
7 _9 Z7 G9 e- [1 Z8 b$ \5 z
return;
! L1 V0 v0 f6 D& {1 u
}
+ J( M9 F% i& c5 q# ~
int nPoint = 0;
& n7 }) X/ C H1 L t' a3 G% m
if( m_nJob == JOB_MERCENARY )
! W5 G9 I' H) |* [ r& t6 e# _5 }/ q
nPoint += 40;
7 y/ V& g: c7 v) S& I2 L8 I; C
else if( m_nJob == JOB_ACROBAT )
0 B+ y- R8 h3 x% v( l6 y* a* v6 S" X
nPoint += 50;
8 ~% ~4 z1 R5 j* ?/ P
else if( m_nJob == JOB_ASSIST )
1 T* y+ d+ c* y1 k& I( F
nPoint += 60;
% L! \( i5 l( [
else if( m_nJob == JOB_MAGICIAN )
6 M9 v" P6 k$ g! z% w
nPoint += 90;
, Q/ P7 t- @# a" v2 P# y/ y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
6 h m3 _# b6 e1 [: F& |' l: b
nPoint += 120;
# `' ^& r) k. s( [6 f
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
- m; R% q/ i' K2 m( t
nPoint += 150;
3 o& K Y1 C1 k/ c5 c
else if( m_nJob == JOB_RINGMASTER )
% \9 } n( c" y+ j" O
nPoint += 160;
% w8 f' H) v+ m" m4 ^4 G" B
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ L) W2 n9 w9 b: x* g
nPoint += 180;
$ G& N& K! j }* Y, u m) B; Z
else if( m_nJob == JOB_ELEMENTOR )
. Y3 O2 v6 h `5 B8 x
nPoint += 390;
+ ?7 N0 }/ k+ L& h8 h* T+ Z1 p
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 z" e* m) \3 W M2 u3 X3 P
nPoint += 120;
# m4 o& ^& Z; \- _7 |# \6 e
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# t/ X7 Y: L A
nPoint += 150;
5 |: A! K$ {8 v [$ I2 ~3 J
else if( nJob == JOB_FLORIST_HERO )
' j: j3 a) c4 J6 n
nPoint += 160;
% m! ]0 U/ k; r* x8 ?; x
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ {" M7 K* A W6 f
nPoint += 180;
$ p' I' z" d/ ^+ o! A- h& p
else if( nJob == JOB_ELEMENTORLORD_HERO )
, G* r- S% ~; V" }' j" l
nPoint += 390;
1 N" }5 F/ d2 D% ]; I- Y7 m6 H
, `+ h# j2 a; [
AddSkillPoint( nPoint );
2 z5 J4 v: [; R6 Y) l
m_nLevel = nLevel;
\ \ L: W/ W0 K: s$ t
% i4 Z S! K4 @0 y# {; v
SetJobLevel( nLevel, nJob );
0 i( L- h. L6 @! R5 `. d
m_nDeathLevel = nLevel;
, U. `: q: V- @- A2 c$ r$ U
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 i! ^0 Q7 ~$ w: E
if(IsMaster())
- H8 v. h5 G8 ]+ \
{
3 T2 c, ~9 E3 i0 @) ~+ T
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 a! A4 M ~2 a4 n) g) q! G8 ?! t
if( nLevel > 59 && nLevel < 72 )
% k$ V/ s' K* z* ~) z! A/ A
dwTmpSkLevel = 1;
6 k) v: Q& }) [9 K/ a- K r5 v4 ^
else if( nLevel > 71 && nLevel < 84 )
4 L/ a1 g. W2 z a. q8 [
dwTmpSkLevel = 2;
+ W" L; B `5 ]9 i* A
else if( nLevel > 83 && nLevel < 96 )
. X8 N; l1 o$ V+ E" q2 B
dwTmpSkLevel = 3;
( S& L9 p3 t. ]& E
else if( nLevel > 95 && nLevel < 108 )
& L% X! V2 e( a H" L
dwTmpSkLevel = 4;
) z* J& [7 m5 Z% V% |2 R- |
else if( nLevel > 107 && nLevel < 120 )
. E1 m5 d+ w: D4 Z, U* M( l4 G+ ?9 @
dwTmpSkLevel = 5;
( B% n; E) _; M( |; S, [) i
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ t3 C5 Z& O8 \
{
. L7 H5 ^0 l5 T1 |7 D
LPSKILL lpSkill = &(m_aJobSkill
);
* J3 v0 U( z' H1 O0 a
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 d" P' {1 c/ N
{
5 P# m4 s- w) i1 y X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 c+ h( ~$ P) z, d4 f; I7 Y4 O
if( pSkillProp == NULL )
8 b; O( ^0 m$ Q- g
continue;
: d8 d c* N) F. J, o! g+ x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" a& F2 K8 S7 B; B! `, c; X- V- d
continue;
' u" x/ c% @9 o5 c7 {
lpSkill->dwLevel = dwTmpSkLevel;
# C% Q. l+ [0 D! e: U/ u
}
. E: e4 X4 B0 f2 k: R/ N3 r
}
2 m6 ~. y8 K6 p3 @/ r% O
}
9 r9 f0 @& f' w3 f
else if(IsHero())
r+ ^* a: D$ N9 V0 T1 B, M0 X+ n
{
9 f" S+ o% m& q) m1 v% a( [
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; g5 Q" j4 d. U: y
{
) @, {" j; V& y* b% p; k b
LPSKILL lpSkill = &(m_aJobSkill
);
; q% Z& x' \& q% f9 t% B) B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- ?+ f# R& D8 A/ p
{
; j1 Z$ L2 u, N) ^7 x5 T9 Y9 m( F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ U( P1 N2 d; I m
if( pSkillProp == NULL )
1 Q' j( P. e* u! w
continue;
+ x% B( l' v, e1 M0 T! t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 w+ c6 ]2 H8 p) n0 s
continue;
0 t6 _# e/ E, ~9 a3 C) q5 U
lpSkill->dwLevel = 5;
) z" C4 G) x& s
}
3 F/ B# b' v0 k
}
" C1 o/ ~3 k6 ]$ _
}
8 I' U! k/ S2 S2 s2 Q% [7 f/ n, ]
else if(IsLegendHero())
1 D0 q1 q' `& ] q9 L
{
7 f7 |5 o/ i6 l% p
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# C8 K* B& h* w( q2 w
{
# x- w4 b2 A1 {0 e
LPSKILL lpSkill = &(m_aJobSkill
);
7 |, u! t. y0 Q9 E" F* q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" ~/ [ B9 {4 M9 M! }. o
{
9 R2 y* v2 c5 D/ b3 w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% p! u5 ~; H! ?; y Y
if( pSkillProp == NULL )
8 `) M& ?. N o) O2 o
continue;
; h$ n! U ]) N+ u! b, l0 G3 Y1 q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* M; t s5 g- x; e$ i
continue;
" _) {, L8 u$ ~! O' S
lpSkill->dwLevel = 5;
9 H, x9 U) g B B0 n/ c$ V0 `" @
}
/ z: b! _" O" L0 M, ~6 [
}
: N ~. r6 w2 a2 x* B% \6 F
}
* @( x4 |4 Q8 ^2 z$ N) H7 {' S
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. E3 ?9 g8 f. R1 x" }5 f6 \' _! U! ?
if( bGamma )
1 s T' C, _* h6 a- |
{
N9 d- M* k1 v( K4 `) F5 m B9 a
m_nExp1 = 0;
( k# D" ?; x% _( p; ?0 V& m
}
& y- O. l7 v0 R
. u+ K1 j1 y+ t" }3 g% Z1 N
( (CUser*)this )->AddSetChangeJob( nJob );
, u6 i3 p& [; m, i. W* e
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 a. }+ X- v: m n! m8 Q* ^
& d" _. g; B. B
' Y& C% P7 y; c X) ^+ \2 F! A: c
#if __VER >= 11 // __SYS_PLAYER_DATA
$ K" j6 u! W* J. p# N
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
2 K0 b9 @" J) g* q: ]7 N% ^
#else // __SYS_PLAYER_DATA
) f/ R5 N3 q# P2 P) p
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
- g5 i4 L2 z ]1 O4 I) N
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. S. @3 x6 G# a
if( m_idGuild != 0 )
T) g) X, \1 o9 E. t
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
- Y: T' ]& B- k; v# f: e
#endif // __SYS_PLAYER_DATA
' U( Y; ?+ f& P, B7 f( Q" Z
SetHitPoint( GetMaxHitPoint() );
0 w8 ^( E& m; l0 b
SetManaPoint( GetMaxManaPoint() );
4 q9 H0 s+ K5 d3 A4 p v& @
SetFatiguePoint( GetMaxFatiguePoint() );
/ l) `# g1 N8 _& q
if( nJob >= 1 && nJob <= 4 )
1 R) M( e0 o' A4 Z& m
{
1 h1 J! o; s( j9 R& \" W7 F/ ~( ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;
" f% n. }5 ~ u/ ?6 i
m_nRemainGP = 28;
$ U- o# B Z/ Y( }
}
8 I& v3 j: J- p& i
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! t! o1 E- M8 ^- N0 s
{
; v2 b8 Y( z3 e. e
m_nRemainGP = 118;
2 k2 r* P; y6 J0 A( P. G2 J
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: O& P- L( R* j! @$ v
m_nStr = m_nSta = m_nDex = m_nInt = 15;
& U) q. C' ~6 D( b- y
}
6 M' S! J" l6 \
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 O, g4 D ~4 b, ?2 P+ \
{
+ s- P% Z; T+ N: I" \5 A1 i
CItemElem itemelem;
3 [" O' u6 J) V" Y+ I1 r- X
itemelem.m_nItemNum = 1;
; f7 s7 B" E& H
itemelem.m_bCharged = TRUE;
6 t4 j% [% c9 K
BYTE nID;
1 s% D( y+ d* F! u+ g( p5 D
1 I& o% ?8 R% G. h) q3 G( m
if( nJob == JOB_MENTALIST_HERO )
- o, H; c9 ]3 X/ k4 |) E
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 r) h7 E$ E: [* L
if( nJob == JOB_FORCEMASTER_HERO )
/ i9 `4 V4 m; A8 e2 Y
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 {% H( A" K' }5 F) h7 P3 i- F" G' ?
5 _+ s- D3 ^- l
( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 C2 f* X6 b. c4 @: @1 ?& I
}
! i+ q% ~$ X% q, T: I6 c% W" r5 w
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 x1 h/ i$ U9 G' A4 o$ b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
` U' Z5 k- s. _4 ]3 G
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: H0 ?9 u% F! a0 ~) L
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ V1 j4 Z* Y6 F. d! D
( (CUser*)this )->AddTaskBar();*/
& E8 i2 t4 s) \+ ], R
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 R$ ]- R5 x" K0 O, z
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
2 [, o9 E7 ~8 ?' P2 I+ W1 @
((CUser*)this)->CheckHonorStat();
v/ a! _* d9 a; [9 X& d9 p
((CUser*)this)->AddHonorListAck();
( A3 k3 a' S/ q+ ~
g_UserMng.AddHonorTitleChange( this, m_nHonor);
, e% N2 T4 x7 |- }% b O. P. P
#endif // __HONORABLE_TITLE // ′Tà?
: J* ], U$ _# w. ^' e( s
}
+ |6 P* J% i: ~& f% x
#endif // __WORLDSERVER
) k q6 ]. A0 t
}
2 U# i1 E1 H$ f! O0 L. \
3 i) E5 t; c6 n6 E1 T% r
然后你进入functextcmd.cpp并添加以下
! ~; @+ P0 y1 r
' e- t+ a! C! V7 Q. d
代码:
/ w9 u/ U5 ?9 k, v% I# _
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- r- Y+ ` ~8 n, _- G6 E7 y! E
下面插入
/ J! P8 G) X# W8 }% D) c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: G j+ B6 X; }0 z4 y
; H0 I L# Q) F6 d7 Q" G
然后你去
8 ]( S# `, m* s5 L1 @+ W
4 [: R* h7 l1 O; A
代码:
! d3 a: n$ d$ W! x. w$ w
代码
6 _2 Y7 X _" |3 q" t# j
BOOL TextCmd_ClearPropose( CScanner & s )
; Z- @# y, m( U
{
K, P& u2 w$ p5 g. x( b
#ifdef __WORLDSERVER
3 E B8 p6 i- p
CUser* pUser = (CUser*)s.dwValue;
) W( ~' I M0 Z& @ R h8 P
g_dpDBClient.SendClearPropose();
5 P, Q w! u5 s5 Z, }; n0 h# t
#endif // __WORLDSERVER
l! J$ V3 ?1 ~& q2 y
return TRUE;
' s) h/ j$ J& I- t
}
7 ~6 }: ?6 v- N
下面插入
' w6 E( \1 u& H8 ?3 j4 s1 G
BOOL TextCmd_rebirth( CScanner& scanner )
2 m* k& |$ L Z! V$ Z4 P
{
7 W& r0 m; j7 d3 f& b. F5 G: i5 @
#ifdef __WORLDSERVER
6 ]; B" f h( b
CUser *pUser;
0 }, ?8 v4 I0 \( X1 i+ N1 k
pUser = (CUser*)scanner.dwValue;
0 _2 a( M5 d' t. M9 \% s% R
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- Q. i1 z6 ?8 o& \1 f$ Z' Y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 p- m+ l6 Q7 ?
else
) L2 y2 r& d) f- a3 W+ e( g, w
pUser->AddText("你还未达到重生条件!");
2 n: \: W- C( I8 O% \' l
#endif
" }7 P. \' y/ m N3 _
return TRUE;
* }- Y% v9 W) c/ _5 ~5 M
}
5 F3 X2 T p- j5 F* M, X+ F9 o4 n8 r
8 L) b" a8 y$ R0 h* I* Q9 f
% l' C+ j* u8 d
; y% P) d; S! y' O1 F
) @! o% t3 H7 ^8 A# O
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2