飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) m6 J* C0 G5 w4 g4 K
: h0 ?5 K, X9 z7 {% D
Mover.h
+ C7 i" [& N! O# X
代码:
* }# ^1 C* ~7 k% Z% G# Q2 c7 U Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
/ Q# O ~# W# P
3 S0 t- S. b z2 c5 r" ], l
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
* B" b3 T5 f8 v3 e
2 C3 A2 U# o3 Z- a# v! i. t
然后你去mover.cpp添加
& `7 c! d0 `7 D; }3 Z. g" q
" F. m1 k. [3 ~
代码:
1 L; j) b3 K9 H" x1 s
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' J/ V, {5 a2 N
{
: n- Y# S/ J- ?4 _0 Z; y$ b# }
#ifdef __WORLDSERVER
0 q3 I1 {0 n7 o) ~" k
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 R+ b: N, \3 {0 A. o; n1 k
MoverProp* pProp = GetProp();
2 C" U) J9 o& W; c( U$ @7 J
if( pProp )
9 `! ~$ b8 Y1 B+ I- H5 S' X) X
{
' F; f" j4 x. |1 e# H
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 |$ {0 Z; A* ?# W m8 ~
{
, X( M$ l) |2 X Z$ @3 X. W% u
AddChangeJob( nJob );
9 {% p: D5 z/ V# W- [
}else{
( j) u4 O# W+ L+ `( j" h- Z7 e" G4 E
return;
: {3 i% B) i/ V; r( Q( A
}
. {) i$ |8 p- f; G7 t) h
int nPoint = 0;
: v$ \1 L- P% z; {: x
if( m_nJob == JOB_MERCENARY )
6 Q, \' q- d' c, S$ i
nPoint += 40;
) D& I9 c) h* N8 x: B; Z
else if( m_nJob == JOB_ACROBAT )
S& R5 k8 m7 S( |
nPoint += 50;
- p* o& M A$ [4 @9 i3 t$ u4 s/ `
else if( m_nJob == JOB_ASSIST )
* z0 i8 M+ u" u! }/ @2 m
nPoint += 60;
- R O% k! b: v7 K# H# l
else if( m_nJob == JOB_MAGICIAN )
7 k+ T8 o& ~3 ?* |& L
nPoint += 90;
4 K8 J, L; P; j5 c
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ ~' R( z% x7 q6 X S$ O' R. Y! `
nPoint += 120;
6 z: Y% v* B" q# n+ x: B
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
- s& D! g9 p( n! U1 t
nPoint += 150;
6 {7 w3 V% c4 e8 P4 t8 V, M5 ?3 K2 }
else if( m_nJob == JOB_RINGMASTER )
; ? {8 c7 _2 c7 `2 X
nPoint += 160;
5 h$ F$ Y- }% j
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 b2 w; g ?- r& ]
nPoint += 180;
+ {, s& y" m8 g! N2 y
else if( m_nJob == JOB_ELEMENTOR )
& ~; u3 y N$ q3 N* O7 i1 n
nPoint += 390;
: X! I7 _6 u' q# u
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ I- R8 [4 z( C
nPoint += 120;
$ [5 `( R$ v1 H3 J* J
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ l, ?; n; B3 W1 s1 M
nPoint += 150;
& ^2 ^0 J, e& B9 ^
else if( nJob == JOB_FLORIST_HERO )
9 Q7 ?" n0 p$ y
nPoint += 160;
: a/ f$ m, b' m8 i7 C' w# u q1 w
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 X( Y# U, j/ r& G* }9 U1 \: C
nPoint += 180;
2 z: b# z$ z2 M3 \9 ^
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 {: w; J* _' A3 Q. R9 P6 q
nPoint += 390;
! g4 _" N5 s$ N0 c+ Z7 b
s0 j$ v* @ }) N' g4 s1 K
AddSkillPoint( nPoint );
3 A6 ?" F! L! ^* L
m_nLevel = nLevel;
7 v& Y( T% _/ V& ^$ s4 m# [' D
0 u \( R; I0 w0 N; t' v( U8 k
SetJobLevel( nLevel, nJob );
, [# o2 L- ~2 \: b) a% {& f- `
m_nDeathLevel = nLevel;
) C( q4 S, @5 V5 b$ l2 \$ E7 m( ~
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 q6 }0 ~& J) |, r- R
if(IsMaster())
& S2 L8 t# U4 `* e
{
8 Y2 X9 s5 ^1 p/ B: Z9 Z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) p$ H: y6 V* U2 m
if( nLevel > 59 && nLevel < 72 )
2 r( w$ W0 [7 f( r- J9 c* g
dwTmpSkLevel = 1;
( A+ |5 J9 W9 Z
else if( nLevel > 71 && nLevel < 84 )
- |! v; y5 @- ~( l2 j; P
dwTmpSkLevel = 2;
" a& H4 {+ d1 ^8 S* D
else if( nLevel > 83 && nLevel < 96 )
5 Z/ M! V1 M2 E% n+ r3 J. ^' H
dwTmpSkLevel = 3;
9 e5 Z* R$ e& X& F5 l( _
else if( nLevel > 95 && nLevel < 108 )
2 p# M6 M: h* [ B) M1 `! l
dwTmpSkLevel = 4;
: H7 o% z- Q9 }+ Q1 e9 `
else if( nLevel > 107 && nLevel < 120 )
% X _) W# K1 E6 }% V
dwTmpSkLevel = 5;
& c1 h8 D4 O. d% N1 D: ]2 o9 A
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# u; ^* i- P" p% M8 Z
{
9 P- N2 ?0 E( t
LPSKILL lpSkill = &(m_aJobSkill
);
$ {: T" m' y; S. e
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# o, h1 l# s- S% q F
{
: f) n5 v* G3 U& r+ K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, {- B% I4 D; i
if( pSkillProp == NULL )
/ r$ F6 @' W8 n# Q
continue;
8 l" x% @: r7 Y" T& ~/ L' f! M) X' I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 |6 h8 M$ ~" V: l5 J1 j% ^" o
continue;
, l/ q! Y1 y3 I: A& c& N! H
lpSkill->dwLevel = dwTmpSkLevel;
3 W) K' f; l) m. R1 c& M% X0 o
}
) B: g G" \6 t+ O/ t \3 R/ r% S
}
; p n2 K; E1 y. W! U3 O0 A1 T6 k0 h
}
S; J# ?6 ?1 P# v) G
else if(IsHero())
! n) I; [/ R& v* O
{
, K+ y' c. N4 c
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ {1 N4 m" F+ a; V0 M, K- }
{
+ |3 b5 U) T$ J
LPSKILL lpSkill = &(m_aJobSkill
);
* e* q- k$ Y: Y/ ^* h7 E5 j8 ] x
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; q4 S: ~% U) h, ^5 B, l: O
{
& v; v" ]1 M0 m. E4 p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* |7 e& G8 S3 s6 b! H: p
if( pSkillProp == NULL )
7 p! c) n; ]2 `9 k& |' Y; n' G
continue;
2 ]& R1 E3 V- ~; B, W! z' \0 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 H- m. N1 U; v
continue;
b/ I, M5 K2 B$ Y! N
lpSkill->dwLevel = 5;
& C, C( r% M7 u p; X4 b% r
}
0 d8 d4 X7 K) j+ L) b, x
}
$ s; R/ _" ]+ T: c8 E9 {7 r0 q ~: r
}
. B8 I8 C q, \% b: T" \- U! T
else if(IsLegendHero())
4 H, _; h7 p+ a0 V0 I
{
1 M2 |2 r' \$ ~% Q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% s1 ~5 m: e0 C
{
( y! V6 k+ M0 B6 w2 _
LPSKILL lpSkill = &(m_aJobSkill
);
+ a* A; y- `' m- @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* e! @" e4 [' ^9 n& R
{
0 j. e5 X( f+ H d( g. L+ n; u2 _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! \& Q+ W" h+ \" d6 @
if( pSkillProp == NULL )
1 _0 y8 l6 A* S0 y: R+ {
continue;
. F% g4 r F5 S: l* N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 v5 x- ~+ b$ q) V
continue;
/ z! I- y2 I: |3 I. I) Z
lpSkill->dwLevel = 5;
$ Z, v/ h. v w* ~
}
i! Q6 k0 O9 c# u4 I9 B" ~# k1 ^
}
, N z' M& }. z$ r0 f
}
0 ?- X' ?/ ]# o/ \8 i+ Y7 w
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ M3 I& R0 d8 h9 n! U
if( bGamma )
( p$ k" q8 v! d7 X& U! ~7 q. R
{
. D% |2 P6 w H+ P2 C4 x
m_nExp1 = 0;
, u/ R9 D& M/ ?( L( w6 E
}
$ J7 I" E( g9 v2 [- F S" w
) c: r: K# `1 n( c h$ Y4 @9 f
( (CUser*)this )->AddSetChangeJob( nJob );
/ ^8 }. { \( ^0 J# t
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
: ?5 i) M6 |1 c( f
* N: v$ w, C9 b, V) l& _" Z
& B7 U" {% t& Y" Y3 i" C
#if __VER >= 11 // __SYS_PLAYER_DATA
" D3 ?, R+ V1 _& r" K& V9 d8 L. g
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- S3 J8 X6 e' F
#else // __SYS_PLAYER_DATA
( ?# a/ B/ M2 h
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 M& [6 Y" z3 @0 G1 @
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* i0 H) R3 f4 g' M( k4 h* F! e
if( m_idGuild != 0 )
& p2 ~' e: D. X' N" x' i9 M
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
# F3 c3 X1 j0 F: a
#endif // __SYS_PLAYER_DATA
. @& k3 T5 R- p7 X4 x T9 t" ]! r$ F
SetHitPoint( GetMaxHitPoint() );
3 k! p. Q9 E' c
SetManaPoint( GetMaxManaPoint() );
5 a# {# J( p& `
SetFatiguePoint( GetMaxFatiguePoint() );
) B7 r6 f! r- b. y B- G+ l! i
if( nJob >= 1 && nJob <= 4 )
) u3 `& t2 X- |7 g7 Y
{
5 F3 I; t* A- e( h \: I6 f; a" W
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* `; a- C1 [- j3 `1 z$ P( }$ ?
m_nRemainGP = 28;
. y5 F( E/ d: W, f6 ~) c
}
" |0 B( o2 }, o' ?
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# l. h% f6 m' \9 ^0 y
{
6 ?2 [4 T' B% p( C
m_nRemainGP = 118;
; m* r: x9 T5 U' k
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
, L; ~& L9 f$ x |
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 n$ ^ e# g# o0 T! C, J. B: M
}
1 q9 F. G" Y9 X/ T& P; ~
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
: _* c2 {* z$ _6 ?" D: a$ R, B) C
{
. _1 H8 w6 d: `/ h H
CItemElem itemelem;
1 i& l- v' [3 H& \9 i5 H1 p- h
itemelem.m_nItemNum = 1;
* _; H; g P# k' P; C/ H8 q
itemelem.m_bCharged = TRUE;
$ T! N- R7 P. b/ v6 [- G
BYTE nID;
) M, P; k& J& r5 A# W4 x1 h
5 ^5 I E$ ^' s3 ]+ m5 F
if( nJob == JOB_MENTALIST_HERO )
5 T' k4 ]# R: e3 m3 O7 @
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* d1 ~0 P8 I `0 P
if( nJob == JOB_FORCEMASTER_HERO )
! H8 _1 Y7 g) M# B# z! q+ @2 W; {
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 N- j' e+ K+ V: n+ l8 y
8 {8 j) g* V1 }3 k
( ( CUser*)this)->CreateItem( &itemelem, &nID );
+ f3 J8 g- z W4 ~
}
( D8 B/ S$ Q0 d1 u, u
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% P$ K0 u5 @% o3 e7 L/ i6 O
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; r0 f7 w& \0 ~) c
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' C. T, F9 Q& Q2 {5 a1 ~+ Q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
. }4 J% f% c* R5 y7 o' ^0 c: u
( (CUser*)this )->AddTaskBar();*/
% E3 _* |7 c& O: O
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 G0 ~- i" o- R9 w( N
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
2 o0 d c! B# J& P0 E1 w5 a% G1 M/ c
((CUser*)this)->CheckHonorStat();
7 E. m+ |' w& b7 [4 D
((CUser*)this)->AddHonorListAck();
: n# O5 e% D% l1 I2 m4 B
g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 U1 S/ L w% g- N! R# q
#endif // __HONORABLE_TITLE // ′Tà?
! b' @, a& C9 Z# a; H$ |- F
}
, ]0 ~1 D; ]7 n. Z; b; v
#endif // __WORLDSERVER
- R, n* X5 t7 W& S
}
* U6 R3 v0 X6 K; v% S
, r( S8 t) Y3 Z& \, E! E
然后你进入functextcmd.cpp并添加以下
! A* e# `9 w1 J" N! C
, l$ k0 e" L9 i8 e0 o7 |+ C- B
代码:
. B- D( Z }! E; p1 v) J
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 \4 a5 _) P$ V+ D
下面插入
Z9 {) y& H1 D. @* s7 b
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
( S* m$ a1 K! H" u& W% S" n% x" u+ ~
0 a' J# q3 O1 A4 u
然后你去
. Q4 r/ E7 C+ v7 y f L* X
3 o5 F0 R, s) ~2 P' l
代码:
% V+ m6 v9 J$ `9 ^/ X
代码
2 }+ e3 D. R; H
BOOL TextCmd_ClearPropose( CScanner & s )
! ]: l5 Y: ~ _$ V. V
{
7 U8 t+ A) N4 K
#ifdef __WORLDSERVER
3 ~+ {; e/ Q3 E) U$ M3 b3 I
CUser* pUser = (CUser*)s.dwValue;
3 Y5 C* c% F+ `0 s5 M0 ?7 T% [
g_dpDBClient.SendClearPropose();
4 q6 p6 p' _4 [: V
#endif // __WORLDSERVER
* {8 s6 c+ @' s; v5 J0 {
return TRUE;
, x! J* C- L' [/ }8 G1 K3 L6 ]
}
* s, ~# \0 p* K2 }# H) x
下面插入
( t( t& i* R( N+ ~3 ?
BOOL TextCmd_rebirth( CScanner& scanner )
; L* p" b8 t- T1 A" o) z
{
9 `, K6 Z' f5 `4 t
#ifdef __WORLDSERVER
) I2 H! v. v2 u9 f
CUser *pUser;
5 \& T/ D+ O- \- S: _& I, Y
pUser = (CUser*)scanner.dwValue;
) V8 b$ G+ S. C3 M9 o
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
/ ?1 f2 y& d7 F
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
: Q+ Y4 T! j) R# O8 a1 }
else
; c& o6 a, ^! b# @3 L) n
pUser->AddText("你还未达到重生条件!");
2 D: d) d% t x6 L% q, j1 B
#endif
- i' f# l/ r- u- [ u# b6 R8 g
return TRUE;
' l, @9 E7 c1 J: m5 M+ T
}
; c1 O+ o2 s6 h! |
' M T5 U6 v- h0 j7 G
" k9 F' g; }! n8 R& c" Q
4 o5 l! r" r% W# [: S0 D/ ~
! l3 y8 w3 g5 W
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2