飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
( W( \! N8 v/ B% A7 m! V# P
2 y1 i0 h. I$ s) C- k0 D
Mover.h
& a: O$ b5 ?3 n( o& m, z5 O
代码:
6 b, e; d ^ H, Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( I3 l. [, Z L
4 k7 x$ @7 c. n: V- ]8 L
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 ]) m- F6 \( T
# A H5 {4 o+ `7 q, k" D) w
然后你去mover.cpp添加
, Q7 z# S. d# g* S+ C3 s& f% N
' R7 I: z& Y& |1 v z) z$ N
代码:
8 e# p) ^: ]1 X
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 A" t2 C" B+ |0 q! b: b
{
8 z' ^$ i; o) @+ F* q! m( o
#ifdef __WORLDSERVER
% ^/ c/ r- j$ t8 U' |( y
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
* Q" D& E7 i. y! V% D$ K
MoverProp* pProp = GetProp();
, d# x6 m+ ]. i& ~. W( r3 e
if( pProp )
: D# e8 H; o4 K) o2 F
{
# o# u) B8 a( X# G- B+ J e$ t
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 M% B8 M, w( Z: K6 b
{
8 w8 [% ?3 B5 }4 [
AddChangeJob( nJob );
2 `' w: j4 ~- @4 D1 h6 n# m1 X
}else{
4 G( e& h3 O- G% c. e
return;
* Q5 A/ Q+ M" t7 S- f2 e7 `. K
}
2 Q7 Q/ N4 x x4 {2 x4 [
int nPoint = 0;
, b( D9 e# q, t/ t3 C' K8 k
if( m_nJob == JOB_MERCENARY )
4 ^2 I* N6 n$ Q7 Z
nPoint += 40;
3 h, G' U7 O- R" Q, H8 b; E4 A7 R
else if( m_nJob == JOB_ACROBAT )
# }9 @) {- J" N- K* }0 E$ P
nPoint += 50;
- n- \- }6 ]1 g4 \+ l) \
else if( m_nJob == JOB_ASSIST )
) ~" ~3 I: \% p9 J6 O& j8 }
nPoint += 60;
0 S8 H8 x" t6 m; X2 G; n7 }5 U4 X) w5 l
else if( m_nJob == JOB_MAGICIAN )
4 l/ c' [ t/ t3 T0 D! }! f+ N7 M$ U
nPoint += 90;
. K7 s8 e3 X9 F3 K+ c+ \6 S
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
S1 a, l% s- m* H! o
nPoint += 120;
$ y8 p, I4 `& i* Y* A
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% f) W# o8 D" L! T& E) ?3 b) ~5 T
nPoint += 150;
' p+ |+ _) B h. p" j4 i
else if( m_nJob == JOB_RINGMASTER )
! V" z7 o- g# ~3 i& n! R2 q( V% H
nPoint += 160;
; `2 y: {( [/ H9 g
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& U# b( x4 f2 v0 x' Q! c6 L
nPoint += 180;
9 @7 i! }2 n6 N' ?, v, Z9 N
else if( m_nJob == JOB_ELEMENTOR )
9 X- k, m( z& m. u9 Q: G5 d1 \
nPoint += 390;
$ E$ J3 a7 ?! |# C" L8 w
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 H7 i G: ~$ L! K
nPoint += 120;
, g ~ }' y0 _$ ~4 Z4 O
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( O: c( b3 T( Y+ i4 G& E1 F
nPoint += 150;
8 ^& k) F5 g0 r; @9 ~
else if( nJob == JOB_FLORIST_HERO )
( E Q6 x3 Q V
nPoint += 160;
" ]$ k8 z6 S9 k7 L! B# i6 V
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. W% Z1 h* Y e! x$ o( a( F: [' U
nPoint += 180;
) W* o' }) X# q6 n* N6 `3 I3 G
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 o c H1 D- u9 }5 \
nPoint += 390;
& R, `* ~0 E- ~3 C4 P0 L4 c
2 _- \2 B* J( v- ~3 r7 O- @3 `
AddSkillPoint( nPoint );
" R8 q& A2 s% ^% T& L+ d
m_nLevel = nLevel;
) ~3 p3 k6 G0 R
9 i9 _7 M- N" F! e8 L8 M# d7 U/ P
SetJobLevel( nLevel, nJob );
! w4 ^& s' N; \" ~) b/ w
m_nDeathLevel = nLevel;
' P) ]4 g: h# g9 m- K T5 ?6 C
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 K8 v% u6 f% c
if(IsMaster())
, }& u q5 \' E H8 d1 J) x
{
* C5 p4 x) E I" ]: M- C+ R
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ [5 B- u, B, Y H2 o' y
if( nLevel > 59 && nLevel < 72 )
! Y$ R0 v4 z% v7 y/ M6 n* n4 V- l
dwTmpSkLevel = 1;
& Q- l) p0 W- Z }5 z; w2 @( T
else if( nLevel > 71 && nLevel < 84 )
, `* \! {1 t/ q
dwTmpSkLevel = 2;
; R" C* H4 q' l4 b5 a. d+ d
else if( nLevel > 83 && nLevel < 96 )
- h( A R: P& t" J
dwTmpSkLevel = 3;
- n. \7 A. f8 z
else if( nLevel > 95 && nLevel < 108 )
7 S8 A: P: K/ Z9 L) p0 t2 P1 v
dwTmpSkLevel = 4;
1 k R$ Q) D* E% H
else if( nLevel > 107 && nLevel < 120 )
# ~5 {5 E) y$ |$ F3 u/ V# f0 q! F
dwTmpSkLevel = 5;
& J0 i( _6 [9 ^5 F8 s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; {& n; p2 ~4 F
{
( X# U2 J6 V: L0 \
LPSKILL lpSkill = &(m_aJobSkill
);
- c `' W- d" t3 w5 q. ]) X
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, [3 Z: V2 U+ {
{
2 J/ M l: |. ^, S- [4 y' Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 H6 ~4 e) z2 r# k
if( pSkillProp == NULL )
9 J. G: R, L$ b- B- P# c
continue;
# ]& C. q" b6 M4 @8 { a) t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 J7 x- ~ T( ~
continue;
4 K+ u" y- R! {! R
lpSkill->dwLevel = dwTmpSkLevel;
1 ?9 B M8 P6 A9 K: {$ \
}
7 N! Q! N- K4 T9 k' q$ g4 C. E. q
}
3 N8 G+ A Q6 C& d( O4 _, y
}
/ W/ H* n7 n/ x" M6 K8 I2 u
else if(IsHero())
* ^: [4 |9 E4 R0 D2 o% k4 X9 ~# q& ?
{
* S: s9 o1 A- R/ d' g; h4 }" H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* I Y8 b6 B, U W- t- l
{
" `; |5 }0 o+ _- ~7 D
LPSKILL lpSkill = &(m_aJobSkill
);
. q& y1 @8 F/ o
if( lpSkill && lpSkill->dwSkill != NULL_ID )
{7 F; O, Z7 E4 s3 q! o- [
{
# ?$ S2 G6 A( Q# q) x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 l; V: b8 `1 Z# }/ ^+ A: h( H
if( pSkillProp == NULL )
9 ?5 c$ G; U1 j# T1 A; f; [
continue;
J3 N9 f5 _% D' G0 E1 n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' R5 T6 M7 G' Z8 `% c. G: y3 p
continue;
1 `3 A! p- z) |) t2 F6 l) f" O! P
lpSkill->dwLevel = 5;
0 j! b' E) k6 r( G ^& n5 z6 d
}
0 g: T T5 z. X& _" K7 b
}
; Y. `6 w/ J, U. s( F" K2 D; z7 n
}
/ {, q5 u G& ?. T7 ?) B1 W% s
else if(IsLegendHero())
! N) T4 q* R4 {7 m4 `1 m
{
: l! H# d7 t+ j; e8 E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, j7 `( C' i8 h5 j6 a$ F$ m
{
5 M6 F4 \- p1 I t/ I
LPSKILL lpSkill = &(m_aJobSkill
);
9 f& J3 C' f0 Q1 [) _2 U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 y, |5 Q4 X' d
{
1 Q/ v# r8 i( `! M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ A: G! Z* G( K. d# J
if( pSkillProp == NULL )
@9 Q% A7 y6 ~" |! ^) L4 n: b4 M: m
continue;
4 X; I. ? }1 o5 e# j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 G% v6 k. Z* w) E9 X% m2 A+ a
continue;
9 t3 I. B, Z' U0 q" Z" a: ^9 j
lpSkill->dwLevel = 5;
9 y6 R- t" u. d- M5 W4 E
}
1 d( A; d9 q+ m
}
* ^8 I! N' @7 C; s! d, u$ w
}
4 A. R6 D6 I- Q. H: o
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% q# X2 `) e2 O( V
if( bGamma )
, a2 O' u+ f7 n& e9 x1 \% X' I
{
& J5 W6 u! x( F: Z3 t
m_nExp1 = 0;
7 M; _# e0 P, U; L- d5 T* H1 H
}
: D6 C$ M1 g7 \
0 O* h2 _5 ~: ?: ]2 ]
( (CUser*)this )->AddSetChangeJob( nJob );
8 z; |- r* k ]3 y8 [# c* W
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 @ m4 C' D8 X, N- e
; V y* R) u7 J- A. _
8 \1 Y3 h I) k6 k( _3 w
#if __VER >= 11 // __SYS_PLAYER_DATA
% @. h6 |5 n D8 O5 j. N+ X$ A6 k9 e
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% z) ?. P/ v4 a3 @7 A7 Z
#else // __SYS_PLAYER_DATA
. Z8 T5 O2 F5 y f6 o2 s+ J9 d
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ p7 g) T) h t
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ I- x, x+ V' ^
if( m_idGuild != 0 )
* q- s- H' y1 D# e, s
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 C5 F; l1 D1 E5 O& @
#endif // __SYS_PLAYER_DATA
# i* L, [5 d' z2 z
SetHitPoint( GetMaxHitPoint() );
+ ^$ L5 J- A9 ]5 K7 f" A- r
SetManaPoint( GetMaxManaPoint() );
' Y/ o; s7 F8 i# t3 E; ]3 ~
SetFatiguePoint( GetMaxFatiguePoint() );
" K2 A$ P; u0 {6 v, e7 P
if( nJob >= 1 && nJob <= 4 )
( n6 K6 E7 b9 Z' q' U
{
/ m9 y8 r- ]) Y5 x7 p7 s9 [
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! k8 R0 Q# A* N, I
m_nRemainGP = 28;
8 r! x# J- @5 }" Q% D
}
& D8 K; E7 {* G' k( p+ b2 m
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
F; y2 F0 h/ ]* j. K2 Q$ K
{
5 g$ K1 N/ r/ e( j, ?. C
m_nRemainGP = 118;
5 f& m" g( f( h) {# I: y; r+ A
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" }* ] J! F) |1 X6 X
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 ], H$ t8 M# L/ X
}
5 X8 W1 \. v2 A0 c2 T( I
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ W3 }& p/ s$ J# }
{
& X( L9 j3 w9 A7 C; M
CItemElem itemelem;
$ y' q% e; \: \! l: O
itemelem.m_nItemNum = 1;
" J T% c H) `& S1 H& T2 p7 T# o
itemelem.m_bCharged = TRUE;
! V% P6 U0 }8 e$ O) z# V( U5 ^
BYTE nID;
: j- G# k0 d! q& c0 G: \( h Z
1 m; C: A7 t4 ^2 S+ G4 ]
if( nJob == JOB_MENTALIST_HERO )
3 W0 K( t% C) H
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 }1 V. V5 {* ^1 L
if( nJob == JOB_FORCEMASTER_HERO )
( O% ]; e/ y) |% ^
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
3 A2 D& q: h# e4 X& \1 m, K
% u4 W8 p! ^( m5 h$ u) X
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 ^ b9 M; \* O
}
3 g/ r( g. D0 y+ L+ H% D3 q H
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ m. Y+ I1 D5 F/ C8 ]( Q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) |+ r% j: D$ K- A( O" I
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
5 f9 _, z' h$ ]; w$ ^6 \. M
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 G4 K- K' k6 p- c' O
( (CUser*)this )->AddTaskBar();*/
# p3 `( L9 u# n
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
h/ P1 V4 h8 |* o2 y
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
O; \( J' b3 H8 D
((CUser*)this)->CheckHonorStat();
! h+ P! |2 |9 ]3 ^$ a0 y x
((CUser*)this)->AddHonorListAck();
: T8 Z- Y! Y# V0 a# a
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& n7 U5 t5 X( F. G' K4 `
#endif // __HONORABLE_TITLE // ′Tà?
' X4 d" @0 e7 I" [
}
% @# e& E, F* s% p0 m/ H; R v8 L
#endif // __WORLDSERVER
; G0 o1 Z" R) {6 t5 e! i: a
}
) A5 N9 j. P8 Q5 L% Z
) Q1 u1 g8 N% I$ {: |# V3 I
然后你进入functextcmd.cpp并添加以下
& f6 X+ X% k, |1 X2 w' U" D
, g( W2 U- C2 Q' I- G
代码:
# G+ j) e' B5 B4 K( ~+ u: o
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
; a# \& o) n {! v( J2 E9 g$ g
下面插入
: p0 {4 P: g0 ?2 F* {+ l& y% U1 W
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
D' O j" g& k. l
/ {$ j0 P+ y; P7 f. Y( q9 k
然后你去
4 _! ^7 K0 O8 I4 \# r/ K6 }
3 W* v8 N5 m9 c( Y- z6 K/ E
代码:
* g8 F- ]5 W& B3 j4 `- s9 n
代码
; K) D0 C7 K, Q0 F& g. K! f
BOOL TextCmd_ClearPropose( CScanner & s )
0 F' e4 P8 D% \4 g- u7 |; P3 c
{
8 w/ t7 v7 K7 r" F) j' e3 L$ {
#ifdef __WORLDSERVER
( b& v# y. X3 A; W
CUser* pUser = (CUser*)s.dwValue;
' E% O& k5 O6 J. [: I
g_dpDBClient.SendClearPropose();
) c0 I/ {- |9 B( j8 m( a+ E
#endif // __WORLDSERVER
+ W& @% s% X9 |
return TRUE;
5 ~7 m; I7 h+ x( k: B
}
7 C4 K: y: d" ?2 B u# n
下面插入
% U" E0 ^3 `5 W& }0 b" Y
BOOL TextCmd_rebirth( CScanner& scanner )
) J+ I/ l1 D% N; h- c1 c% d: p
{
( W1 w3 I2 s0 T4 J' W3 t6 O
#ifdef __WORLDSERVER
2 O; A) ^; r8 l+ z* s O2 T
CUser *pUser;
% M6 V) t& {+ i
pUser = (CUser*)scanner.dwValue;
" m& M& i F7 e
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
( p6 G8 j d+ K6 h! N! l
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 l% y1 q0 {$ N6 |8 u- Z
else
8 ^: Z1 }: _- S1 V- M
pUser->AddText("你还未达到重生条件!");
8 X# s1 m( w5 _/ b
#endif
7 x/ w. p6 N8 S0 T# @0 H
return TRUE;
1 t6 j3 a$ i3 }+ Q5 ~$ V
}
1 ~" S% {7 d. \+ o
6 P1 y9 W1 x* S+ Z/ m* w
7 I, s L2 }! n7 R4 H' U' P. e; ]
9 ` P8 a/ `+ N" B7 n! ]3 ?
3 u, ^8 H6 x/ I7 O* f% Y2 S5 o* \
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2