飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ [4 E# P6 F# k/ W4 t: d- B
4 J/ {, j/ b; r% u
Mover.h
" u. |. m# k8 \- n4 ~
代码:
) a/ x& g/ d% f& S5 l
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
7 ]8 Q' F) T2 t% K: H, E
) j( f) Z+ z9 Y) R; g. F
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
* `( w* d! ^2 [# S8 a c
4 |( B' @7 }* D
然后你去mover.cpp添加
6 T: t: @5 J' i( M4 s% Z }
1 N7 x* [1 Z$ `4 }, v' b5 v
代码:
' d" K& H1 y$ V' k
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ o% C; O" w& Y; q# G# ?* Q0 I- b
{
+ H: P+ Q/ c& R6 w
#ifdef __WORLDSERVER
G$ {) x# n x4 B A- e0 K6 X7 o
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: x) i# s2 N2 q
MoverProp* pProp = GetProp();
! y) U. q) S# y+ n5 x) d
if( pProp )
% u$ M% U D1 c" b: {
{
. V }/ E% F( c
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
: G# ?; r" I9 d2 F& t" r
{
' q1 L v6 W* h4 A
AddChangeJob( nJob );
$ o9 y- v, C+ w8 ?* D5 d
}else{
) i3 E0 L4 E' u6 E/ `+ \: R
return;
) H9 ~0 }/ R7 M% s; U) {
}
8 u8 U1 O3 L$ G9 C. r3 S3 r
int nPoint = 0;
# }" m/ N% T$ s+ {/ M: W
if( m_nJob == JOB_MERCENARY )
& ?3 `2 g N# ^% J* J5 S9 g
nPoint += 40;
4 J0 m' B. j& |0 Y9 `+ W# u6 }
else if( m_nJob == JOB_ACROBAT )
9 c+ o6 P' i4 V9 S( j3 \
nPoint += 50;
0 y, i3 x9 @. Y
else if( m_nJob == JOB_ASSIST )
$ A s3 K! l; W3 a4 ^3 y
nPoint += 60;
) u9 K9 f) I# f
else if( m_nJob == JOB_MAGICIAN )
# M2 R/ D3 j# I; S4 c$ B- M
nPoint += 90;
( Y# [4 R* ~( f
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( O- h4 U6 F {7 A% a, E V
nPoint += 120;
3 e z8 ]# D3 X3 G- [% B/ Q) G
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) S2 l% K( f3 x) F
nPoint += 150;
0 H, S& {* O% A! X Y
else if( m_nJob == JOB_RINGMASTER )
+ }- v; G K6 ]5 H" C1 Y
nPoint += 160;
; r9 U$ h4 A- W' Y1 ]# r% {$ t
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& T: Y; y- R$ ]
nPoint += 180;
7 p7 Z6 A( n" t$ G3 X& [
else if( m_nJob == JOB_ELEMENTOR )
6 ?9 c. w: J4 [1 Z1 H3 ?& R
nPoint += 390;
$ X: q" o9 n; |
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 U& P3 O$ {) h/ s
nPoint += 120;
) M8 u& Z- h0 J. k6 D
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
. v) \8 s/ w4 a4 z! M
nPoint += 150;
5 J& V# U E& O+ W0 }2 h: S5 j
else if( nJob == JOB_FLORIST_HERO )
% ^5 Z1 V# I! A \$ A. r- A
nPoint += 160;
6 E4 ]5 _9 p9 O! ^2 X# {. C
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
* A! S% |" g! [7 H7 Y2 d
nPoint += 180;
& F. H7 `5 A. P' s! j6 d" a
else if( nJob == JOB_ELEMENTORLORD_HERO )
, N: P& A0 i) T6 l9 T: R0 a+ S/ A
nPoint += 390;
- @5 Z/ Y1 O6 j% G
% V" R) i( @3 G! I1 a H" g
AddSkillPoint( nPoint );
; |4 Q' F' }" X0 A" H& n5 Q
m_nLevel = nLevel;
+ ], T, E0 p% @; w
5 n: Y+ g( i# S* ]. }6 c9 `
SetJobLevel( nLevel, nJob );
. y( I% c; x3 ]0 E* h1 M) p
m_nDeathLevel = nLevel;
8 h# K% C9 L) z7 P9 X8 N2 x' e
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) S7 p3 T7 X5 [, M
if(IsMaster())
# t+ G' R! C) U* `) b0 o( c% f6 d
{
3 u! |/ A% t5 \- A: m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 b- I+ W2 y) n T8 i$ {; Y
if( nLevel > 59 && nLevel < 72 )
0 { k( H% b( ^! J0 v: [& M( n
dwTmpSkLevel = 1;
: W; h6 k: f% h$ P
else if( nLevel > 71 && nLevel < 84 )
1 b7 [7 O+ n& e" n, {- G5 K
dwTmpSkLevel = 2;
1 ?9 y$ W1 b7 p- X: ]2 r. Y
else if( nLevel > 83 && nLevel < 96 )
# M# D0 Q( U A5 G( z! ~
dwTmpSkLevel = 3;
7 i6 I4 m/ R4 w" S! L- r# `
else if( nLevel > 95 && nLevel < 108 )
' g" ~# q' r' i; T
dwTmpSkLevel = 4;
+ Q8 C0 M, r k$ d) _% z6 f3 g
else if( nLevel > 107 && nLevel < 120 )
, G, @! D- U+ P. }! d! q
dwTmpSkLevel = 5;
1 C( m! l1 O+ `5 Z" w- R
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 s# _# A3 ^) @1 Q! p
{
3 B0 a! g" a% ], n4 H
LPSKILL lpSkill = &(m_aJobSkill
);
3 A7 ~' j1 q; W1 R- T' d9 c/ d
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, p* v$ T- g" m* s% h5 u$ z
{
2 Q! D3 g( K% l& G/ O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ x% d) Q6 r& N- D3 i2 N1 T8 T$ e5 W
if( pSkillProp == NULL )
/ M+ x Q2 f% x" m' s* W6 ^
continue;
; |, _, u1 u4 v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) l$ F0 b) }& G; y+ l n4 q% t
continue;
, j" g5 b" i7 \( T& e1 Y% W
lpSkill->dwLevel = dwTmpSkLevel;
$ z9 v4 _# U/ S5 O2 |; j
}
6 k) {/ s' ^. [6 S) k, n
}
- O( O" m; k6 ?! |6 h
}
( @* L9 a* k, ]& y- N: p2 L
else if(IsHero())
/ {0 v1 ^+ O" L5 o V5 ]
{
6 h) Q/ j; D0 a' P' i
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* _; u2 x7 L! s+ q
{
. k, m. A, @2 V6 i4 _0 u: O
LPSKILL lpSkill = &(m_aJobSkill
);
% S# e0 @. e$ I* C1 r+ W
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 [, v7 h' z( J/ \* F7 b
{
4 W- U* s- _0 {8 r+ U
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 M, L' N1 t+ J% r
if( pSkillProp == NULL )
" O' ~4 |; M7 r" q. @1 E: I' \
continue;
: q/ P r( P: ~, U5 t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 t- c4 Z6 W( e# K# G: ?+ A
continue;
% V) x$ h1 d6 J
lpSkill->dwLevel = 5;
! X8 {8 F! D$ G; }7 i
}
0 F+ u) M$ r% @/ H) k8 _
}
1 Q) H% O" `! h3 F. }' n
}
, T+ X1 K5 [3 k' Z
else if(IsLegendHero())
, o! \ i2 B! z/ T F0 e) l- ~& T9 ]
{
, V5 E; F* |2 [# F9 R3 q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 x9 P/ H7 o; u( F7 A( [) B
{
: \" ^* E; \& C+ X
LPSKILL lpSkill = &(m_aJobSkill
);
1 A Q& S" u& E4 }
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: R i4 f+ ^/ W& v
{
* q# J3 C3 b3 w5 u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* W+ P7 _4 J. B
if( pSkillProp == NULL )
. e* w, r) W' B: d+ w; ~
continue;
6 S7 l0 v5 [* ?7 |5 K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# K9 v9 n' N7 x4 w9 O) Z' o! V3 G
continue;
" e* S1 Q! ]6 f2 W4 E
lpSkill->dwLevel = 5;
~4 v. Z1 ^& T' q5 w' ~# A2 S+ n
}
+ z+ ]' [; C' ]; f4 [/ F+ F
}
H+ X- A) g+ H3 x
}
# P+ M$ B$ R3 f
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 S x: _3 X# J; n. @; }# L
if( bGamma )
5 k9 q/ b* F' g; c {( W" L
{
6 ] I) ~7 M) _# E) t
m_nExp1 = 0;
2 {! W; B$ W6 i: C5 ^5 p
}
o% [. M! U. J* `' W
Z2 X/ ?8 a+ v; B
( (CUser*)this )->AddSetChangeJob( nJob );
2 H- \9 R) Q8 g6 }! j6 b
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# ^; l5 y' i3 f3 w0 y# x3 ^1 x) t
2 u6 p9 c5 V9 D1 k" K y9 y
! g3 A$ {9 B/ Y. f b% ^
#if __VER >= 11 // __SYS_PLAYER_DATA
! q, y4 {- _. U6 i3 \
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' s: g& d) Z9 w6 ^! w
#else // __SYS_PLAYER_DATA
. {; n) s5 {$ O4 J
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
4 X3 A; a7 j8 m0 D/ F
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# y+ I$ @3 ^$ N: `7 L4 p0 y4 B
if( m_idGuild != 0 )
4 k+ S8 B: d) b3 G2 E
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) F3 T+ ]: D6 S5 y: p- Y% }" K
#endif // __SYS_PLAYER_DATA
" i' i. c% G" ~3 _ }; G
SetHitPoint( GetMaxHitPoint() );
! s0 l6 L# u. a$ j7 C' {, q4 ?
SetManaPoint( GetMaxManaPoint() );
- x U3 G$ [- _. E5 L& N* q) Q- Q
SetFatiguePoint( GetMaxFatiguePoint() );
9 I4 j8 V9 x$ p& O8 m+ M
if( nJob >= 1 && nJob <= 4 )
! m# G9 X- d" b4 x; t5 L$ g2 ~3 F1 ^
{
& C, U0 v* G) m# a' g& ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' ^# P" a" M6 m- [3 u8 N
m_nRemainGP = 28;
9 Z2 A5 X! W' E2 V
}
& {) I! v0 D0 l( M5 s& L/ g. K1 E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 |- n0 J7 Y+ P$ T1 Z
{
3 t. v a8 B" W
m_nRemainGP = 118;
0 d% O" `) _1 {' Q: J$ x
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
8 c& H! O4 p( k! ?7 R
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; X4 M' x% o. Q* J) [
}
9 c% |+ E5 [* ?
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
, F [! G2 d8 V' C _7 {
{
# k! \( G) }- c% T' }( t
CItemElem itemelem;
+ }$ M* h. v G
itemelem.m_nItemNum = 1;
. s+ o' E z5 s; D- m, R
itemelem.m_bCharged = TRUE;
) Y. C: i+ j- H+ s# S
BYTE nID;
& h- o" \* U0 k5 B2 w' @+ o" ^' u
3 ?4 s8 S& g+ W5 l
if( nJob == JOB_MENTALIST_HERO )
( `, C1 j# U/ l% C8 ]; d8 q6 M% C
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 g% i( P- I, G8 ]: Y
if( nJob == JOB_FORCEMASTER_HERO )
; k& e3 R6 O7 P% G
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 I+ v! o* g% c
; R* X% s% u3 ] B
( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 ^9 J# d! O a1 p0 J+ i* _
}
6 ^, f% H; ]" ~9 K5 q, u, N
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. |0 j& p) z( j# u. r
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' k3 X7 Z# C( H5 U" ]0 n8 E6 k
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
I; s- r( y ?6 ~
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: `9 [ ^4 X" q1 F, m) a- n
( (CUser*)this )->AddTaskBar();*/
5 U# H% Q+ s v7 S I
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
+ N% h3 V6 a/ I- h6 z
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
% E+ h7 @# I3 ?" e
((CUser*)this)->CheckHonorStat();
0 v8 K; D+ a7 G5 K
((CUser*)this)->AddHonorListAck();
3 w: Q6 D% y# R
g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ _) k# @3 y9 x
#endif // __HONORABLE_TITLE // ′Tà?
% O" ?# T2 G# E
}
! |3 F6 i3 \, t8 F, o, [
#endif // __WORLDSERVER
) Z! y# L8 B- E) l8 q
}
7 {+ U3 J" N' |( g
6 L2 U& s: |# |* S& ^
然后你进入functextcmd.cpp并添加以下
$ N# I; W4 n. T$ k* X
8 F. G% }% p, p' a
代码:
' ^) z7 {% N$ h$ U* }- o x
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 Y6 _. g6 g4 S2 z' d
下面插入
$ B% K8 P/ A1 }" M
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) s6 m" }6 p; @0 j- K O1 {
! z. ]( D$ s! R8 ]& ^; |9 R
然后你去
6 n1 L4 A/ o# G2 s4 o5 m8 o9 y8 A; Q
# `3 u- g/ `6 n% E7 G7 {) Q7 B
代码:
4 H0 h- }3 M; } B$ E
代码
" U2 f8 i/ e* m* L: ]. W$ V: r H0 ]
BOOL TextCmd_ClearPropose( CScanner & s )
+ P) C7 `1 K, J! {5 c. i
{
# a$ Y1 E5 b, y$ C" ^
#ifdef __WORLDSERVER
( b. u. `+ b1 f6 i' K6 K k( i/ ?# I
CUser* pUser = (CUser*)s.dwValue;
. o+ _+ M- H( D# M; Q
g_dpDBClient.SendClearPropose();
1 l$ R! O5 f6 Z; m/ G A
#endif // __WORLDSERVER
0 k9 ]* L( y$ r6 V! s: P
return TRUE;
3 A, o0 O! { N3 E
}
+ C2 r& j( P$ y
下面插入
8 e9 `- U' N7 p" H
BOOL TextCmd_rebirth( CScanner& scanner )
2 S4 z& B+ a+ @9 A, I# W
{
! k. w8 Y, k8 Y; ?
#ifdef __WORLDSERVER
: ?5 I0 V+ j# I d1 T, r
CUser *pUser;
, f! @+ D# \$ j3 t
pUser = (CUser*)scanner.dwValue;
! W2 c: b6 @( B6 M. ]* _
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. c7 I5 k( x/ D" n0 L, s2 y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
U3 g3 L0 P. i) e
else
+ W/ \- s$ t# n+ B# c( F) ` L9 `
pUser->AddText("你还未达到重生条件!");
+ ^0 B: Z0 f+ z5 a
#endif
8 r* O8 @8 T/ l; ^' P4 p) B: `
return TRUE;
3 g# G5 f1 U/ U" w- c: j. o
}
( s7 e8 C* V! W7 C8 h* W3 k; Z- Y/ [
3 \9 {$ m3 x2 `
% ?' N( H! Q4 g6 j5 C
% ?# U+ x y' M+ s' J
, a# t* W8 q: S2 n# O2 D
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2