飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ n7 H4 q5 z( T! q" j
3 [& A% Z3 r2 q, l: n, J7 o
Mover.h
$ J" i( ?* F6 `* Q3 R
代码:
" t- z% c) t0 C: k$ U# A& L1 c
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
3 S4 N! P/ @! Z3 w+ h) f" E" l
. V" F+ C1 d4 N" \, h' P, n
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 S& r# z6 ~! C7 c- M% x
* S' |5 o+ k5 z$ E0 c' Y3 L4 Y
然后你去mover.cpp添加
& O1 i( l2 [9 P$ A" i
- G$ y0 J9 N# j/ e3 [
代码:
) F! S8 S4 K! C- D- l I
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" G6 l/ m. e$ g; B
{
- ?) ~, m0 C& z8 r, F+ @* o5 G2 c
#ifdef __WORLDSERVER
$ Y/ n* `* _/ t2 C; a
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ g' j( W3 J# B2 P# X/ D. b d6 Y
MoverProp* pProp = GetProp();
& u! f% A- T* C4 u* N7 e
if( pProp )
9 s; Z9 h ]6 Q& @) K9 v; {+ M+ l
{
i8 z" u! j6 V, t- [7 z
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 r E+ {; `) o1 p& @* h
{
; D: K# I9 A9 |$ p% }/ P' F
AddChangeJob( nJob );
3 n; [/ c- C! \0 j6 I( K$ f/ y
}else{
4 j6 K) b, [3 \$ L+ l; a
return;
: V; j' W! X& r; {
}
5 D% q+ R1 {$ U+ W
int nPoint = 0;
B* d; F! e8 {( W
if( m_nJob == JOB_MERCENARY )
& e* Z" W4 N. y9 Q, E
nPoint += 40;
1 x% o7 U, @* X& P ^! a0 c* A
else if( m_nJob == JOB_ACROBAT )
4 i/ M( k, V2 T1 }4 }2 C* M
nPoint += 50;
. B: _! h: q: H$ e
else if( m_nJob == JOB_ASSIST )
# S4 W/ E$ E8 O9 l
nPoint += 60;
9 ~+ i( c/ {4 b1 P
else if( m_nJob == JOB_MAGICIAN )
) K" s6 `( X9 N! x, Z
nPoint += 90;
% ]2 ^- V- C2 e8 ]& U
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 O$ U# }- U: P8 L
nPoint += 120;
8 H/ p k& ^6 m7 a' i/ P g0 p
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 L- B5 \9 G* f( `
nPoint += 150;
. M. F& g9 \# F+ C9 D; |
else if( m_nJob == JOB_RINGMASTER )
! {; j, e* @- R3 u$ J
nPoint += 160;
" b0 c( l2 N* O6 k8 m
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
! f3 U: B) n$ J' J0 y3 ~, a
nPoint += 180;
# \6 ?$ `" K4 Q+ @
else if( m_nJob == JOB_ELEMENTOR )
! A% g, q) F2 b' [3 j; n+ t
nPoint += 390;
9 r6 K/ [7 N, y3 z2 N
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ J& r5 m6 j: R, {% f+ V
nPoint += 120;
+ x% c5 T5 q- G- Q! r
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! w4 O' i% n" N
nPoint += 150;
2 t. H; ~! G! t0 a J
else if( nJob == JOB_FLORIST_HERO )
' Q( j, U3 N: J1 P! `+ I, V
nPoint += 160;
$ [- d2 C; J9 X! \- s. m
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
* g+ Q" c! _$ c
nPoint += 180;
) ^% X% `+ h0 J @
else if( nJob == JOB_ELEMENTORLORD_HERO )
" ~" p3 M) Q" {1 J
nPoint += 390;
8 a: O6 }1 Q0 d [
. P' J( ^7 U% ^* V/ o- g. N
AddSkillPoint( nPoint );
: n" w4 r: e7 t( U5 n
m_nLevel = nLevel;
3 [- J: S$ m6 L, D' F& O: ~
* d/ } _2 V: x* \
SetJobLevel( nLevel, nJob );
: c3 U/ R8 q. x- z5 j' b. D
m_nDeathLevel = nLevel;
( U+ m, }/ u) m( v1 E5 l! {
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& E" p0 B" y/ O+ {6 }( z" i' B4 A
if(IsMaster())
+ Y0 x' ]+ @4 H9 @ W
{
. D3 B. |9 K$ Z, h, r$ g
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 q# C- S7 x3 a" |4 B# Z
if( nLevel > 59 && nLevel < 72 )
4 |. Y4 X/ y# m$ @# c
dwTmpSkLevel = 1;
4 M, @, B9 Q! f" D/ j2 p! X
else if( nLevel > 71 && nLevel < 84 )
|" X8 a/ p. }4 G5 ]) L6 G: X
dwTmpSkLevel = 2;
' X0 Y0 A7 B/ L8 w- x5 M: i1 V' N
else if( nLevel > 83 && nLevel < 96 )
$ u, P2 } ~. H( ]2 j
dwTmpSkLevel = 3;
& \7 H' b( r% V* B
else if( nLevel > 95 && nLevel < 108 )
" z# ]9 y/ `# w3 ], N
dwTmpSkLevel = 4;
}1 D" y s. Y. f6 a0 R
else if( nLevel > 107 && nLevel < 120 )
# _+ y; k) ^; W0 ?/ S2 |! W1 ^
dwTmpSkLevel = 5;
, r7 c2 d' l5 x3 E1 i4 w
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! Q4 j5 p' o8 x& l
{
1 u5 w/ i9 n) D: x' ^
LPSKILL lpSkill = &(m_aJobSkill
);
9 m H. G; w- w: y" R" R. @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
q+ b9 F' q& Y; j/ o! }5 R
{
) h' T0 ~6 ]0 Z) a" K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. `" Z& B$ }& ?
if( pSkillProp == NULL )
9 U0 n& b3 `/ X; J& Q" m6 @
continue;
9 V( a n! C+ O* }" K( b: B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; u, d: m$ F/ F8 o8 @9 }2 e2 i
continue;
7 K- g# M$ F. [" h) R7 u# N+ b& x
lpSkill->dwLevel = dwTmpSkLevel;
3 Y# `4 @$ [ e( \3 Z- j
}
( @) k1 T7 h+ H5 }9 ~; E# _! {
}
5 v6 _% Z% Y* |1 [
}
. m0 X' [" ?) @5 O5 o8 h
else if(IsHero())
3 M5 Q7 ]; p. P' Y7 p. x* G
{
8 R: u. I! c* Q# R2 E& k* }: z( f
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 ]$ J; ~. n6 R0 w9 P1 T) M% q" M
{
& e- J# J/ q5 s
LPSKILL lpSkill = &(m_aJobSkill
);
# U0 [: L8 y8 ?% w$ L6 v
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) T& W/ }8 B, A! |- F6 H" f
{
- |( N7 E' L/ `+ b7 m' U
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 c! W. X& `8 G- v) T
if( pSkillProp == NULL )
T3 {) b3 U. C7 p8 i7 f, w
continue;
" j Q. f+ S( _$ u$ a3 p5 I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 h. H* c, I0 E5 K
continue;
' i( s" n9 ^1 ]5 M
lpSkill->dwLevel = 5;
, t3 Y0 p& D/ p5 m; ^3 }
}
8 `! S: \" T# ~7 C. x
}
+ q' J7 t# H( L- q
}
4 E1 j: q( A4 k
else if(IsLegendHero())
/ p- C. v1 i# @% q% C
{
0 [2 G7 V2 |" F+ N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, u+ T' v, V. H7 b% K
{
% p6 }" Z8 k I
LPSKILL lpSkill = &(m_aJobSkill
);
% ?' Q* Q( B! F2 I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' U* M8 s! B! H# w- A4 U e# G* O) W
{
4 q7 r- Q( D% ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# d) N6 C9 D# g( K5 g# \
if( pSkillProp == NULL )
: P) S6 x0 B. R7 Z, [
continue;
7 b4 f+ z0 z6 y4 K4 A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
o9 b+ s6 E+ n% y S
continue;
- b- h+ A7 f4 `; n' Y3 `
lpSkill->dwLevel = 5;
3 e2 L8 b# [; J7 _9 p
}
4 ?3 Y. I% j* o9 |
}
' y# p+ R" N8 z, {- g
}
o- T% }% b2 a F6 r0 H5 J" L
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' g E4 h$ f# L, ?7 X
if( bGamma )
$ W& p& G3 p) m. L- V6 i
{
* B" V, { s8 O
m_nExp1 = 0;
) c8 n7 L& @; [0 j0 D
}
# w) O' O6 s$ j, G6 W: }( Q4 E
" k' E( B d) M. m9 `' |: A- {
( (CUser*)this )->AddSetChangeJob( nJob );
9 Q: m+ A/ M( v( q/ i- Q1 p
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) R7 \2 F0 @! C5 b
7 ]8 L: ^9 B' i( i2 i W
4 | z2 g3 K- L5 j
#if __VER >= 11 // __SYS_PLAYER_DATA
K) E/ e7 c5 X2 P4 i% h5 `7 }
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- f! y1 ^/ d7 V. _7 J- E2 p
#else // __SYS_PLAYER_DATA
; l4 g, b+ ~! t& h% t' o
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 h5 J, {* V$ g+ B" l
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
7 Y& S8 a S6 T/ B) ^. G6 p
if( m_idGuild != 0 )
( y4 r$ p. \' v9 q4 g1 B
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) L0 S/ ?# ?: y
#endif // __SYS_PLAYER_DATA
* ^# I' {6 x6 r9 b
SetHitPoint( GetMaxHitPoint() );
3 @% k. z$ Y3 w9 v/ H
SetManaPoint( GetMaxManaPoint() );
7 ?" J: \! j3 \8 b
SetFatiguePoint( GetMaxFatiguePoint() );
) s8 r' }" ^8 W2 A; f3 m5 U) J( i
if( nJob >= 1 && nJob <= 4 )
8 I1 L' e+ Q; r/ t" S
{
6 j7 B$ Q' E' M5 @! \
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; ~+ J3 s6 I2 J* \+ M/ ~1 @
m_nRemainGP = 28;
. O1 C9 ?' j) l& u+ @: Y7 C h
}
* s7 `/ o7 g1 h6 V9 U
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
7 ^' w& c1 M+ @, K. x! D: ^' F
{
' Y* u* c* D7 d& \% i" G: l
m_nRemainGP = 118;
) \9 C0 K7 X7 a* D1 q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 n6 {( A2 K6 a
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ B8 V( o$ R. Z6 {; B, {, ~
}
3 Y) }- A- V$ ^/ Z5 x4 o
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ O3 I; g* N; I/ u3 l ]
{
) E5 f( q1 }$ n/ W6 u) Y
CItemElem itemelem;
4 w( Q: M; b9 `' j2 O# ]2 p0 q
itemelem.m_nItemNum = 1;
2 u. w4 O: b8 I7 v2 q8 _) W
itemelem.m_bCharged = TRUE;
6 s+ E' J: U6 g* |
BYTE nID;
( H- ]; c# p9 N# l' f8 @/ u8 J
; o4 Z8 B0 ]+ N" q; Y. t
if( nJob == JOB_MENTALIST_HERO )
5 W$ g N. N/ [- V$ g4 {
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
3 b7 p. J: S- g& P
if( nJob == JOB_FORCEMASTER_HERO )
/ X) T2 Z3 \ A# K1 f+ B0 J& l3 ]: u
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( J- e5 W& I3 D
# P6 `9 R% d5 t7 s) w+ I
( ( CUser*)this)->CreateItem( &itemelem, &nID );
2 {2 p9 p+ r7 p% |
}
1 p2 ~8 D6 b1 X
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 ~$ V) q4 \+ K4 b3 m9 w: \
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, M' ^! R. U, d6 f3 |6 u
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 N3 \6 f/ `% \- U. a" ]! ?
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
, `: Q8 U9 i/ U% M7 K, K
( (CUser*)this )->AddTaskBar();*/
& N& S; X6 B/ k* u2 Q0 B! N
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ B1 J# @ K# \
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
r4 k8 F6 I% F, t! y
((CUser*)this)->CheckHonorStat();
, E6 g6 B1 I: @- r, Y: @: W8 y
((CUser*)this)->AddHonorListAck();
/ p: p$ v5 s- q
g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 X) I5 ~* a% u; W( M
#endif // __HONORABLE_TITLE // ′Tà?
0 `0 R* t* m: c% l U$ t( ?
}
4 J+ Y6 h6 u9 f
#endif // __WORLDSERVER
, T/ z4 u4 [3 m
}
/ T, f) S( v3 G1 V0 J* [* T$ H6 x: }
/ A# |+ ^$ k. q f
然后你进入functextcmd.cpp并添加以下
7 D- X( L+ W6 Q" C7 z7 s( m
+ U( |0 x1 n' A% \5 Q
代码:
- E. A7 F8 H* s( [
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, r& Y& I4 Z, m7 U5 [
下面插入
/ l% n+ q0 ]7 K" j( K" H
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. ~1 p# ^ {8 `3 J" M$ t# m
; E" {# |' J' K$ @# K' \1 `
然后你去
; m ^- @* d# a( R; d
' I: M# W$ b* [
代码:
1 Z$ s% s s0 R/ f0 W1 b4 R
代码
# G$ {: w) J* c+ ]- q
BOOL TextCmd_ClearPropose( CScanner & s )
& l* U. s5 {/ ~8 f Q1 |4 r
{
1 L. d( ~" Z4 x* y
#ifdef __WORLDSERVER
( Z' `; t7 A/ `1 Y! r4 Q
CUser* pUser = (CUser*)s.dwValue;
( `# ?9 p8 b( f$ Z
g_dpDBClient.SendClearPropose();
( u s7 P2 J1 |" G/ k0 F) t- }
#endif // __WORLDSERVER
+ P h( E/ U, z) o# i! V. E5 U( C7 }
return TRUE;
. B6 G( k5 Z6 ]7 A& P/ e, `
}
7 X. p! S' H& f
下面插入
8 S& m6 n1 {- r* i
BOOL TextCmd_rebirth( CScanner& scanner )
/ ]! X' {% I1 e1 |
{
# V. R8 a; X3 ?" V0 s
#ifdef __WORLDSERVER
9 {6 h& T0 r. k$ [
CUser *pUser;
! v3 H& j5 x9 d# W: F1 C
pUser = (CUser*)scanner.dwValue;
% k" o# O; z& i" @0 @
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) ^5 ]+ h9 L: R7 k6 a
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 m. _+ S1 C8 J" Y7 h4 W8 E
else
; O8 }& b) z5 o) a% ?
pUser->AddText("你还未达到重生条件!");
% M% ~# [0 t& ]5 |" E) Q" _
#endif
. O; x( F: P& h$ q
return TRUE;
8 A$ M: b8 D" i
}
0 G- J) f& E* o1 R) a3 C6 _
( J. W1 q" m0 x; m
4 {' U7 [$ P" ?" H1 ^" v( a
! |, G# _* m6 v, }- ?) r
) R% l0 J' B* e9 D" `
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2