飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
- Z* J. Z/ ~0 J" @
6 g- E+ H2 l( ]$ _, v4 D3 o
Mover.h
, _- ^8 x4 H& N B+ l, U, l! k
代码:
3 Q: J Q2 l5 d( [2 P7 b7 Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% g ^% u5 ]3 h0 g% i1 E
6 C' p* G, n" u) C% o6 i m! X
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ M4 G$ [ D- ~6 I, T. m
' `* e) i3 v9 [' y1 q9 [
然后你去mover.cpp添加
3 t7 Y- } Y, O" H8 o: Z3 a, `
! l& E. V, ]6 w; z7 n* t
代码:
% y1 {4 s) ?9 `% c' ~# r
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
?% R+ N4 @8 D L. \- j) Z
{
' o6 H8 z4 D* g# z4 N- O8 S
#ifdef __WORLDSERVER
+ \* V; D* r0 E" w+ I, f( G9 ]
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: C) K) [7 M0 U8 p. O! @
MoverProp* pProp = GetProp();
. f$ T' t Z3 ^" P
if( pProp )
* U9 K8 |- q7 d3 B. a0 b
{
5 w; V- K M! L5 p7 r4 W+ `3 }/ k6 D" K
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 K3 p* i" o2 `# Q/ F
{
# ?, ?& H0 v' w
AddChangeJob( nJob );
. i4 K5 P2 @( B: p1 P" K4 A6 ~
}else{
8 [" y* a' u$ @, q( \+ D, U2 |% V
return;
+ _& @8 a2 j" b+ O }
}
9 T2 F( z8 f3 W0 P
int nPoint = 0;
, N3 T1 r, j: {6 h* L3 }
if( m_nJob == JOB_MERCENARY )
. k% n8 T# x$ K/ _5 B4 { g
nPoint += 40;
! s. i0 W0 X* H$ L+ [- E. C9 a7 ?
else if( m_nJob == JOB_ACROBAT )
& v% P2 q- I; L& x9 k1 G/ s& F+ Z
nPoint += 50;
, x# U" d3 b0 V# ~3 X8 I6 R
else if( m_nJob == JOB_ASSIST )
- o- Y5 ]( L( b- ^6 P. {
nPoint += 60;
$ Q& ^- D1 H: ]( b# S
else if( m_nJob == JOB_MAGICIAN )
# I6 t/ C6 K" S2 p* i, m( S7 N
nPoint += 90;
6 ~9 R0 }, }; O; e
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
, f/ _# C7 s& f4 O+ R$ N4 B
nPoint += 120;
# j& Y7 c2 u4 F R& T3 J6 k+ H) R4 C
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: N- \8 D! M) O% \ G
nPoint += 150;
6 m9 R* D& V% z* e# D# m
else if( m_nJob == JOB_RINGMASTER )
8 g) f( i. e, i. i8 z
nPoint += 160;
+ S7 Q3 z- Z2 ?) m; a
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
d" \- r9 ]. k0 f
nPoint += 180;
6 j9 j1 E& ]# L6 d# j! `4 f
else if( m_nJob == JOB_ELEMENTOR )
; w1 I4 p5 f9 ?2 X
nPoint += 390;
& C, h) u2 P: i6 x
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 ?0 V* Z7 C" f+ V/ z; l
nPoint += 120;
. x$ y# F# k8 E/ k% d
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* Y2 E2 Z3 w( C! G1 Q0 s( G
nPoint += 150;
9 d7 A4 U2 Z# a6 G) ]2 h. k
else if( nJob == JOB_FLORIST_HERO )
# e+ T: s' D1 |, k
nPoint += 160;
! c1 X6 u: M5 s% O
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" w- O7 R: ^1 K! K. K; Y/ ]8 R/ }% G/ S
nPoint += 180;
9 W; u5 @) o4 w
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 R9 }! N! @% p3 O
nPoint += 390;
% c' K2 D/ v5 b; v+ o" K
4 ?, ^ j( y" C! r! |/ F( F6 \' _
AddSkillPoint( nPoint );
2 l# H0 v, g" P% N' I
m_nLevel = nLevel;
) y. h c, J8 O& k. y) S p
# g, r2 k: T3 J# {
SetJobLevel( nLevel, nJob );
% B3 w, q+ i& {0 u% P' S7 }
m_nDeathLevel = nLevel;
" \' s8 c# G& v3 m- _ F
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 Q) E$ q7 {# `9 ?
if(IsMaster())
( J$ e5 Q2 X0 O; h& s/ D+ ?- I0 h$ i
{
. n: w; s' c5 i8 o
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 A1 V2 j" s2 a9 j
if( nLevel > 59 && nLevel < 72 )
. J, B1 T/ k; S" L; G
dwTmpSkLevel = 1;
- y7 D6 c3 M# K# w' S4 u
else if( nLevel > 71 && nLevel < 84 )
7 M( L; J( {1 t/ P
dwTmpSkLevel = 2;
+ ?" v, f; E' X) @# F
else if( nLevel > 83 && nLevel < 96 )
$ g* s, g& I. E1 b- }4 h
dwTmpSkLevel = 3;
3 I" Q' J( i3 E
else if( nLevel > 95 && nLevel < 108 )
8 s* {0 H7 R% K& U& a& n. w+ R
dwTmpSkLevel = 4;
5 o2 N( [& M: |& _
else if( nLevel > 107 && nLevel < 120 )
2 [8 H% `9 P1 `8 X' e
dwTmpSkLevel = 5;
& \. a( I/ }: h$ ^# E4 n3 }
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; A1 J) i( D% A$ o
{
/ [. N& e9 d5 O0 T, s9 W e
LPSKILL lpSkill = &(m_aJobSkill
);
* P: a, T2 B3 ^0 x7 C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ c ~" \; J' y/ Q
{
. {8 _/ ?1 F: D' K( K& h8 { ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: E; G9 O T& b' O3 l" z, d, q
if( pSkillProp == NULL )
v: `1 g1 l' T& M
continue;
- }6 @% @+ d4 } K& Y# U+ ~: Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 h! c4 F# E3 H
continue;
4 a+ ]+ @- D( \
lpSkill->dwLevel = dwTmpSkLevel;
0 m; f7 E% @- U5 X6 R+ c7 A
}
, ]6 X# H! h' m1 P4 `
}
7 S( I5 O. Z; i5 O. R
}
9 ^" G" S6 L% x1 {: a1 y
else if(IsHero())
; p0 R [: u' U, O
{
% Z R6 _% m" L# B
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& P& l, \0 W# Z& _6 V
{
3 |* u' B Y# h) {) J
LPSKILL lpSkill = &(m_aJobSkill
);
; s( H& e% w% c4 m* E# I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% C5 O0 q @6 w2 p4 U6 @
{
( a, ^. Q7 r( h ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 P5 A& f- Y$ a t0 v* S$ R% |
if( pSkillProp == NULL )
' A! j7 K) P/ P
continue;
$ z' {- g* K. q3 {) u1 K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 d( z j6 h! Z0 p6 d
continue;
2 B2 W3 K' l) {. ]; d4 G8 u
lpSkill->dwLevel = 5;
# k; v" G1 L! S. ?) W! {- E D
}
4 q0 R* c' g! v h0 U3 F
}
3 T6 W, x# _ v. d/ i
}
8 @% Q) M7 _; |: Z$ v
else if(IsLegendHero())
: E# P% n# m$ q8 g! l6 P+ D$ V7 \! B
{
! H% O- |+ F$ G9 O0 C P. D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 j" r, I# ^; a3 j w# J6 A
{
' m9 ^8 w- B+ n$ K6 ^6 y
LPSKILL lpSkill = &(m_aJobSkill
);
# Q \' x: L n! J2 s
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 K5 ~" ~: ]% d" W( A* V1 {
{
* k5 B, w3 J; F5 p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ e$ e) d O& G) e; e) p! Z
if( pSkillProp == NULL )
% m/ |' ~3 i7 `$ g6 V D0 u/ j$ X
continue;
( f6 J: V9 H3 j4 C1 n. e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ n- j$ E; C. F+ d, {: h
continue;
) `8 J( A* t$ i7 p9 {
lpSkill->dwLevel = 5;
) M. |# @ j( P4 Q& e( `8 W
}
: |& _% z/ M+ y& J4 O
}
( V. [% s2 f. e* n6 }5 D J
}
) {! }! f6 W9 q! i- z! A5 G( R8 y- D1 l
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' q% k" p# {' a. h
if( bGamma )
4 ]# K$ z p! Y. C4 m' W% ^ |
{
A1 A& F1 }* e( _+ N' x! A
m_nExp1 = 0;
' f- ?" }0 q9 ~" O; b1 }0 [
}
) n0 `, J$ x9 K" \
, K6 h5 t: W( d1 i
( (CUser*)this )->AddSetChangeJob( nJob );
- d$ ^. w8 S, S
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, X8 S+ X/ Y; {8 `, O
8 C; L" Q- s/ \
6 W B% e2 t" S( R; }; F- q
#if __VER >= 11 // __SYS_PLAYER_DATA
) p! m5 I3 g* `
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
5 l0 z2 ^' w. T+ Q$ z5 C# \& t( ^7 L
#else // __SYS_PLAYER_DATA
7 A/ m5 I3 W5 B2 K
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
! E8 _: P* X! e$ b% I
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
/ h& r) R( a& }$ D/ y7 _
if( m_idGuild != 0 )
! q; Y) Z7 ?# p1 K) X3 [6 J7 s' X
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
1 U- w$ F6 E( {* t: w
#endif // __SYS_PLAYER_DATA
& s: L8 b7 }5 L1 [+ N0 K
SetHitPoint( GetMaxHitPoint() );
3 R* W8 Y7 r& A: X3 T- |, M8 B
SetManaPoint( GetMaxManaPoint() );
~( N+ x S) x- w! |/ P
SetFatiguePoint( GetMaxFatiguePoint() );
# d5 b: o) h" ^. {( E1 B
if( nJob >= 1 && nJob <= 4 )
+ z! f8 d( C+ `% h. I4 }' S
{
# ]) O) B: l' X/ W
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 ~" H! M$ }+ h# O
m_nRemainGP = 28;
* w; |5 H' a7 u' Q) V& d
}
" q$ h8 c1 q8 p0 w( d, o! O" T
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( r5 k: d X, F" r
{
6 k E( F/ j; J+ e9 ]
m_nRemainGP = 118;
- W2 y' d) t# j
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 U' R3 |2 f2 s8 |2 [( o
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. A1 S6 C8 }. Q( F: q. N+ _3 e$ M
}
! @3 H% t; B; c% T2 p+ f/ V
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
$ ~0 v$ K! ?6 {3 s/ ^* @, Z. C
{
/ u8 _. C- t2 p9 q/ b+ g s4 N/ Y
CItemElem itemelem;
' g5 W# Q, P3 A( N" c" b
itemelem.m_nItemNum = 1;
v# A; c$ z/ Y
itemelem.m_bCharged = TRUE;
- Y8 Y0 a% G3 `3 M& v
BYTE nID;
* W- X+ _: A8 D* i/ Y# e
% n7 Z1 e# C9 S6 q5 D8 r
if( nJob == JOB_MENTALIST_HERO )
1 Z. m8 A d) Z7 ?# z
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
- S1 U3 V5 x7 U& j, S( X+ x
if( nJob == JOB_FORCEMASTER_HERO )
& l2 _' x6 |4 j8 {( a9 ]% c
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
' X0 @7 M$ p% u. y- C0 l: E
5 l# w5 _6 t8 M' [) l
( ( CUser*)this)->CreateItem( &itemelem, &nID );
* k$ R0 F5 V7 w# u) E4 |
}
( O0 G" R6 l7 U, a) `
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
5 y" h$ [% T2 a. K% O( J- s5 e
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
3 W* s) @8 ^8 z" E# n" W' u$ P
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% M6 B! w8 D, p" b, `) I& c
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
' ~3 s g) k5 b& Z: F
( (CUser*)this )->AddTaskBar();*/
/ b% s$ i9 V( j
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 |( S4 ]. V0 k$ t
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& Y/ K9 w. N. t: N/ \
((CUser*)this)->CheckHonorStat();
2 t5 g, |/ u* c" E5 L$ k
((CUser*)this)->AddHonorListAck();
9 {4 p2 p! J, o* r0 Q) s
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& K' y, S# ^) i
#endif // __HONORABLE_TITLE // ′Tà?
+ f+ U" e' `# O* m. R( @3 d
}
4 a5 j" G* b$ ~2 `( u( A: ?
#endif // __WORLDSERVER
1 ~1 ~ t. X$ r9 S- p
}
6 F Q* _) _4 }! r
: F- P$ U! l y
然后你进入functextcmd.cpp并添加以下
: Q; A! d: p P$ h, z1 \. k" U
+ r1 d8 {& m0 T, q
代码:
+ f }- z) C1 H& D' M
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
) o0 p6 N$ o; c. ]8 i2 V$ \4 B
下面插入
: y* z/ w$ w9 y2 z$ I. E" y
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 ]/ P8 B/ |9 f" C% t
1 W3 [/ Z# X+ i* T
然后你去
2 S6 _2 ]6 h e# T
9 h) ~9 j& H7 }. W4 C: w* P
代码:
8 ]3 u) [8 v9 Z8 `
代码
( q. v3 I" [; O
BOOL TextCmd_ClearPropose( CScanner & s )
( }+ V; Y% A8 c
{
/ t1 u8 [3 Y+ r+ C6 e
#ifdef __WORLDSERVER
' Y6 A# x6 O* M0 |4 i! D
CUser* pUser = (CUser*)s.dwValue;
& r1 J) N, [2 C' a
g_dpDBClient.SendClearPropose();
8 p# e7 }# w) [8 }
#endif // __WORLDSERVER
+ ]7 g. Q8 G" }' U
return TRUE;
8 l! ]3 }, B0 p2 ?) T. g
}
; @: |. a( R, W* o; ~
下面插入
+ C+ a! ]5 u% f- |3 }$ z
BOOL TextCmd_rebirth( CScanner& scanner )
6 M! i5 [6 w9 P; o$ Y2 J; q
{
% i5 W& R, z* l
#ifdef __WORLDSERVER
& N" Q" l1 f( b* [
CUser *pUser;
, \0 z! {& t/ V0 u' N% K! [
pUser = (CUser*)scanner.dwValue;
& M, Y- v& A6 X) I
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: x" g7 H+ x, N# C2 R1 f6 f1 b; U
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 c) p+ u$ q1 W- c5 k! o B3 n% F. B
else
' e, |+ x' J! \3 s1 w0 N: r
pUser->AddText("你还未达到重生条件!");
2 }, n0 R \+ z3 }' n
#endif
7 e& v8 n9 N* n
return TRUE;
5 A8 h3 u0 d0 Z) d7 K+ C ~
}
. X8 W" m* V8 M, P* ~! W: M
2 ^! I$ `$ A3 y. c
( R1 X5 h* s) ]) C: J V6 l( ?
9 C" |: _6 |8 j& C$ T
$ D# I; f5 N3 S0 C5 K+ D% x* R4 a
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2