飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ a F4 l; u+ Z* m
; @: R& Y$ r: Z8 r
Mover.h
+ h! {( [3 g& E7 }3 p! N) q
代码:
) M a* \" I9 F" A2 |$ o3 S2 G
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
/ r u$ P, O6 v
! g9 `- ~5 j" }( O5 U7 H# z" f
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ _% c% X5 f' k% u& Z- |" q: t
' P/ r1 D5 i, N; }2 x" \% x
然后你去mover.cpp添加
% H: o0 I3 i6 g5 e
* P/ ^. }5 D6 T
代码:
' K0 U2 C. Z+ u
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 g- e5 G0 T2 u) |& M9 n% `& r
{
6 ^+ W, T( ^' K4 [
#ifdef __WORLDSERVER
3 ^# D- Y$ ?+ t
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" v7 ^) N; e" U
MoverProp* pProp = GetProp();
/ V N4 @9 Q- _
if( pProp )
% u j9 `; |) v6 ?: ]
{
- }. |5 W) U6 j/ @6 h
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* F. m1 ?8 P, o8 v2 Q: ?
{
O( a2 f1 S4 ]" `
AddChangeJob( nJob );
- h: [1 `5 k5 ~! `, b# w
}else{
7 {! q2 R% v4 j" s
return;
. [- g+ }( M" c$ |
}
) a6 N y& q3 Q' F
int nPoint = 0;
7 ^3 F0 F M( M
if( m_nJob == JOB_MERCENARY )
" U1 U, S' I c N, X3 l6 x
nPoint += 40;
5 Y- {; X+ \4 k2 U- h. K5 g
else if( m_nJob == JOB_ACROBAT )
/ [2 _5 d0 V6 M9 G6 i
nPoint += 50;
. x1 f0 I( s/ q* b, C b1 t
else if( m_nJob == JOB_ASSIST )
/ s1 l6 s) K6 _& e1 p# F) R
nPoint += 60;
3 N) O1 \! b7 h
else if( m_nJob == JOB_MAGICIAN )
! X" W: h6 H% r
nPoint += 90;
( o+ d I3 J. C0 ^) Y' D5 ^
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) V C* u# t) ?, ^0 l3 z. X" e
nPoint += 120;
, b# D. j0 _! o A8 R2 o
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& l1 A: ?4 s& k) ?4 @/ K
nPoint += 150;
0 K& b; `, @5 N/ U* s+ J6 H$ h
else if( m_nJob == JOB_RINGMASTER )
# z2 M; _* T& \2 K) u& b3 x8 v# w, V% J
nPoint += 160;
- J- _6 _0 p# x$ z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ X- N2 A- s' W# s# ~
nPoint += 180;
3 ~- i1 [* n" ?+ E: ?( T7 S
else if( m_nJob == JOB_ELEMENTOR )
8 Q; y5 q: V8 a* ], V" [
nPoint += 390;
; r1 T( t: A! G, p
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
" a# [! x) N8 x! r9 o; i
nPoint += 120;
; ]# P; Q) [8 p9 B* X+ g( Q. w
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
9 G8 n2 U0 | @4 E7 {6 m" a
nPoint += 150;
{1 Z: A: u7 l( I, L o
else if( nJob == JOB_FLORIST_HERO )
5 o3 @6 W& V2 W; ^, G4 w8 j
nPoint += 160;
8 Y. [2 k) `/ N! @
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% C4 n3 Q6 ?1 Q' T) [
nPoint += 180;
- J0 ]' B. u0 \
else if( nJob == JOB_ELEMENTORLORD_HERO )
. ^; p$ }! c9 p9 n
nPoint += 390;
1 p- N6 x$ @% [0 w$ f, u1 ]. U5 \
$ Z( f/ ]7 n+ H" }
AddSkillPoint( nPoint );
* j" @# M9 F2 f% V- o7 a! u. P
m_nLevel = nLevel;
% \- |. I9 k L6 \: b: [
0 Y* B, e9 f. Z* Y
SetJobLevel( nLevel, nJob );
7 b/ R4 q( d: {) [3 i% ?
m_nDeathLevel = nLevel;
/ T7 V: {' j# S
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 K! _8 Y6 W- a* a3 j& F
if(IsMaster())
9 d/ b7 \6 P, j% g2 E7 E
{
0 t' s4 t4 O6 W$ G+ z9 m" \+ W, _
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 q4 ?9 K& V( w5 x; K( @
if( nLevel > 59 && nLevel < 72 )
! I% ]/ B/ q1 @6 `$ r
dwTmpSkLevel = 1;
! H4 I( ]" W2 V4 M
else if( nLevel > 71 && nLevel < 84 )
. B) v: ]8 l0 \# \6 e) l1 {- U9 L+ Y( O7 y
dwTmpSkLevel = 2;
6 T! N% U9 V+ e, z3 b( F9 w
else if( nLevel > 83 && nLevel < 96 )
7 D! h+ b* @6 T, v6 l
dwTmpSkLevel = 3;
! I/ M Q* J5 l5 R' C, |. l* ]( }
else if( nLevel > 95 && nLevel < 108 )
$ Y4 s- I3 ?7 Y& R
dwTmpSkLevel = 4;
# ?7 ^1 [) [% o: f! O& c
else if( nLevel > 107 && nLevel < 120 )
$ Q- t9 r0 F: q9 Y" Z9 ^
dwTmpSkLevel = 5;
1 b# Y6 B3 h$ u" c1 _
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 g4 t! K5 @' v# \! {( |
{
( S- n) M1 Q4 }- c; L
LPSKILL lpSkill = &(m_aJobSkill
);
, q6 E X' i$ q1 I' ^; C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 V" V- j. \ z( M
{
' u3 X& ^7 w1 L6 E! Z9 n0 G3 q, J" v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* y8 Z( a( Z* ~6 O
if( pSkillProp == NULL )
0 ^% b# V% l* g0 n( a2 v
continue;
8 R9 s( b3 y4 }9 Y" \" n- K+ a+ r" C- Z7 C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. F2 ?+ H8 L$ ^5 N, U
continue;
1 r) i. i# j: a) d
lpSkill->dwLevel = dwTmpSkLevel;
0 U) V0 Y3 {% Z( w9 o
}
5 b. F# D5 I, @. r- |
}
- ?; b! {2 Z( N2 x/ d9 p' f
}
) F9 D# ~1 f3 d4 D- f
else if(IsHero())
& G& _, v( R9 W8 h: F8 {
{
1 O% U7 W& {7 X; g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 p- a6 \3 P& V. v |
{
) h9 H* s: E8 ~4 L
LPSKILL lpSkill = &(m_aJobSkill
);
: h) I6 S9 p. f- P: F* B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ d( K" W/ @8 q2 S1 ?% W+ ~* s4 X
{
/ p# C9 \* B( a' L. j2 ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- U( J3 Z( B- \5 {$ H
if( pSkillProp == NULL )
* j2 H5 O/ G; u# y& H
continue;
) j) q3 L. i" p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& s G& w. ?" g5 M4 e
continue;
" R) T0 Z3 J2 G8 O9 h0 m
lpSkill->dwLevel = 5;
e. P* c# X0 v
}
! M9 C9 [$ l, w7 e6 c# V
}
8 m& X/ L$ O S- P7 Y
}
+ s- x5 Z- S6 G Y: n0 ?! D
else if(IsLegendHero())
/ F1 q5 W9 h9 _
{
; s5 O/ `9 z( q5 D) d' E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' h, K! i8 V" s& Y/ B9 ?, {
{
' d- J P+ a6 e2 S( Z: k ]
LPSKILL lpSkill = &(m_aJobSkill
);
8 d7 U) D8 a% ~2 {' X
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# A8 Z7 j+ @( T# B8 O
{
+ b. Z8 s4 q: B% B" A' [) U+ ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
T* t' z) f) e" D. X o7 I
if( pSkillProp == NULL )
# B+ E# `& S9 K! F$ N: B
continue;
) Q5 r! x+ L1 |" q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' a9 B1 a( O+ L3 c1 B
continue;
2 R3 J7 q e& I. e$ h) M3 J/ K
lpSkill->dwLevel = 5;
, g1 h0 w( c9 b0 {+ C4 R1 F8 V7 x
}
1 q- q# K" B2 o2 @3 V. X. W
}
& r) L% G- g* t6 |/ w) b
}
+ t4 u. ^2 b# n3 U) L
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! K2 M2 G L$ \! B
if( bGamma )
% o; V. T6 q8 }3 o0 t
{
0 i+ U& H o! w# F `( @
m_nExp1 = 0;
, u9 g1 @$ H) W: ?: x! o1 n$ W! X
}
`! f, d- a( |/ [
1 ~1 |7 z2 v D0 T0 l6 x
( (CUser*)this )->AddSetChangeJob( nJob );
/ j1 K. [) \, w9 g# L+ y: F& I
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
8 f _: e3 ~- F4 c, O0 ]
+ U* F% \, C" M0 K
% V. r0 S1 R# Y5 c( z1 ]% r4 O9 n
#if __VER >= 11 // __SYS_PLAYER_DATA
2 F. @2 M# n6 ?$ i$ n6 H
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, _$ N+ ^6 H3 e* @; D5 g3 v3 o- Y6 ]
#else // __SYS_PLAYER_DATA
( p+ K3 O4 Q3 a* q2 R
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% y0 K# ]7 k) |/ K V
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
% Q0 S5 z: [( Y8 H+ k
if( m_idGuild != 0 )
* d; s2 ~" E; ], y/ A! Y; B: o
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
1 V7 I7 [% h' R# M" `. H
#endif // __SYS_PLAYER_DATA
8 v% K; m% h' z1 J
SetHitPoint( GetMaxHitPoint() );
5 W6 e/ T/ z8 O3 Z/ @ l! ]8 p
SetManaPoint( GetMaxManaPoint() );
+ G9 k. V& E% L; C
SetFatiguePoint( GetMaxFatiguePoint() );
5 ?% v* X& \+ I
if( nJob >= 1 && nJob <= 4 )
+ _0 h N4 L! S
{
0 H% b, y+ O$ N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! }1 @& d8 G4 s, H$ n% @& ?/ W5 J
m_nRemainGP = 28;
7 U- W0 t4 D+ s8 o
}
) z, ~1 D" V- P% T7 y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 n/ G7 p) S* A* d6 N# D
{
5 B9 O$ Y' W+ O n2 c$ c
m_nRemainGP = 118;
2 S4 q, x( \$ M. y4 G
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
N1 D" Y' a2 K
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 G1 s6 x, J8 o
}
& n6 R9 z0 h) G' P
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 d! V: J7 W1 {* F- r
{
m& ?4 D2 u5 I
CItemElem itemelem;
- T s- Z% ~) i/ K
itemelem.m_nItemNum = 1;
+ E1 L" G& z) Z* A1 l0 |" Y" f
itemelem.m_bCharged = TRUE;
, I9 E k8 k% `) s4 R
BYTE nID;
# T& C. }. G' t7 S' R6 M3 V
x( q. ~2 z. F( B% \" C& X k
if( nJob == JOB_MENTALIST_HERO )
! Q: Z/ |7 p2 j. q& D+ {! ] G; q% E ]
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. ], o- d' E! e' `
if( nJob == JOB_FORCEMASTER_HERO )
1 L+ K, e& }9 {- ~: \$ N/ B
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
$ M" ?+ t4 `; S2 j% F
, U# ~. s- f4 _% u# @5 q' f
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, d+ w: i0 B+ u7 p+ e2 ?
}
5 c; ]. i' e9 i; l% F0 J$ T/ n9 ^
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
3 _+ ^" M/ J" j: \* J: b9 I" x
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' B" g3 }; Y" s, {4 \+ I. M
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
( O! q; v$ ?; C. h, |9 m/ ?$ C
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% b4 A4 }4 p. g! Y6 M1 ?( u
( (CUser*)this )->AddTaskBar();*/
6 A* Q L$ ~: d- P
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
9 M+ I( ?; j! |. a5 c& ?
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' |7 Q- q4 Z% K5 [% P% m1 e
((CUser*)this)->CheckHonorStat();
* p* o8 j, F9 x
((CUser*)this)->AddHonorListAck();
6 l+ i* C# ]# H* _& } E7 x0 M
g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 d, P7 O+ D' n) }# v* x6 d
#endif // __HONORABLE_TITLE // ′Tà?
' A1 m$ s) |. I
}
1 c* ?5 L# u4 l0 j$ f
#endif // __WORLDSERVER
" A- s* R* y+ C' P
}
: L2 B4 k- c! j; S. P& [8 w
+ q; o- |0 T! X# i0 `5 x
然后你进入functextcmd.cpp并添加以下
; t; D3 ]/ }# {4 p
7 A9 }* H) s: s+ F& o0 H
代码:
. q& [9 H3 k. ^: r* _
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 l* @* o/ w' \2 X! `
下面插入
: a5 g$ P2 o3 a' C4 _3 Z; h
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
6 \" h6 `9 o9 Q/ I; ~
5 W5 J8 x3 P7 C& I0 f
然后你去
. W& v( H$ ?( `1 B( v9 ?
" W5 H4 W3 w% }
代码:
& D& R8 `4 N4 h' ]* ]% F, ~
代码
* H9 N- L0 J* ]% \6 M
BOOL TextCmd_ClearPropose( CScanner & s )
" w6 g0 S9 a3 G7 M# s
{
, h. O% v# d, L/ X! i j- \) Z: w
#ifdef __WORLDSERVER
! c3 [$ p- y3 I" I) z& D, D7 B3 Z
CUser* pUser = (CUser*)s.dwValue;
/ ~/ ]: [( `# O
g_dpDBClient.SendClearPropose();
( M7 ?6 f# o0 Z
#endif // __WORLDSERVER
, L+ }9 r( G/ ]: N. N# |% J
return TRUE;
5 t0 r* x5 Z* Y6 N
}
6 q9 x# M; ]* m- d2 H- h/ C
下面插入
; T6 ^7 c3 e- A ]' u9 }( D
BOOL TextCmd_rebirth( CScanner& scanner )
7 m5 N& `( y7 v% Q5 E3 ]& q
{
/ `. H& o, N- l P
#ifdef __WORLDSERVER
! A9 h1 I5 P4 x1 L* I
CUser *pUser;
5 T* I# h9 {1 p+ j1 Y" j/ r
pUser = (CUser*)scanner.dwValue;
: I# v1 b7 E( R. p- d- R
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* i* |8 {8 H7 P% c( }
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
8 ^! a+ A& w% n" k5 C- E8 f
else
) H3 y9 d8 H& ~% K8 I
pUser->AddText("你还未达到重生条件!");
* `' ]2 d8 J; }2 E0 ]0 L
#endif
" m$ s ]4 M5 I8 s
return TRUE;
( R& g" E* |" W6 j
}
, L7 S* h, L& m% \, ^
5 ]: D! b$ h9 t
t- P1 A S9 @/ n v; F! A$ l
5 v; v: y* r- D0 m* e
( n) z0 m: }* p1 Q
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2