飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
( |7 n# Q% A; c9 L3 v# z* ~8 i) a
0 C$ a" ?+ H5 K0 b
Mover.h
3 @6 E' O0 P' @, ~, U; T
代码:
0 b& j; q' v9 j* }8 n# _
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( h5 Y7 l" f; Z6 p3 L) C F0 j
# a7 W0 T/ y5 ^$ w1 d
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 g" h. E [! R* d6 b
/ o$ I1 ?+ \: k# b- t
然后你去mover.cpp添加
1 Q% E8 ]9 Z# K# j
0 r0 K& H: k3 b' } U3 Y
代码:
7 L2 Y9 P6 B1 u/ s$ V, f+ ` E# s
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* W: e( `9 h: N( a. I1 c) \. w% `! j
{
1 o# [, k; Y3 { u6 N2 W
#ifdef __WORLDSERVER
' K7 G/ }- T2 X( U# P1 N
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ K2 l& u" s$ N
MoverProp* pProp = GetProp();
( C/ f2 |, r0 t: g8 }
if( pProp )
9 v. R& B: w6 {) O
{
' s4 g" Z! L2 Q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 r" y) G7 |& W7 F
{
6 a. W7 V0 }* i+ w
AddChangeJob( nJob );
5 s& o# e$ N) H& g$ E/ N1 k# r
}else{
- Y% C. |4 @/ R
return;
4 S) g( Z; h: r2 b& S K
}
$ ~7 K R/ A9 x) h# K3 k5 g
int nPoint = 0;
9 s1 \" O4 b! P/ a( L: a
if( m_nJob == JOB_MERCENARY )
/ K5 T# P, }- n, m! f* z! k5 m
nPoint += 40;
& W8 ^2 `+ V/ a# j
else if( m_nJob == JOB_ACROBAT )
+ f. W. S k+ Z. B
nPoint += 50;
! s* O( w( E: M+ w. c; T
else if( m_nJob == JOB_ASSIST )
1 {% v% [, Z: l) }) m& b8 C
nPoint += 60;
6 H# @, B) ?7 y( L" ~6 F
else if( m_nJob == JOB_MAGICIAN )
) E, `8 t$ g7 P3 V# V1 s/ y
nPoint += 90;
4 p: b/ ?9 Y" S
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 w7 A( @: J2 D" z+ _+ a$ F
nPoint += 120;
. B. ~, [; O% @
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ n+ w& Z! ]- J% Z6 K
nPoint += 150;
* a" @0 z2 S+ S
else if( m_nJob == JOB_RINGMASTER )
; r; V& s$ H! y. O
nPoint += 160;
+ U; t# u( c& C {" ?
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- @+ D! L2 D$ v
nPoint += 180;
' K. S7 Q7 ^9 o, q6 P1 \
else if( m_nJob == JOB_ELEMENTOR )
9 U( x& W* U+ @. ^. b# Z/ B, y
nPoint += 390;
. [# b0 I1 } q
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# O+ v- p% L+ X9 l% L
nPoint += 120;
7 X" t. j& o: m5 ^: \* Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
3 h" t0 M. C9 ]
nPoint += 150;
+ u2 }& ^3 |4 B; t3 [
else if( nJob == JOB_FLORIST_HERO )
1 N! @0 e2 j% f2 y7 S2 v$ F% x
nPoint += 160;
5 j: v3 k$ ?9 F1 j) }! ~
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
* }& y0 K' b8 P+ V( o9 ^
nPoint += 180;
4 c5 @: x! ?/ I' g
else if( nJob == JOB_ELEMENTORLORD_HERO )
* [6 z' L) N8 ?& F
nPoint += 390;
0 H0 W k' D8 c6 f
7 K( Q: u8 ?% X( R
AddSkillPoint( nPoint );
5 j s7 c" Z% t8 y* a& h! D5 J
m_nLevel = nLevel;
& P, Y5 R2 [1 w% e6 t. R
D* a- v6 Y% Z: g: {
SetJobLevel( nLevel, nJob );
J1 W5 d' d! e* k8 U
m_nDeathLevel = nLevel;
- z/ V3 @- r! |" d5 R
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 z2 `5 E( t5 X8 O( I
if(IsMaster())
. L5 ]& V; G; ?
{
6 J- T$ C+ \; T! b' [- [
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- n$ }/ [* e: i2 A( K$ c
if( nLevel > 59 && nLevel < 72 )
0 g) c+ ]. a! p1 K* ~
dwTmpSkLevel = 1;
$ k1 @/ F( K6 C0 D0 w0 \+ e$ {: h
else if( nLevel > 71 && nLevel < 84 )
; n- ?: R7 u7 \: f( j' `2 `
dwTmpSkLevel = 2;
: Z# y" {6 F+ O( q: a7 i) f8 o- m0 O
else if( nLevel > 83 && nLevel < 96 )
2 r6 s3 u) Z+ f, ?# {1 g3 v
dwTmpSkLevel = 3;
; _: X0 \' Z/ P3 w$ R
else if( nLevel > 95 && nLevel < 108 )
7 `/ X+ {6 }0 q' O# I, M7 @
dwTmpSkLevel = 4;
9 p! e5 o) c# T0 \' M* h( Q
else if( nLevel > 107 && nLevel < 120 )
3 c8 w. m' X4 R0 m% x1 f3 e3 v8 T) l
dwTmpSkLevel = 5;
$ L8 z4 Q4 Y; E1 y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ a9 Y- Q! z, m
{
4 A7 v- ?& ^" l& a8 n0 E% p8 H
LPSKILL lpSkill = &(m_aJobSkill
);
E0 l% M" Q0 Q8 l5 H0 Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ ]& R+ t( w8 b6 Z' s" v: F
{
, P4 ?! ~: n- C6 O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 ~% \7 U' x& m: }3 U6 s9 o
if( pSkillProp == NULL )
! P1 `8 p2 A+ c
continue;
1 `5 f% ~% H/ I: x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 U# |; F+ e% B
continue;
8 p4 i# I% ?2 r) P9 k1 _) ?
lpSkill->dwLevel = dwTmpSkLevel;
' s; \$ h( j. Z$ r) O5 M
}
' T6 ^8 S+ I S
}
* ?5 v7 k+ E5 ]. {. A# Z9 g& T
}
7 W c! h# Y T* w/ D
else if(IsHero())
7 j5 O8 L- B4 R/ r) l# {' }: N
{
1 T# \& n( E5 g. l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 _/ {" v) J- U9 P
{
/ v% E* {" A$ F0 |% P9 y
LPSKILL lpSkill = &(m_aJobSkill
);
0 a# q) p" K' T
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 b% K% g: o* _) b, h$ Q
{
; W' z1 R9 n- b8 |+ O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 R, Y) F- W' I ]
if( pSkillProp == NULL )
) z- T1 h* f% y8 h( o2 H
continue;
9 j! |5 }) c- m% c6 S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- ?: Y6 F) r2 Y$ p3 N! z' ^
continue;
1 A- e# _- f% ~3 Q: B# t
lpSkill->dwLevel = 5;
3 ~ q' T, j+ r
}
) u9 H1 A, _9 |1 k7 q
}
, O1 j3 u0 @* k' N- x0 D
}
P* J4 V6 S0 n1 H3 B- M
else if(IsLegendHero())
7 C- v" H2 b' N4 V( [
{
7 b+ S$ n7 N" B: l, ~
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. ~) P# j! d& v: X2 p' x
{
1 ^ q# e7 E: y$ T- v) @; P4 `1 Z* A9 A
LPSKILL lpSkill = &(m_aJobSkill
);
8 }: ^' \" e4 y% [& t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* D5 b0 s2 M% l( e3 O1 v
{
9 z7 }6 C1 U! T* p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 [- G3 m+ J4 E5 c/ K" z, |' r
if( pSkillProp == NULL )
% S1 [9 m2 s: ?& l# x
continue;
; ^. h( ~4 m" y% b; d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 `" k% W1 g; i: D. h1 @
continue;
r6 g# g5 D( e5 z1 X5 g3 X5 |9 p9 _/ \
lpSkill->dwLevel = 5;
1 }2 q% M9 T. W. f% n, [3 F+ m
}
. x' h+ D' B2 |1 O8 `3 s; i
}
! p( I" a! b" A8 Q% @( O
}
, C' @* R( J m/ I4 H! z, I4 F
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 F+ c8 n& a' e4 x( p- G) d
if( bGamma )
1 o Y- m9 n$ y. h
{
, l. L5 J J; N' i# R% [: G
m_nExp1 = 0;
2 b" V; ]0 D, j4 |' P
}
: f3 `: U+ O0 V, i9 P p5 h
' z( u/ L, T( C$ o
( (CUser*)this )->AddSetChangeJob( nJob );
% Q3 S; ^$ R( [- ~7 N4 f$ _/ {) y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
* E/ P7 e+ G8 G4 I4 r. s6 ?
7 x+ e0 R0 R( \2 S: b& a* B$ ]
4 d; \0 |% i3 D9 Y9 R
#if __VER >= 11 // __SYS_PLAYER_DATA
+ D) x4 I: {' w. ? ~
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% u% S+ C* B b8 Y( ]0 P: o
#else // __SYS_PLAYER_DATA
( W1 k0 Z& _3 [3 g
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 `8 ~1 R5 z* h" U. \8 z
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( `( q2 b/ V% d9 [) Z" D% ]
if( m_idGuild != 0 )
: w' D G9 \0 K% \& n: T
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 V9 s9 C s: [ ]' r
#endif // __SYS_PLAYER_DATA
& Y8 h7 t3 C+ d
SetHitPoint( GetMaxHitPoint() );
' J, a2 u2 p1 B
SetManaPoint( GetMaxManaPoint() );
7 J6 J2 b* ]; S
SetFatiguePoint( GetMaxFatiguePoint() );
1 p8 N- p6 g; y5 j, z7 N* _# m9 s
if( nJob >= 1 && nJob <= 4 )
7 K# }; z: R- T& w) U5 b$ H
{
- E6 B( H# B: j% F+ w
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 g! r/ M1 X/ Y" v5 q
m_nRemainGP = 28;
% R- M N6 S, N& Y: m
}
2 L2 }6 D* i: \' S$ C+ j
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) I& F0 @ K0 w+ _- [" j
{
0 y! ]) L2 E+ X0 z' |4 x8 X7 B8 I
m_nRemainGP = 118;
% z- ]2 ?# A: t+ g$ p4 b% Q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ z$ G, m8 s+ a9 k4 i- U
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 k9 ~2 |5 t9 S3 A" Z! T6 F) R: ?
}
3 L5 k$ o+ F- N5 q1 F7 o( _1 ^
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ r3 _% i0 p0 s4 j% X: w O9 ^
{
( H3 `; x' U* C9 ~5 Q' ]
CItemElem itemelem;
( l! N* N4 T4 i; n( }' G( R
itemelem.m_nItemNum = 1;
2 G, d+ l( q" ?) T% X
itemelem.m_bCharged = TRUE;
8 ^9 ]+ m$ v" I! g8 c
BYTE nID;
x4 T6 h4 C; B# m) R6 X! m* m
" W$ _4 f& i' l* }( l5 v8 Y
if( nJob == JOB_MENTALIST_HERO )
* W% d7 T5 _) q/ [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
; l0 A0 _* [5 @3 C K
if( nJob == JOB_FORCEMASTER_HERO )
+ ~+ U5 S% B+ }0 k
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 t' q* K x8 w( J5 W& U
& e% @/ ~4 h3 W
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 s% H" ]" |$ ]! W! I4 |
}
z9 E! m3 S' b
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
0 R/ S0 C2 b/ }1 C
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 S) z* G" E( Y* U7 F" q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 l% V# s$ u% J, q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
) i& D4 e6 J+ g7 L
( (CUser*)this )->AddTaskBar();*/
/ ]: }2 N3 e- Y0 u4 `6 r" ?2 l
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! y* V/ c& P8 Z0 J( I/ g; V- m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, a7 i: ~; r- z5 J8 E D9 y5 D6 L8 K
((CUser*)this)->CheckHonorStat();
1 J- [2 _/ u8 D9 @" p% V. S
((CUser*)this)->AddHonorListAck();
) X' w' A8 ~6 T8 C. {0 V2 D
g_UserMng.AddHonorTitleChange( this, m_nHonor);
# K0 u2 u6 E# Z$ S; I" j
#endif // __HONORABLE_TITLE // ′Tà?
1 m4 v, _8 D, s: T) ]% T' \
}
3 L% d7 W! K+ z8 p7 O/ f1 s
#endif // __WORLDSERVER
, J/ `; ^* ^0 Y' Y! ~
}
2 A/ v5 i) n U! ~
8 R3 J0 a( Q- o2 {0 O& e6 ]% w+ L
然后你进入functextcmd.cpp并添加以下
- P3 ~; u0 T3 T! I$ F( Z* i
) ?4 G1 ~! D7 U$ ?; l* B7 U
代码:
6 X3 f9 E4 Q& I; ^2 X
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% P5 D; l; ]3 O% j- l
下面插入
* i+ P; [, F. J7 P* c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: Y7 w1 I4 q( Z+ r/ l9 i
$ o7 H6 F( R2 z& V& n: s% j
然后你去
2 M* c+ @4 g9 [- F) J
) {5 s5 @: T V$ k& b3 |- a
代码:
- C* Y" }0 j2 ~
代码
$ f7 E6 A! F6 k; M8 E1 t- R
BOOL TextCmd_ClearPropose( CScanner & s )
/ m0 H- p- R5 I: m
{
& y8 b0 |& T8 {, v2 h4 j
#ifdef __WORLDSERVER
; {' `; @5 z# l
CUser* pUser = (CUser*)s.dwValue;
0 g6 g1 O; i4 Z. h- U; r
g_dpDBClient.SendClearPropose();
+ w9 C% N( B! p |3 m0 V
#endif // __WORLDSERVER
- _* D6 H" y, S0 U* }! O+ Q/ ^! T6 s
return TRUE;
! a) y8 U {$ W/ ^. S
}
) B" j7 I# m3 z4 D1 x1 {
下面插入
2 h6 c( c0 P% X5 `
BOOL TextCmd_rebirth( CScanner& scanner )
! ^0 D- L* }, G% s2 x* n
{
5 P5 H' Q+ ~, ` a
#ifdef __WORLDSERVER
- e" i1 O" d; s, Z) Z
CUser *pUser;
( |# _ \ [/ z: a: O7 d! y& z
pUser = (CUser*)scanner.dwValue;
* y/ B: ]) A Z* @5 P5 ]0 }5 f
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
; R) ?% |4 I, a9 n t0 P& K. S" H
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 l1 \, H; B' k) _# ` W1 e
else
% Q, f/ E+ Y+ ^7 d i* a
pUser->AddText("你还未达到重生条件!");
9 h5 R, i$ T2 x( k# X) g$ Q1 k
#endif
& [; n, }" P: G9 G
return TRUE;
: d, N8 L! R; O% N
}
$ a, a$ I& S! ^( i0 ^4 n
- F: L- h+ ? m( M# p5 w! }( g7 ~
6 U% F% S4 @: H( z
, Y4 _3 R1 ?5 Q7 S7 i( c, p
+ L+ _' r7 A; b* e* u( V' \( x
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2