飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; K R4 x! u& o3 b
1 i# b1 q, M0 a$ D* D) |' A
Mover.h
" T; @: I* |" L: g0 U6 j" d
代码:
' F: a% F w" N1 [- `" B
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 j/ p: ]1 I$ H& G1 r
& D' ?5 Z! }+ ~( _& G
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
r8 z. N9 v; S7 I2 K3 M, }9 r8 Z
9 u* X# H" f( \0 w7 Q( |) Y, u
然后你去mover.cpp添加
" M# G: N1 G/ j8 U
/ l7 z* a: y, }% K
代码:
% Y8 l8 e2 W/ }5 p
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
. ^- x1 ~- O$ f4 P4 k
{
" e0 V0 I. q" ^+ c$ v
#ifdef __WORLDSERVER
+ r! ?! L1 W# U( x! @
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 D' ]8 T _( F/ [
MoverProp* pProp = GetProp();
, F, D6 y! l) ~1 \/ L
if( pProp )
5 J" T2 B0 \4 ?# C
{
% {* I+ p# _7 |+ D2 A0 j: [+ O, E
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! W( L! x4 d8 D8 c
{
% Q m: K9 [2 ~6 D
AddChangeJob( nJob );
- V8 L5 c# C1 `' I1 ?, B# K
}else{
! k6 o, [1 A! i: |% N, x" ^
return;
% C1 |" n7 q( ^) ]
}
8 a8 h" u4 b1 P( b- k8 j; j
int nPoint = 0;
% f8 K' a3 M( p S* d3 ~
if( m_nJob == JOB_MERCENARY )
, f d& \# j* P8 p" u2 Q
nPoint += 40;
+ n& G2 Y+ ~+ ]
else if( m_nJob == JOB_ACROBAT )
. F% H( |, z( N0 e5 m
nPoint += 50;
) g! W" L3 L- g( D, Q: W) P9 X7 @( {
else if( m_nJob == JOB_ASSIST )
. W: z4 g4 b; i! s% B" F4 ?6 ]
nPoint += 60;
4 n: q5 s( C" N( S& ]5 r5 `
else if( m_nJob == JOB_MAGICIAN )
( X3 N5 \( R7 z
nPoint += 90;
/ V3 v# W% x- `" J% I$ j
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& w: M) M* u5 z
nPoint += 120;
+ k Q& l8 ]' c5 [' I d O# z& k
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% G+ M7 y6 s8 b
nPoint += 150;
" _- @+ J V' H- K. y/ L; b: K2 p
else if( m_nJob == JOB_RINGMASTER )
* t/ k& n( O6 l; Q/ h0 T3 y: ^# u0 X
nPoint += 160;
; I. s1 ]( x# k( b( {2 h
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- c% |4 o% x% G/ d. R K
nPoint += 180;
8 q- @3 g. K; d7 J& }7 ~
else if( m_nJob == JOB_ELEMENTOR )
) u' Y4 t7 @) g' L8 x' m
nPoint += 390;
/ V3 R! w5 O, P4 d8 M: b
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 E T% J9 b: Z, o
nPoint += 120;
$ ~# G8 Y) n4 k# ~( c' T) J
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
& G2 r- g! l9 s
nPoint += 150;
, ~: o4 @. ?0 n* F
else if( nJob == JOB_FLORIST_HERO )
. G$ i7 p: y6 g& W
nPoint += 160;
5 c( ?& ?/ a( n9 \
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 y ^% l! a5 H4 k/ N4 x
nPoint += 180;
/ q0 w8 T. |3 Q9 l7 A
else if( nJob == JOB_ELEMENTORLORD_HERO )
" S# F9 ^' ^4 @( |. K6 }
nPoint += 390;
) R4 f: g# {1 i' O; M/ v" ?
9 s3 ]$ S) v, a3 P6 R
AddSkillPoint( nPoint );
1 \! t9 D/ p, B/ q7 J8 j
m_nLevel = nLevel;
$ V4 g3 a a& e. L( r
* L+ Y$ D/ `. w$ i2 _/ [" o
SetJobLevel( nLevel, nJob );
( {+ I, b, X$ x% J& {) ]6 ]0 M
m_nDeathLevel = nLevel;
- p- _* X& G. }
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# C" m }7 `4 p
if(IsMaster())
! l+ e5 A* ?5 P2 `# J
{
: ~- z" n0 D* _7 L+ x( W- m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" I9 ] Q7 E4 s) i
if( nLevel > 59 && nLevel < 72 )
: _" _# v6 z3 v8 z2 B
dwTmpSkLevel = 1;
5 ], m' C. o& K# D7 y
else if( nLevel > 71 && nLevel < 84 )
! T8 r% `* r2 v, d2 r4 y
dwTmpSkLevel = 2;
$ a, O' b4 L5 f8 C% L
else if( nLevel > 83 && nLevel < 96 )
1 {) P7 t" _* _! e1 a. i
dwTmpSkLevel = 3;
5 [% {. g( H, D. L3 n( i* z
else if( nLevel > 95 && nLevel < 108 )
0 L; P/ E) t! X% c9 {- q
dwTmpSkLevel = 4;
/ W2 q; E1 J x, ]' P( f( G
else if( nLevel > 107 && nLevel < 120 )
- g6 O- {, m3 I4 l
dwTmpSkLevel = 5;
) @3 v, y/ \+ y3 N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% \* e7 G, G, O+ r" J6 b5 p
{
' X; k+ P- P0 X7 q4 ?/ [9 n: ]
LPSKILL lpSkill = &(m_aJobSkill
);
7 e) x, K% x6 _& E. L5 z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. ?* U; ~% h+ `5 q: Y/ w
{
+ T5 z4 W3 e; D9 W9 n1 x' u* j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 h+ ]2 n) S, G( K" D' L8 O
if( pSkillProp == NULL )
8 I1 A. g3 q Z% }& S l& U
continue;
& u" F8 L( u2 g0 M/ o" t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- o: j" Z2 v. b+ I3 Q/ r: c
continue;
" v0 i+ z( r0 o8 F
lpSkill->dwLevel = dwTmpSkLevel;
/ z; ^' n" B( d3 O) }; T
}
. A: m7 J6 c+ Y
}
# n6 t+ q7 R, C- d
}
1 i0 F7 G3 T+ i" k% l' `
else if(IsHero())
2 P) r- u1 g$ ^ Q
{
% J' v0 a3 ?% X( x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 H+ E5 j6 ^5 z# a, ^2 @
{
- K9 d6 F) f: _# P% x
LPSKILL lpSkill = &(m_aJobSkill
);
2 y+ h; [0 H2 E. i/ G" P3 u) H' j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& D- C& }* w1 g* \8 N
{
1 t4 z5 w/ I. t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ u& ?$ ~" [ g- P' b: c: E
if( pSkillProp == NULL )
# B, k/ u r% t1 j
continue;
; p$ e4 W% [ ~: E7 k8 ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 ~2 a5 L) R& x' q0 w2 d }, \7 U
continue;
w, O4 `5 N- N
lpSkill->dwLevel = 5;
; J. c# H# D0 C% C* m h
}
& M; u) C+ W, F! _2 Y3 D4 w
}
2 i1 \3 n/ s. A
}
: S, X, l3 Y6 c$ L; C
else if(IsLegendHero())
; K% F1 Q! {4 h: ?/ b& L
{
1 R$ @, r! b4 E4 h* ?, P
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ n$ l" z+ {* k* o
{
( E, |5 H0 ] e$ A+ c0 L( r; U
LPSKILL lpSkill = &(m_aJobSkill
);
) B) q5 f' {& n0 K2 M
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 e& j# e5 D# a/ F
{
8 n# u" y ] ~& ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' ?) |0 C2 r3 V# E. z. R4 D
if( pSkillProp == NULL )
( e' \. T: s$ o, ` K/ v
continue;
8 C( { `# e) B/ l( m7 @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 ` X* g2 f- G
continue;
8 Y/ o3 r' ^+ g5 Q) @( |6 t
lpSkill->dwLevel = 5;
& G( m! K, D! R% i
}
+ F9 a% i" T* M/ f0 R# o. c
}
5 w6 K( O& B; L8 u! j: z3 j1 R* _- {
}
* g/ i7 O% V/ r# B
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 L+ a9 Z. w8 [0 }. _ m
if( bGamma )
W: l- P$ h- b0 w
{
- k v5 T+ K3 D* F
m_nExp1 = 0;
8 c+ k8 G% m8 C, v
}
8 x3 x) g7 m% f8 A
1 Y& a7 d' `5 ~% Y9 o
( (CUser*)this )->AddSetChangeJob( nJob );
) c- _+ ~" G' E8 q$ g* w7 d
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! e/ Z, \1 C; S. m0 Q
( K8 o8 s: i& C @' s
5 ^1 b5 w, x) K2 w1 f- e
#if __VER >= 11 // __SYS_PLAYER_DATA
/ l/ ~' P! c/ v7 U1 I0 ~
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 p0 Z; B8 w. i3 _4 a
#else // __SYS_PLAYER_DATA
1 r0 A* m6 Z8 t' U. x* n$ o
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# Y$ m+ ~& K6 a6 S; b. |+ b. ^# r
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 J5 v2 k! E' s: y
if( m_idGuild != 0 )
5 i0 l. c7 q# e& ]4 Q0 j7 E
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* I. @5 Z3 j" x1 `, p- a/ ~6 A. I
#endif // __SYS_PLAYER_DATA
# P5 K2 |6 S. R4 X" Q
SetHitPoint( GetMaxHitPoint() );
+ c% `9 W* `. O) c) j8 L& s
SetManaPoint( GetMaxManaPoint() );
4 V' c8 S5 \4 q, ?
SetFatiguePoint( GetMaxFatiguePoint() );
- g7 W0 Q; V1 u8 M0 [1 Y6 ~: x3 K
if( nJob >= 1 && nJob <= 4 )
% X& o9 G! I6 R* l; J0 H- Y1 J
{
, I7 ~1 I' k$ J1 Q W& X. N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
" O& \ v6 T" E+ @- ]
m_nRemainGP = 28;
$ \( c. f/ V5 l7 L9 O- x U
}
1 i5 h! Y. }5 e$ A
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# t$ E* f) [: m" d' c, Q; V! Q
{
' _' o% t3 q A9 m5 T$ F2 A
m_nRemainGP = 118;
8 ]9 i. {( P3 S
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 w' @! V& C' ]4 S' Z# n* x
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* g! j4 e* g# N0 ^% q( @1 N+ i
}
8 t+ U5 N: |; t8 m
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
- O, B$ O9 X' \: W
{
* g, e7 K& t1 v3 D2 j6 b
CItemElem itemelem;
5 G5 i6 B/ u; B4 L+ L- G1 f
itemelem.m_nItemNum = 1;
4 C+ {" F; a' e* h9 H+ @. C
itemelem.m_bCharged = TRUE;
' V6 K/ X( w/ X0 o) y1 @
BYTE nID;
8 ]6 a! Z i5 o+ F
% b2 V/ d6 u3 \
if( nJob == JOB_MENTALIST_HERO )
8 F) Q4 z7 O! T# \' b0 P; U: h
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 a$ ?8 Q5 n) g# F% j' l
if( nJob == JOB_FORCEMASTER_HERO )
3 _9 h2 `& X0 ]& K1 y# p
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) f2 K/ F/ l6 q2 u. @
+ A. |( G2 y5 P% w1 B$ t+ y' k) z
( ( CUser*)this)->CreateItem( &itemelem, &nID );
' e5 z3 a" v; ~: J; y* H- z4 n. f
}
' |# N1 G9 u) }( F2 \: q9 Q/ S
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 h" }1 k2 X) y: u" o% A
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ r& s$ O4 p8 r' ]
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 U0 W; B/ ~4 _; }5 e# }
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 n2 h7 X9 ~; ]: \
( (CUser*)this )->AddTaskBar();*/
8 G4 ^% e( L$ P6 r8 T ^1 m7 Y; H
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 ^2 n/ V, Z' J4 _, g, j- k% [
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 i8 u2 r* ?8 u8 s% g* M* \7 B! [
((CUser*)this)->CheckHonorStat();
1 R* f( ?/ [( P' ?4 {& u
((CUser*)this)->AddHonorListAck();
# B( O( P/ W4 A; \
g_UserMng.AddHonorTitleChange( this, m_nHonor);
) u+ u, S, z' P* ^
#endif // __HONORABLE_TITLE // ′Tà?
' b% f% r$ r% Q3 z, g0 B
}
+ S' I+ b) b0 {1 ?/ H) d
#endif // __WORLDSERVER
+ t% D, a2 B8 P
}
6 p5 F0 a3 s5 X$ I* [$ W
& c m6 S* q, Z
然后你进入functextcmd.cpp并添加以下
, `8 S5 z3 C# J5 Y
! U) @5 l& b) v4 g) G- ^
代码:
# R9 U5 S9 Z. k! f) J* i, E
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# w1 r4 y$ {1 ]/ H
下面插入
5 t) L: e6 r. E [* X
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
+ |0 {* f) H9 g- f+ e5 y2 G5 Z
& K, R- ]5 c, i/ m& }! g7 O
然后你去
* l+ E4 A# N, k. E! ^
3 Z7 h9 ?" p! T2 h S
代码:
/ G. Y5 S/ A. x4 h! u: ?
代码
6 P( k1 e$ i# M: m, X
BOOL TextCmd_ClearPropose( CScanner & s )
- r1 r4 J% G6 V/ e, n
{
9 E" k) g8 i$ g6 ~
#ifdef __WORLDSERVER
+ ~0 _; R" ]" `- u. o4 J3 \
CUser* pUser = (CUser*)s.dwValue;
0 R# ~2 w& e- [5 Q' {* y- T
g_dpDBClient.SendClearPropose();
6 L3 T! z0 s2 H" G& A
#endif // __WORLDSERVER
3 } c( f1 V3 t% I6 w9 g' K
return TRUE;
6 ?) J) R/ D; n
}
# o* {5 P. Y6 T! B t' T# ^+ [
下面插入
1 y( x. W6 q; H
BOOL TextCmd_rebirth( CScanner& scanner )
/ O( {1 a7 X3 N& g9 n' A$ K7 {
{
; x7 [' `( z; N' C3 T( ], f5 {" Y
#ifdef __WORLDSERVER
4 [ E$ \5 _7 ~7 [
CUser *pUser;
. z2 B( q% d4 K1 J
pUser = (CUser*)scanner.dwValue;
5 d J0 z3 z$ o" B
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
; l2 k' Q6 F- C; ?6 P% w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 f3 b+ C9 Z+ `) e. Y9 h) p
else
, S& g9 y9 G0 \) n3 d) d) @4 Q
pUser->AddText("你还未达到重生条件!");
0 `9 b- w5 N6 A2 E6 t ~2 H4 v
#endif
$ N Z& M: a7 m3 C
return TRUE;
8 d- y# I6 c! A$ s1 N
}
, ]5 p$ C; [# h+ M6 }
4 @1 R# |+ |: Z3 R4 y
# K- V* o& E5 k
, K1 ~2 X5 T0 h/ H7 l
2 O6 m l2 {) T$ ?/ L
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2