飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 B9 e \ W8 m/ ~' i/ |* H6 h) E+ D# o; A
# G3 Z/ K* X; Y$ ]; J; [, a' c
Mover.h
* A' Z0 X! Z. C; R3 _8 Y
代码:
; ` p; z6 g5 J
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
& Z$ f4 t1 v0 t/ C h6 a1 b6 l
2 o- ?4 V- n/ r" d% S6 v7 s
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
( B- e y6 I& D9 c' u: h
8 c; J! {1 s5 o2 z% [4 ]& h8 k
然后你去mover.cpp添加
0 V6 c; N# q& @9 C6 ]( V3 d0 L
* ^! C H2 `- s: r. u+ n
代码:
9 y1 c! F/ v( m. H* A
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 }# N% v- Y( u h- N/ _) g% }
{
- L, g" W j: [) C9 A
#ifdef __WORLDSERVER
; ^9 Q. x1 g# @
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 U- {* s( @! R. f+ ~! T" j# Q/ i; h
MoverProp* pProp = GetProp();
; U9 V$ p& f @$ Q
if( pProp )
$ l2 L8 \4 X/ U4 P8 k- i' Y. {# m
{
. M5 V( J) @# a, F0 k
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; ?& W4 Z) k3 i% V1 w) r- w, b) Q
{
' o a& K) g+ n# }9 R' h9 T
AddChangeJob( nJob );
8 P2 z' g" w+ f1 D5 V4 M
}else{
2 l! Y; K+ g' O1 y' S4 h' ]
return;
/ v* R1 ?8 ?: s
}
8 `. a8 z' d0 `% d" {
int nPoint = 0;
, P E4 p9 [7 s, q
if( m_nJob == JOB_MERCENARY )
$ M: J$ V3 R' o! k* g
nPoint += 40;
5 b0 U: q/ r, e$ n2 b/ C& T: R
else if( m_nJob == JOB_ACROBAT )
; G* M( ]* z3 M5 r0 A6 x# p
nPoint += 50;
+ m7 v4 P! y3 n6 Y
else if( m_nJob == JOB_ASSIST )
5 k2 g$ f: h j B+ C3 p7 }
nPoint += 60;
8 G) q/ j! M+ x
else if( m_nJob == JOB_MAGICIAN )
( ~) t1 O( j! |! m* F. o
nPoint += 90;
* i- ], v. p; P6 u. [* R' B2 _
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: |* H+ u! C6 O7 m4 b0 o$ [
nPoint += 120;
9 p% V$ F) ]# n, c6 j
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
2 F7 L# L7 e2 Z9 F
nPoint += 150;
; M( @( W2 q1 v0 x# z
else if( m_nJob == JOB_RINGMASTER )
5 P1 v$ C9 o T% Z0 v
nPoint += 160;
9 T, V5 t( y% c$ i$ P# z) O
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- A. C- q; g- F3 F, a& ^; }
nPoint += 180;
$ \' [% a7 e v; N; o$ J! u
else if( m_nJob == JOB_ELEMENTOR )
6 M+ H5 u, B. T6 m7 X4 w3 p# U
nPoint += 390;
. l8 e& F3 f( I ~% l
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( q! z. b9 m$ D/ b5 ?
nPoint += 120;
& U; |) _+ i1 k
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: J3 `. Q/ _6 F- l2 }% U. u
nPoint += 150;
3 a, b+ h& h1 m" X
else if( nJob == JOB_FLORIST_HERO )
; ^: L- W8 x; c! X9 T$ Q
nPoint += 160;
) H7 {& Y) a9 t/ P3 f, n" g9 U) f
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ D3 }, Y8 i9 g; C9 l/ \
nPoint += 180;
9 p6 ~* t& G1 s3 z$ s3 ?1 {
else if( nJob == JOB_ELEMENTORLORD_HERO )
# i3 W& Q0 H: ?. F
nPoint += 390;
. y/ {; Y8 |# Q/ t
1 P3 A6 \0 \9 F' Z! a
AddSkillPoint( nPoint );
( W$ i2 H) L$ t* L+ I; ]2 _+ {$ f& x I
m_nLevel = nLevel;
0 L2 L# U$ n$ y. A
9 j c# ~# |, c4 d4 s! T/ x. q
SetJobLevel( nLevel, nJob );
9 M- H0 R6 C# x$ v U4 B6 a7 V
m_nDeathLevel = nLevel;
8 G3 P% ]) G. p; R! s
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 {' ?9 j- C- y/ q" K9 R& @2 f x
if(IsMaster())
4 x1 @1 s/ l+ P1 V1 ]2 Y7 X3 Z
{
; [ V8 G+ J: y$ R
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ C( m4 t( e4 t7 p: J9 Q6 c
if( nLevel > 59 && nLevel < 72 )
4 p9 F1 E! O+ z7 B
dwTmpSkLevel = 1;
- k) b1 ?. s! ^. B
else if( nLevel > 71 && nLevel < 84 )
5 F: y$ y6 d; m+ q# E/ Q
dwTmpSkLevel = 2;
. F% X! G4 J ?5 R( d
else if( nLevel > 83 && nLevel < 96 )
9 B) G6 Y- q: T: \8 t
dwTmpSkLevel = 3;
+ j y( n: q/ x" {6 o3 f
else if( nLevel > 95 && nLevel < 108 )
' ?: b0 d3 a0 g* @* r; x
dwTmpSkLevel = 4;
( @& [6 O, d! \
else if( nLevel > 107 && nLevel < 120 )
+ j0 U' b6 K$ L: L* v* [
dwTmpSkLevel = 5;
* p6 V: U: F; A8 j. q5 T0 q& W
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% Z7 k/ C: _$ `4 w, L9 n
{
% m6 P! `8 |7 P7 u
LPSKILL lpSkill = &(m_aJobSkill
);
' t' k- {' _* q! T5 b3 N7 Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 c! @: Y5 O E/ h! H2 u
{
2 r" `# d8 C. d+ }6 s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
W8 P5 b9 V. [3 x( S
if( pSkillProp == NULL )
4 `5 h; L% Z+ V8 O
continue;
, b- z, `- C% D' J8 `# @: A: X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; H( b; \: b' T3 ]6 }; B
continue;
" g) H+ j7 X: Z* M: [4 Z9 U4 x
lpSkill->dwLevel = dwTmpSkLevel;
+ s' L7 K% ]0 w9 l7 x9 b" R s$ W/ N
}
7 j9 U4 ~5 t) l& d
}
# }* ^ w2 R) \& A3 G+ Z
}
. T9 c9 [/ g9 P, }, j6 {
else if(IsHero())
1 ]8 k5 {+ H0 o" a5 O6 l0 q
{
& O5 I) g& h: k( s3 d
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' D* g2 z) n3 L+ E: q) ^& x
{
/ r! v5 S; D- P, c) t* |9 S$ s
LPSKILL lpSkill = &(m_aJobSkill
);
0 x; z! i6 b9 P! T$ \5 u7 D
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 [# Y8 c$ q$ |/ `% s2 y
{
$ J+ L2 ?1 O4 z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; \: q* n4 J7 K, D: k
if( pSkillProp == NULL )
. c4 J3 U9 I3 r: q& _8 A3 a
continue;
8 }+ n8 a* p# s# }1 Q$ c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ @ B5 T: ?9 J, n4 E; z
continue;
! l V4 `1 m; f" G
lpSkill->dwLevel = 5;
* }. n/ ?$ [* Z
}
; _3 E7 o' x) O5 Q+ x# @
}
" Q7 z, v4 ?+ n
}
- P' J1 u2 q% x8 k
else if(IsLegendHero())
7 }1 S5 k8 L6 D7 p/ ?
{
2 L+ r, t4 |& G7 \8 W r) L, e
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( Z: o U; j& P! W3 a. h
{
* s- l B9 C- K6 ]+ v6 t0 L% |( i
LPSKILL lpSkill = &(m_aJobSkill
);
& o" f# K$ I& N1 l
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ {( ]- |' I9 j
{
& c: U6 X7 K7 a% U4 ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- S* J& C& B+ O1 \' n- }
if( pSkillProp == NULL )
2 I* E) O0 P2 h; G2 G' y' k6 E* [
continue;
+ R3 A$ p7 n4 {$ @5 l) a5 W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 w! U4 K8 G! L8 l
continue;
( m8 h& ^8 F8 O p* D
lpSkill->dwLevel = 5;
4 p/ k- f" _- F
}
3 | l: ~. w- E/ ^2 b
}
8 B. H. a4 U* Z E. v) z$ r
}
# Q$ B# I1 N' s. j2 ~( R0 K
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 {4 j& n) ?# f* q5 s
if( bGamma )
, \; t% Z: W- O5 X7 P7 X8 }
{
7 R5 l0 k7 I+ b, g7 c9 E1 p
m_nExp1 = 0;
7 g& `$ L6 q+ O" Q; D
}
& T1 t/ F$ o! c" e
( E) {8 [9 u$ \; p0 d3 m. u7 F& ^
( (CUser*)this )->AddSetChangeJob( nJob );
: R4 s; `0 g% K; I5 X5 g
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 E* s# d/ l2 k7 ^) j1 h) N9 u: |
7 u: D& m9 B2 _ u) g, W* J1 k3 K
5 l! A7 L* r! x6 M8 u! A/ A
#if __VER >= 11 // __SYS_PLAYER_DATA
/ V: ?5 g8 l0 s8 f5 F0 h! H+ Y
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& t. F& l" G$ ?# l6 J- w7 T
#else // __SYS_PLAYER_DATA
4 H) U* U4 @' Z# G8 B
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 O- ]% z* E3 z* x5 q/ |
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: a/ V9 {# M' `6 z7 j
if( m_idGuild != 0 )
6 b; Y/ h3 D! H: s3 H
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) L( [0 d- g6 _& f4 E
#endif // __SYS_PLAYER_DATA
1 O. g0 {& o/ b+ G
SetHitPoint( GetMaxHitPoint() );
6 S$ F [3 j. K% N0 U
SetManaPoint( GetMaxManaPoint() );
R% Q( K& F$ ?
SetFatiguePoint( GetMaxFatiguePoint() );
5 `" b9 l* \5 q( Q
if( nJob >= 1 && nJob <= 4 )
& ~* D4 b( z+ g% ~* p5 Q2 V
{
, L4 }, W9 S8 J+ X
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! {" q. T% N: @3 f
m_nRemainGP = 28;
& i( }4 X5 {+ c4 s3 k: N
}
/ t, @- C/ p9 X
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
, B/ d) \2 N* f5 x) j# Q
{
; ]4 R5 l8 X- [3 l; {
m_nRemainGP = 118;
+ z @ X& W' e' c- }7 X6 u
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
e6 s8 f8 G* z# Q# F: u, n2 l
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ G# r8 q* I) V* d
}
4 v+ {# {& m3 }9 A" k! D2 M
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 r% C+ z V4 Y
{
3 P7 Y! K" W" H# t7 V8 K
CItemElem itemelem;
7 p( q8 n$ }( n% e. ~
itemelem.m_nItemNum = 1;
. N' N4 M! J- S% }. b3 d
itemelem.m_bCharged = TRUE;
$ S/ t* T4 S- Z% r4 C- z. z
BYTE nID;
9 h" [6 i3 U7 v8 j8 _8 S
7 b R: T( `1 I( B1 `" g( G+ B" F
if( nJob == JOB_MENTALIST_HERO )
% Y+ b0 I5 ^1 y! h1 Y% ]$ p% x% S
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* l1 b' Z: M o
if( nJob == JOB_FORCEMASTER_HERO )
8 @. Y( t: I" k2 s
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
3 I& @6 B% Z2 a, c0 z1 ^1 e' z0 K4 r# y
0 o" M( c/ H& M! Y2 \
( ( CUser*)this)->CreateItem( &itemelem, &nID );
2 i d% M5 ]* U) m* t4 J! Z9 @
}
* @2 J8 S7 f) R' E; Y
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 M8 g# T5 a, c( O' n$ ~
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
$ E7 x+ W% M% E7 w* e! }1 Z
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' z: J7 p# q3 N0 h. N- N
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ z( a, `2 ^" D: E
( (CUser*)this )->AddTaskBar();*/
7 z/ |5 B* t+ N$ b+ Z$ k0 j; C
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 p9 x- S" |* v6 ^0 L. U$ v
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
. G |. d. b6 C/ N: J
((CUser*)this)->CheckHonorStat();
0 O$ [$ ]% a. m O8 r1 M8 {
((CUser*)this)->AddHonorListAck();
1 W8 ]" u* U5 B
g_UserMng.AddHonorTitleChange( this, m_nHonor);
7 ^) }* l3 G( X4 b! C
#endif // __HONORABLE_TITLE // ′Tà?
7 j2 B6 g" d3 t" q/ l" W# a
}
/ @5 H) ?6 o4 b! [4 |% ]1 Z& ?
#endif // __WORLDSERVER
) p: J* |/ E+ X0 U7 i) t
}
- w7 B. s. r% X D
. c5 U5 j" R( J" n2 ]9 p
然后你进入functextcmd.cpp并添加以下
. R' F* |& A8 T3 y8 ?9 E1 |
" }% }" a3 M7 K( ]
代码:
0 H/ y9 u: O# z6 d5 v4 Y" K1 V
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
) V. j6 x9 D& E2 N3 a& p# b
下面插入
: s( O3 _7 T5 _. @1 \6 s
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 P) ]' g1 F9 G% j( s5 I
( q2 Y" M. j3 I/ t# u9 U% d. c
然后你去
+ P; V* \( R1 J/ |5 w, l1 I
7 p. A/ G* N8 c& d; G* Z* _
代码:
$ V3 t. B! H8 R/ y" y% _
代码
7 r4 b& |# A S8 ?8 y
BOOL TextCmd_ClearPropose( CScanner & s )
+ `$ M L1 j$ l* G% q8 g% p4 x
{
8 R* y( Y% j o! C, W# ?2 }7 ]; _
#ifdef __WORLDSERVER
, M9 l& g6 R$ z6 S* G& O" I1 P* ^
CUser* pUser = (CUser*)s.dwValue;
6 r8 Z+ E6 \% T3 p( L3 ~; I
g_dpDBClient.SendClearPropose();
3 k) s4 b/ A0 d' ]
#endif // __WORLDSERVER
1 N3 W: g* B6 [9 v( \
return TRUE;
5 {# A3 b/ l( x: @: `! d5 k
}
" O7 U3 p& c1 _" Z
下面插入
9 O3 @1 q/ U z8 Z9 J
BOOL TextCmd_rebirth( CScanner& scanner )
$ s: D, O% z" r7 L+ |
{
8 @+ B* D- f, \' M
#ifdef __WORLDSERVER
. h' T6 Y( b! s. I6 ]* ^
CUser *pUser;
u+ a! H) G0 k& [: w5 r; m' L w
pUser = (CUser*)scanner.dwValue;
; ]" Y0 g7 ~ c: ^7 h( Z- d1 l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 m$ Z& L/ S! D, q2 q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 l6 Y5 r1 G3 U) g& f
else
7 W/ p8 {- @# v$ h1 \: P2 W6 u
pUser->AddText("你还未达到重生条件!");
- E( h2 G5 Q2 _0 h- q) }
#endif
) a8 O) n9 e& @- @% K
return TRUE;
& t8 R; I$ c/ t8 k" v, T5 ?5 o
}
* W7 @7 Y$ x1 [" S |
+ u% @* Y/ b$ U5 S; K
$ ?! a' i/ F" @( Q6 b: ^
8 f. k$ G6 ^8 D- }
5 r7 w1 Q( k8 `7 A+ Q
欢迎光临 飞飞世界论坛 (http://ffwold.com/)
Powered by Discuz! X3.2