飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
( @$ U" _1 ^+ C- N5 E$ m- ~/ t: r
& ^$ D! ^2 ] y3 U
Mover.h
6 Z# H( G2 X2 U6 ?2 P4 |
代码:
$ E% m7 l' r3 L. p: T w1 p
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
5 H9 a9 l4 D, ^! b' `, k- h5 j* d
" M h p8 B+ x; n
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 J1 W+ u0 v4 X# x2 S" G& {0 ~& R3 s
6 V, H( C8 s4 T. a0 ]( s
然后你去mover.cpp添加
& m0 M( D6 I+ J8 j/ E
8 y2 A- ]2 h1 o, n! Y
代码:
+ y' M6 K) N2 F8 ]5 C
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
. B/ F8 h1 `& H, L& L. n
{
( H# m/ O( T! ]" F* q! g% e
#ifdef __WORLDSERVER
- H1 G. Y. K* c: X8 S
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, l3 x( P5 J$ }- I
MoverProp* pProp = GetProp();
( N' l) a/ {$ l. K& }
if( pProp )
4 b. B' g/ K4 ]" O+ c
{
( { c$ O3 J3 W) ?" H
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
5 ?# v& z; }/ c( I3 t
{
8 {; O& p9 x0 _
AddChangeJob( nJob );
2 C& ]8 T6 [8 R
}else{
- W8 Q p: x& ]% z. O: W
return;
( J1 o$ W2 K8 m' ?8 Q; H& M2 d
}
0 P2 w7 u. w6 y8 W
int nPoint = 0;
. m8 A8 Z$ X) j# F$ A6 L
if( m_nJob == JOB_MERCENARY )
5 R' l! B5 H6 l0 e. h$ E8 E" Y n
nPoint += 40;
$ H4 U8 a f# p. P* a% C9 S" }! W
else if( m_nJob == JOB_ACROBAT )
/ |, B; V8 E, V! w$ H
nPoint += 50;
" o; Z y; I- Q( y' L- H
else if( m_nJob == JOB_ASSIST )
% s# ^3 U% j( ?
nPoint += 60;
) O: ?$ d/ H3 Y( {7 j3 p _
else if( m_nJob == JOB_MAGICIAN )
/ f& u0 @- h) s& x% s0 _6 t. r! q2 _3 d
nPoint += 90;
# @. u8 F$ e3 ^4 G7 w6 V2 h
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
5 y- U5 k6 D5 G8 c- O* v7 o- T3 a
nPoint += 120;
7 k! G6 X A, T- O* v
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) k0 D% q* n& A# t, M
nPoint += 150;
7 a7 x/ p1 O& ^4 l2 G' u
else if( m_nJob == JOB_RINGMASTER )
$ C* }# L3 s, }4 D9 _
nPoint += 160;
) u! m+ h' P+ ~3 b: C& ?; i5 z/ e
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) @. D: g' l& u3 T! _
nPoint += 180;
4 R+ D6 e; ?( @
else if( m_nJob == JOB_ELEMENTOR )
# | t! l0 V+ j
nPoint += 390;
& w7 B' ~9 x5 H& \* ?+ K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* c2 c3 M- V5 Q! T# ]* F
nPoint += 120;
X' B( t5 m. L& L, s
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 u3 T# q: E" s) v4 U
nPoint += 150;
\7 p0 c% u* D. D; U) B# R
else if( nJob == JOB_FLORIST_HERO )
7 @# F. o8 M+ c" V& X
nPoint += 160;
3 n* G+ e9 c9 Y8 k4 d7 \
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 `, @( [9 W7 G) `" f! T9 Y$ x
nPoint += 180;
S+ J$ @ Y8 }4 p+ U4 F- w& Z
else if( nJob == JOB_ELEMENTORLORD_HERO )
6 P, n5 |; f: I' {# ~; o5 u: A, h0 n
nPoint += 390;
# w6 @3 Z1 t# h& a# Q
, M9 ?+ H% A q8 V1 Q7 C1 ?5 {
AddSkillPoint( nPoint );
. _" m2 {* Y; h1 a! K
m_nLevel = nLevel;
; C$ X& R! v6 ?; {/ C8 M: ~5 W% p2 ^
8 J7 j; u& i3 k B+ P; q
SetJobLevel( nLevel, nJob );
" z% Y+ q: L* x! {: g
m_nDeathLevel = nLevel;
7 c; F% G7 x5 U0 N8 L O
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- g9 T/ R% K& }
if(IsMaster())
" R7 [3 u& N% v7 T( k9 ^
{
# T. V" n/ C' f6 J+ m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ g- p) s& ]1 C. {1 d
if( nLevel > 59 && nLevel < 72 )
" f2 f# N% t! G" L5 b# \ ] ?
dwTmpSkLevel = 1;
, h2 q R: R2 N X
else if( nLevel > 71 && nLevel < 84 )
# G8 C; E; h7 x5 J2 h7 j, e6 Z' Z; i
dwTmpSkLevel = 2;
* _' \3 r5 w. D: f! z% A" E
else if( nLevel > 83 && nLevel < 96 )
- m2 B" t2 R4 L7 O5 G+ v
dwTmpSkLevel = 3;
" j# X+ ]: [( _/ \# P$ Y# X/ E
else if( nLevel > 95 && nLevel < 108 )
8 D. S9 I& o7 w" X; X0 p
dwTmpSkLevel = 4;
# K8 f9 g4 m4 a; r3 }: C
else if( nLevel > 107 && nLevel < 120 )
( Y% Y' W+ \$ _
dwTmpSkLevel = 5;
" u0 ^6 A3 M' a2 g4 ~9 r. G5 i$ n' x4 ^
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! P: o5 j: K6 l
{
+ H* a( m$ K- W- G
LPSKILL lpSkill = &(m_aJobSkill
);
- |) e7 Y/ u/ w/ s! D0 c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% {6 ~0 O6 Y+ Z l, ~5 a4 G
{
; Y0 i% Q7 f: b) C% @6 j5 I: n- z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* T. U4 K9 B. Z3 O% b
if( pSkillProp == NULL )
! a3 a3 w+ J4 j% ?$ S4 p5 M( {
continue;
. U( ?/ q; X F3 R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( G' ~' X2 R- m- g: [
continue;
3 G- e2 B- Y% r2 J% y6 Y3 d
lpSkill->dwLevel = dwTmpSkLevel;
8 L+ V* `: F$ g! h. \
}
6 y; A: X$ [% ?. V
}
; Y# R/ }$ X/ ~8 E
}
1 o$ r' b3 {- Z/ {
else if(IsHero())
. B# j/ p( m2 p( t$ a; @* t
{
: s3 W% Y, G# `! H; i. a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 R4 M0 E- _: H3 v& y, v- s
{
1 z3 s7 i: x! Q6 m
LPSKILL lpSkill = &(m_aJobSkill
);
& j# m+ ]1 a, T3 N) T# r( n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' i( z- q$ I, g' ?) J- t- d
{
6 ?' O8 f* p) [9 |9 r5 o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! a7 f! l# J9 @6 M$ n# {) h
if( pSkillProp == NULL )
# N. t$ B. d# r# N- k9 B
continue;
6 r& F% z* ^; e( O# t: H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& P' B7 f* D" ?( S6 Q8 j4 T) |( e
continue;
) N& m" N! R, [7 c+ Q2 H' r+ i
lpSkill->dwLevel = 5;
! q; G! ?, ~4 q
}
& |0 ]6 |: V1 F9 u4 N. _4 H
}
6 u! s0 Q; z+ @' O+ I [. ~
}
# d( E/ G; f. w* k
else if(IsLegendHero())
4 |/ ]+ ]5 [' B. U9 |5 z( y5 U
{
& a- Y; V7 m% L. X
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ Y k Y" v; w v' [* M
{
, w; i1 E! y( L E. }
LPSKILL lpSkill = &(m_aJobSkill
);
. T6 _/ Y+ V# l: k
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 P3 u( W3 y4 `. T5 {
{
4 x9 V n( }: _; t5 Z* d: Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 [7 \& W. |% X: d
if( pSkillProp == NULL )
( |; T# _6 g2 c8 {( q8 F
continue;
" l) \) i! H8 n; P3 Z) Y+ j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
t# X; e5 R4 `/ c' E ]
continue;
5 ?5 N1 X# z8 N
lpSkill->dwLevel = 5;
5 e0 D5 v9 t: [3 }
}
0 A6 k t' Z2 V) w; _" }
}
; B7 `& x: e+ n" n9 w
}
, j# H9 h$ Q1 L! |: t2 a
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' g: k/ n; X" X6 M0 z, d
if( bGamma )
' K7 C0 P) |6 \
{
( d# X- ]0 ^6 ^ W5 ]- |5 r
m_nExp1 = 0;
5 l6 T6 V& K% G# L3 n l
}
; p W% j4 V5 Z' d
" v0 a5 l7 M9 G3 _, S
( (CUser*)this )->AddSetChangeJob( nJob );
$ I% H" x: P: q/ ~0 d; p1 F* t
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 E. z6 n7 J% [) o( j
. t& S+ l: X! _8 M; H _: W
) Y9 ]. K+ c. D4 E( h1 Y, c2 x' k
#if __VER >= 11 // __SYS_PLAYER_DATA
/ c+ \7 b' Q; N& |
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ @/ _( X0 t# a' a
#else // __SYS_PLAYER_DATA
/ ~# o- n- r# V. Y2 c# Y) m
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 q. `$ J: |7 u9 s
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, u& F+ X1 U* h. n8 ^' [2 _- A
if( m_idGuild != 0 )
, F1 \% M: p8 `. E9 i4 E, s
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 {/ u5 i: D/ y
#endif // __SYS_PLAYER_DATA
4 a) ?& \/ G6 w* f
SetHitPoint( GetMaxHitPoint() );
, Q2 O9 M8 Q+ c" h3 O, v
SetManaPoint( GetMaxManaPoint() );
' c% ?5 v! A! U! D
SetFatiguePoint( GetMaxFatiguePoint() );
; d- {5 L% _8 z w3 c/ M( n5 [
if( nJob >= 1 && nJob <= 4 )
' N7 A& R9 g7 r& E, N4 h& n
{
3 \, H9 P {# J$ B, A8 D" i
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# Q% W N7 F! I1 F/ f J& p' v
m_nRemainGP = 28;
9 U7 [ T+ ]' G X, P
}
/ _+ ?( w- N" D9 A2 Y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" f Y3 F+ G5 d4 y1 `
{
) ]6 m: R4 r, A" D# y4 B
m_nRemainGP = 118;
! g( t) p: O8 Y) y( U* i
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: P4 [) i! W7 A/ J$ D5 @& N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% ], \! V& B1 N. c0 x7 G, L
}
" H; p9 V. ?2 M
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) ]+ f/ ]: m5 m2 @8 w+ S3 o8 u0 s
{
9 O9 q& e4 P& ~
CItemElem itemelem;
7 C$ e& Z6 o: _* N/ }4 [
itemelem.m_nItemNum = 1;
0 @; C; R! z3 [- N7 O8 c% t, C
itemelem.m_bCharged = TRUE;
: a |; D; z1 A! |, i& X4 d. C
BYTE nID;
( y N# \. Y! L- g; b8 I" ?0 L8 }4 i9 s
3 ?% ]$ v* A. r4 y4 V6 ?
if( nJob == JOB_MENTALIST_HERO )
/ d8 z5 M( l3 G
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
% w x; t9 O" ^+ w) u& X
if( nJob == JOB_FORCEMASTER_HERO )
9 f, T" D2 A: R5 @+ C; F( Q0 _
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# ^8 W7 H9 h# H R, }' p/ `3 Q
1 a. B" E. @ @( ]
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 }. O( z* t; q9 J7 u( }. g
}
. N: D; `2 f% r
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) d: N1 \' y8 x' D
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& y7 o: i" M7 u/ X3 e0 i! r
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
h, w' g( _0 Y6 |
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
9 ^! ` x" V M; r0 S
( (CUser*)this )->AddTaskBar();*/
. l" F' z6 @- R
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- O% G2 W% \% F) m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- \; u& w6 a! `/ e2 T3 Q Q
((CUser*)this)->CheckHonorStat();
% z' _; c; N6 M1 n
((CUser*)this)->AddHonorListAck();
3 r$ f# v5 K# R: H* J9 b
g_UserMng.AddHonorTitleChange( this, m_nHonor);
, T" Y! q6 I4 Q2 ?. l
#endif // __HONORABLE_TITLE // ′Tà?
$ F+ W3 P) l p
}
' ~' z1 L% H! Z; P$ S
#endif // __WORLDSERVER
0 F& ?) W) x8 V( M# s# K
}
4 }# B% {. Y' l3 H0 |
. ]( ~2 s. u Z+ U9 K
然后你进入functextcmd.cpp并添加以下
& n3 h, g# N' z
; j9 R) R }6 c5 Y5 J0 r( o0 B
代码:
/ o1 u( T4 D+ z/ O3 f; Y2 f; G( R
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
) u& Z x) G; |% P6 Z3 a9 @
下面插入
) F2 s* R6 \% l$ R/ K J
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
( y4 r6 \! c9 e. a d
. ~7 D( m/ c: F% I
然后你去
( Z6 o" r# `: ^/ {0 a( O
4 v) T+ E7 g2 {# }) D* n
代码:
" Z/ D# T& L! [- z1 Z9 W1 C6 n2 d
代码
# c& H" U9 w8 d" N- G! \( g
BOOL TextCmd_ClearPropose( CScanner & s )
0 r: c. c' I" K1 D9 Q E- L2 O
{
% ?9 M* E$ l: v% ~& g: }
#ifdef __WORLDSERVER
8 D5 s" b/ J+ K6 b3 F
CUser* pUser = (CUser*)s.dwValue;
' }; J6 h3 z B- p! B6 ^, y" o3 C/ X
g_dpDBClient.SendClearPropose();
6 G8 y& ?2 v4 q3 P; H1 p
#endif // __WORLDSERVER
& I# O! \4 L0 k
return TRUE;
2 d C* ]& k+ k9 Y9 c8 z
}
# _+ f: X. E: [& Z0 q Q! U
下面插入
, W) r% N5 ^) [$ F1 }& S
BOOL TextCmd_rebirth( CScanner& scanner )
( y R6 V: F! Q5 }
{
1 y. I& o2 E% ]; w' q: X
#ifdef __WORLDSERVER
* V" m% X/ F6 ?' i1 q9 ~
CUser *pUser;
. F) m6 W" D3 u& k% i- p
pUser = (CUser*)scanner.dwValue;
% Q$ x1 d. d; h b
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& i" [# V7 ]3 G- w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 j3 C/ Q) W( C. T9 r/ D
else
i/ B/ T. \& C8 o4 P
pUser->AddText("你还未达到重生条件!");
3 `- p& u) g, ~" w8 {
#endif
! s$ q+ T3 E$ ]' c' ]9 r0 F
return TRUE;
5 H8 u# ^2 e( g' C
}
" I0 G' n: b& r: N4 b* I
0 G4 M% m* X2 e- ]# {
6 n; _" z" T% r" t, }" S
* x( n2 M! f4 A- R- s
9 _, l: ?& d" B ?* I7 S8 b: P
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2