飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# w( @) k+ o2 k) I, Q1 w$ L* y
; e# Y. r: l8 J$ j1 a' }, y# u
Mover.h
/ _8 r! B& _- a$ S$ y7 m
代码:
& t5 \* i; q1 N& V( U: ~! Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 c8 Q1 Z6 X4 |3 b, v8 u
! ?( F+ w6 q) d. s
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
$ c& Z3 X' j& D: G2 ?# a# j6 X
' z& j! e; T) j& } R0 t
然后你去mover.cpp添加
8 `& v1 |; P- v, t3 J6 q
3 K2 G( @& F5 b. b; q
代码:
: M+ V9 c j7 I" o8 s. [' w T
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 c- v0 r1 c# `9 s5 v$ F. G
{
' X* p. o, W! J: g7 @' J) X9 |
#ifdef __WORLDSERVER
" K/ g6 G2 X Z# G
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: J: ]5 K/ e! h& g# _, O
MoverProp* pProp = GetProp();
* u) N3 e) h. M8 j7 |$ m6 |2 v
if( pProp )
& q" H6 F+ H7 W1 k
{
/ z; z- Z0 a5 `; v" Q/ |! T
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
& d8 Y& |4 j6 M( G0 v( u
{
6 C2 J& e8 q& i) O5 C# o% S( T
AddChangeJob( nJob );
, d2 ] C5 l2 j( C% W& A
}else{
1 s9 ]% R7 U2 W
return;
# P/ G5 F: Z& x% d! s
}
0 y! z/ u! c7 a4 i% T) F+ y' n
int nPoint = 0;
3 `1 J& e1 D. W! Q
if( m_nJob == JOB_MERCENARY )
; ^2 d. d7 N2 W1 O# }0 R6 f
nPoint += 40;
2 q# q! h2 U# B! v
else if( m_nJob == JOB_ACROBAT )
9 h3 K4 _/ f' Q# g
nPoint += 50;
" e- a+ }( O8 G5 D3 v r8 h- G- X W
else if( m_nJob == JOB_ASSIST )
% Y- v: e. z7 X' z
nPoint += 60;
; X9 ~9 @' T' K3 S% h6 Q8 k
else if( m_nJob == JOB_MAGICIAN )
: Q' }3 Z8 ]. C
nPoint += 90;
$ J n' M& a) g( w& m3 U) k
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 B8 I0 z9 t5 s# R- b9 ^ _9 S& E2 H
nPoint += 120;
( \' I) J- M5 ?6 y+ P9 A
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
/ c6 W6 F- ?! v
nPoint += 150;
$ `- x, O4 W: R/ ]4 f5 o, D$ _4 P' a
else if( m_nJob == JOB_RINGMASTER )
- R9 V; N% U5 Z) |/ ]
nPoint += 160;
( }- k, B3 _1 I9 e
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" }; X# W @) u, o8 O
nPoint += 180;
6 A$ a6 V: i4 C4 Y0 O0 c* x
else if( m_nJob == JOB_ELEMENTOR )
. R" M9 K" b! [0 o/ i2 z# E3 s+ Z
nPoint += 390;
9 @; W/ @; x! E$ V( {9 }0 l9 K6 P
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. j0 s2 O/ q2 b8 v& ?
nPoint += 120;
! l! ?( {/ X, F% `8 X
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ N0 \* @4 a3 z5 f) L A5 E
nPoint += 150;
7 ?1 F. `* b' m" }% ^, j
else if( nJob == JOB_FLORIST_HERO )
& F: ]0 E% ?* ~, \0 z3 y
nPoint += 160;
2 e& k! P; T3 M1 @4 T& ]! B
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 l* X& V( X0 G
nPoint += 180;
( z+ B1 H7 d, c L- E7 C4 c5 f
else if( nJob == JOB_ELEMENTORLORD_HERO )
+ o. h! |+ @3 w# o. R
nPoint += 390;
+ y4 T5 g+ \' ~4 r; V
: s. C2 }, \1 Z; C Z
AddSkillPoint( nPoint );
4 P7 X- _; }! j! c3 M" L3 s O
m_nLevel = nLevel;
9 h$ O- E& G0 m* r' Q* S
; c8 [) V8 R6 I, ` [
SetJobLevel( nLevel, nJob );
6 C, w# |' w, m; U) Y
m_nDeathLevel = nLevel;
0 W# V3 Z3 M4 A4 S6 ^& \
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* N( X) L! ~0 X; I; A9 j! \" E
if(IsMaster())
( W/ P2 R) d _
{
; [) j2 Q4 F5 B% q' K) l
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) e7 ?/ H& J- x; u# H
if( nLevel > 59 && nLevel < 72 )
% t) S& z3 S, \/ |1 I8 @
dwTmpSkLevel = 1;
! l8 N+ T/ b& | p( M2 T$ Z( d
else if( nLevel > 71 && nLevel < 84 )
5 F+ J% s# M e. v
dwTmpSkLevel = 2;
9 H5 j5 E4 ^5 ?$ g. i {7 l- q
else if( nLevel > 83 && nLevel < 96 )
0 v" V! A; b1 W1 b
dwTmpSkLevel = 3;
* O5 a# u5 m$ e( N Y* Z
else if( nLevel > 95 && nLevel < 108 )
/ A+ h" |, O9 j+ ]8 v! I
dwTmpSkLevel = 4;
5 w5 P! p3 T y s, \/ M9 x% J
else if( nLevel > 107 && nLevel < 120 )
! O- e' z: y- c+ ~6 ^- \
dwTmpSkLevel = 5;
8 F8 {: {: V' h! E( c
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: l% L2 l% Z) D2 l0 Y ~# [: H* L
{
1 _, m$ E4 Z- h4 h4 o7 z
LPSKILL lpSkill = &(m_aJobSkill
);
+ ~* b+ C$ r0 i3 q" i
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. b% N# k2 w8 g+ b! J' {. Q
{
5 g6 J6 ]. N5 F% ?) v9 F* `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 |4 N5 ]9 @3 A/ M
if( pSkillProp == NULL )
1 h8 Z- R1 u* [2 K: c4 u
continue;
7 i W, i' z6 K7 ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" o z! z) ^: D0 H+ l
continue;
5 a# L# \8 {6 o# j
lpSkill->dwLevel = dwTmpSkLevel;
4 c4 S X* C. }" n6 d
}
0 N( v# c; X1 J" L+ A/ w
}
4 E8 j: q, q" x2 u w: @
}
% N! A. Y3 ]5 M
else if(IsHero())
) h7 e- D# ]- H! u" b
{
8 ?8 [+ V) b' ?! D9 e: R1 E! m" g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 F) l: H9 ]2 |
{
5 ?/ g& d0 o1 [% d
LPSKILL lpSkill = &(m_aJobSkill
);
! U' Y! H/ s$ d# u2 I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 }: u% b& s8 Q6 N
{
% i& [% H, u9 [* x7 L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& D) G4 w' W% Y! V3 W
if( pSkillProp == NULL )
' T* y) Q& [% U/ I8 G# G% o# B
continue;
& i! Z" C1 j/ V1 ~5 C1 T6 z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; X% Z8 I7 u# H
continue;
+ [. h# v: G% \* k- z. ?1 f5 g
lpSkill->dwLevel = 5;
7 i$ {$ y+ M1 w
}
) M5 Q9 d( l5 n8 E* L6 q8 Y8 n* m
}
6 J, e8 K1 z+ D! I. q, m
}
" P5 L9 \2 f+ j& v! R0 Z' \
else if(IsLegendHero())
" s5 _: N' }( P( ^
{
8 C/ M* J- S) u5 ~0 `
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& Y8 j( |! B8 |( D) z) x1 O/ v- s
{
# N* N0 v6 n" K
LPSKILL lpSkill = &(m_aJobSkill
);
3 B% o+ v; U; t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 f0 k2 C$ s0 C# p( z; a" |
{
! z( t2 x" x u! Q" Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 u9 K$ Z' q' _3 T
if( pSkillProp == NULL )
3 m1 F* Q" ]: P) E9 U* [
continue;
, }3 O# r" a) m# r; h
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, @2 b7 K% E4 V5 U1 Y' v' e
continue;
# l, p ^! R. P' h
lpSkill->dwLevel = 5;
% R6 p* a$ z2 Z9 o% K2 O/ I% }8 |
}
! Y9 E& ^ o+ n# |# s( G
}
8 y% I! A" ~$ s6 n5 y/ N
}
0 w; ?9 ]. r/ C$ p
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& C+ V+ V% j9 a: i# c$ }
if( bGamma )
! V6 u/ F6 C1 ?( l+ q, y( W3 T
{
1 u& P8 T b) Z- O7 H
m_nExp1 = 0;
" C2 a) N( Y6 [# b; B, Q, j0 o& ~
}
( w" {( m8 h4 Z% S
* s% V9 i4 P$ A" \% w2 c
( (CUser*)this )->AddSetChangeJob( nJob );
# W, e, l% \" ?4 l$ x& A
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 P2 r3 Y' ?! X/ a; h. S% Q/ ?
' a w. S6 X, _- s" E7 D
0 @: z7 @3 d& C, p# ?; H4 P4 Y
#if __VER >= 11 // __SYS_PLAYER_DATA
$ a* @0 n- ~' q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ e4 ]" A: X' O5 W& H. y( f/ |
#else // __SYS_PLAYER_DATA
/ d7 J" c$ j% a! A5 v* R2 Q: O
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 I& A( |2 x" o' u% _( h, \" N1 I
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' w% ]6 ]( U" J' v
if( m_idGuild != 0 )
* h# ~" _' t( H s: u* E
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
. Q0 Z4 d+ A6 }1 l) O% h5 f
#endif // __SYS_PLAYER_DATA
9 K: y7 L5 i+ b* ]2 U# j) ]+ w
SetHitPoint( GetMaxHitPoint() );
( N n5 D, C+ B% r
SetManaPoint( GetMaxManaPoint() );
- p* a$ o6 i+ Y T y
SetFatiguePoint( GetMaxFatiguePoint() );
; v! |7 G1 r6 B0 X6 Y1 w! t
if( nJob >= 1 && nJob <= 4 )
$ B$ ~, r$ K* ^7 |: w! w
{
9 F2 B0 M6 b, G" m+ I, E, E' I
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 O* q7 `7 p# K6 p1 p
m_nRemainGP = 28;
8 [8 } \$ I) o+ y/ u+ e
}
4 M. P: `( z; }4 N" y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
N0 O" m# ?5 \- ]
{
: o8 g& A8 I7 x4 |0 G# _' V
m_nRemainGP = 118;
# W/ I9 [# A5 m' K @0 M# [0 [
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' v+ ^6 y2 \1 t+ b4 Y8 x9 Y( Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ r( R$ D+ b( X- ^ f1 U
}
5 X' ~7 C* }% `2 U; I: h8 Q
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# r: Z+ m, k& n1 X
{
4 e# @ z+ {: y8 v1 N6 \2 a. i2 d
CItemElem itemelem;
/ U4 S" r7 I. d
itemelem.m_nItemNum = 1;
- L0 N% l, j( b$ Y; ~
itemelem.m_bCharged = TRUE;
' m' k, j& A, E0 c$ R7 x
BYTE nID;
/ x, e& v; C2 @, t# b( {: K# ^
2 b3 _8 W' j/ _' _" L
if( nJob == JOB_MENTALIST_HERO )
: m x# i& `2 u9 w- n% w
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
n, Z+ k3 r$ c! Q* x5 D
if( nJob == JOB_FORCEMASTER_HERO )
: l" Q: Q- {" `
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- {0 x! W3 J$ L! e2 O) L2 D0 L n& a
% T. K2 L. q6 E; |# R3 j# I5 T
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 e i0 {! F- O! r0 v
}
; M1 m5 z2 [8 B2 E G: n' x! ^
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 o( T3 d. @5 J) I1 q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: [5 e, C7 p, g9 u
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 m8 G: m2 V- o4 r0 R7 A
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% q) N7 D+ @# M1 M6 `
( (CUser*)this )->AddTaskBar();*/
8 U" ^7 y; ], N. U( `, e+ ]
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 `% b+ w' v+ I
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
# W$ w' r# x% f1 K; a
((CUser*)this)->CheckHonorStat();
2 _1 ?6 J0 g7 n o( F7 N: Z3 h8 f
((CUser*)this)->AddHonorListAck();
+ i3 N" Q) ? H0 C0 W; [
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" W& V1 _* b) f+ y7 j: ?. D
#endif // __HONORABLE_TITLE // ′Tà?
. `; _* U3 i+ h
}
0 o( J$ Z" `5 B, U) y) a
#endif // __WORLDSERVER
0 d* a5 p! d" u3 U# m
}
5 Q* O6 A9 r0 n4 {0 d
* w3 n3 A, z5 I& z2 A' _1 g
然后你进入functextcmd.cpp并添加以下
5 K; l$ I* \; @. E: n0 x4 n
7 A) o8 i% y& a8 b! l
代码:
) u4 q( y( D; q
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 X5 _( ~8 q9 s4 n0 J$ K- \8 N
下面插入
' T5 Q7 O$ m! ^; n! H& ?) v8 f X
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) l0 R( d# q: \$ U0 c3 d# ~
; t: F8 U, y4 v5 W+ h5 _
然后你去
8 ?: R/ Q" l$ |3 v& L2 f9 u! c8 Y$ y8 ^
: g+ M1 W! m6 }; l# ~% I0 |0 `( g; e' J
代码:
4 d, ^- U8 K5 `4 ?
代码
9 Z2 Y; s% ]* p. B
BOOL TextCmd_ClearPropose( CScanner & s )
: y9 m- D- ^1 A" V. R
{
! M- E3 E# E- l. J: O2 H
#ifdef __WORLDSERVER
: I! p0 _' s5 \6 [$ ~
CUser* pUser = (CUser*)s.dwValue;
0 a% e* i: S- j
g_dpDBClient.SendClearPropose();
8 s8 j& N4 E/ k/ d+ U( S$ W
#endif // __WORLDSERVER
0 F. k* `: ]6 V- v, k P
return TRUE;
# H' `6 }- q7 V7 g4 z. y' c# b
}
% D# {* r) y' Y* q* r u4 x
下面插入
8 B/ m. P% g9 W) y& M7 H9 s
BOOL TextCmd_rebirth( CScanner& scanner )
, f: d6 _! | s$ m! \+ [
{
- L8 \+ `. w, T/ [4 f6 ~" u
#ifdef __WORLDSERVER
/ H% x9 r% y, j- O# y% ]# j
CUser *pUser;
' h0 a, B0 _$ L( E# `$ C
pUser = (CUser*)scanner.dwValue;
0 v: D" Z4 e' e
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 J( x/ d: ?( N" \
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 Z a9 u* e+ o1 F; M
else
* q& B; k2 ~$ S# ?# A B
pUser->AddText("你还未达到重生条件!");
) W2 c( T7 u# d: Z6 ?7 @
#endif
9 z! W0 {4 }7 }. z, C8 f
return TRUE;
" R6 e) ?; H' h# B7 L# N
}
* F; J; V C; s: @7 U& |! [7 A* W
$ z: e; q3 j' a
5 u- z4 _0 P, S- d7 Z3 S4 n
# Z( L9 x* r, V8 l
7 I6 W7 r9 j2 l* V
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2