飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: g9 P3 Y% C" i6 s. i
/ n1 u. Q/ Q" p" i8 W
Mover.h
, K1 |) m! P5 C6 {% ^) _) p
代码:
5 f; p8 D F. }7 ]9 o' f
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( I* \* Y4 |6 G' A0 a2 t, H3 s
; M1 X5 t5 n* \5 W/ O# _. g
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& e6 F/ E$ q5 K1 @$ @. B0 r
/ n: T- k* u% t1 n' q K Y
然后你去mover.cpp添加
1 s( p5 t' x Y1 k
7 p% H* @" r) v6 g5 e' I
代码:
1 w7 r7 p" S# {) B( U+ F5 ^8 B" ?; }
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 o7 y' O5 {7 @0 b$ C2 A/ ]
{
. c9 X: T0 p! E# n4 P- d+ y+ O
#ifdef __WORLDSERVER
3 Y! A: ~ A& v! r' J9 B0 g/ g
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
$ x$ t3 E% z9 U& F
MoverProp* pProp = GetProp();
8 H/ w5 W/ ?) T7 S9 Y3 d0 G
if( pProp )
! ~& U1 N6 {0 m% y+ P* T. g O1 g- ^8 e
{
8 V$ b! F- L3 N+ H) ^7 }! b1 A( ?
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. b' C( {3 m0 B7 |3 u
{
2 h# w+ p3 K+ S# D7 w7 }# i) W3 T
AddChangeJob( nJob );
3 k6 |) `0 z3 `
}else{
% ~2 ~" N! ]- _
return;
6 r4 l! b! R' W
}
1 X0 R8 Q9 y0 y" d
int nPoint = 0;
9 i5 b5 m+ o0 N9 _# `& k
if( m_nJob == JOB_MERCENARY )
1 h# d+ Z% _4 q+ h0 ?) B
nPoint += 40;
! b7 |! J" F) b0 E
else if( m_nJob == JOB_ACROBAT )
" S+ ?: }9 S) }6 x x4 A" B, C
nPoint += 50;
4 Z% U/ O2 D. o4 y$ L1 ~( q
else if( m_nJob == JOB_ASSIST )
3 ^% _. _9 p: Z
nPoint += 60;
$ t( P! C9 b8 ]7 E* }
else if( m_nJob == JOB_MAGICIAN )
U) b: J9 J- \/ y8 q
nPoint += 90;
5 y. T9 T8 L B* E
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& H) e0 ~( I: M9 Z4 |0 ]) t1 j
nPoint += 120;
. g1 U7 t5 x1 g" `
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 D2 V$ e' {- Y, L' y6 c
nPoint += 150;
+ i" b( v* J! ]8 ]
else if( m_nJob == JOB_RINGMASTER )
7 C% c8 f- ]; ~ o. T" o1 c3 [
nPoint += 160;
1 [% N& S' p( v9 B! J1 H
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ }; X* O' F. C# l
nPoint += 180;
7 v0 A+ [( @( s% q
else if( m_nJob == JOB_ELEMENTOR )
9 U! L$ B! a- W& C) b; B1 `; p
nPoint += 390;
) s7 K3 Q! Y& `! j
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
; ~' m: Z% D& o) A; ~
nPoint += 120;
3 p+ T) u8 P# A& q2 t
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 M( {' i$ c( [; P( B) Y- f) `
nPoint += 150;
. [0 N. ]; @5 [* C* }& ^' g8 E4 g
else if( nJob == JOB_FLORIST_HERO )
( w Y5 O1 t" V" J
nPoint += 160;
, @. e$ @( J5 F1 L7 B
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
i( h6 Y& L% ^4 \8 Y2 c# ?4 S) o8 q
nPoint += 180;
) k3 N7 A1 Q2 b0 }7 |
else if( nJob == JOB_ELEMENTORLORD_HERO )
/ f$ [5 L" e, j' d: o# W
nPoint += 390;
. F* T: ~( M$ x. }3 s( I+ o0 o
' p% d6 K' R E& K# p' ?
AddSkillPoint( nPoint );
9 @6 z7 m0 }! m
m_nLevel = nLevel;
4 J3 t, a6 |) r+ R n1 X
- w8 d/ U' O$ M! J9 @
SetJobLevel( nLevel, nJob );
' ^& w! q( T) l0 Q: M8 F5 ?% v
m_nDeathLevel = nLevel;
) {$ ?. Y! p* Y' \4 u0 a) i* m
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ Q, p5 d. A. ]
if(IsMaster())
" T8 P" m5 j8 a2 J1 d7 D4 B: R1 _
{
* Q1 Y s' q# ^$ |! T
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 g, E% k, i1 d3 p1 x9 H/ M- z
if( nLevel > 59 && nLevel < 72 )
. m1 g* u' A: W* u5 S _; m
dwTmpSkLevel = 1;
( _/ E! B7 k) [" m8 w: ]4 n
else if( nLevel > 71 && nLevel < 84 )
( n' a$ A% _, f. L, ]" u, q
dwTmpSkLevel = 2;
4 ~, g2 Z- {2 [. z" X$ d) I+ R! s
else if( nLevel > 83 && nLevel < 96 )
3 _* L9 j1 f+ J/ F0 I
dwTmpSkLevel = 3;
* @0 O' [: ?4 i8 B. P
else if( nLevel > 95 && nLevel < 108 )
/ j" z6 M. l+ j- t
dwTmpSkLevel = 4;
: n3 e4 x6 M/ h
else if( nLevel > 107 && nLevel < 120 )
/ b# m0 M* Q+ n1 {) F# D
dwTmpSkLevel = 5;
7 f& |9 A: F8 Q$ a% |3 [7 ^
for( int i = 0; i < MAX_SKILL_JOB; i++ )
@3 s* E8 B5 L# D% y2 K: ^
{
6 G { `: S7 n8 g- p
LPSKILL lpSkill = &(m_aJobSkill
);
: r* i4 ?* m" x
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% v, x1 c6 d' w
{
2 K3 A6 k% x5 G4 _& J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: ^- T) U/ a; [ ^
if( pSkillProp == NULL )
}3 ^5 y8 c2 D0 ~" U! n! [5 b
continue;
* \9 y. h0 P/ \9 C# ?4 Q- Z* U! U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
A+ K! l b! H# E7 @
continue;
$ q, C, X4 | M: W9 V; H6 Z
lpSkill->dwLevel = dwTmpSkLevel;
) s" Y% A( }0 @* o) c
}
% c$ e; x: F8 D, L7 c7 Y3 Z: O
}
; W; y8 q+ v0 a
}
; B5 j0 r+ p) b! F& A
else if(IsHero())
! I" p; ^! u2 C: l0 b
{
1 a5 C; Y% F" V% l" n' u& @# S/ ^
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 c: t; }1 k5 |; R; Y) A
{
1 r) h, a5 c. }6 @0 p
LPSKILL lpSkill = &(m_aJobSkill
);
* ^8 J, e$ w5 `. {) v/ R7 c% w
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ c6 Y* W2 [; j8 C* S
{
8 r$ G! z6 R. z7 K7 O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ L* w2 x8 R1 o% |3 F" U
if( pSkillProp == NULL )
+ a, J" o G) [
continue;
& o$ p2 ?+ Q& v, K9 \% B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. A8 A( G, l. Q0 C$ }8 c
continue;
K* Z% B l0 D+ @" ?' T
lpSkill->dwLevel = 5;
% R- [, N+ W# }8 |
}
6 r5 u+ W' ^9 X$ _2 B3 ^- U
}
: C F# U( L6 \2 Z
}
* X) v) p5 f9 \. ~6 B" s6 y
else if(IsLegendHero())
( _) n0 I$ _& Z# j
{
' J- o( @" d7 }* k0 e: W# u
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 h z& V% [9 b) v' q- H6 q6 q
{
6 x3 x# ~. n0 n3 M
LPSKILL lpSkill = &(m_aJobSkill
);
. W: r: R9 u- ^8 G( @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& i# |" N" a, h( p9 V4 R
{
/ @- c" y% w6 k7 Y* C2 g& s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" V: v8 J) Q- H* T/ v, B
if( pSkillProp == NULL )
& o0 U4 J$ q9 \! t
continue;
8 X9 r$ f, A$ S" z2 B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) _1 x: z, ^1 u7 Z" p
continue;
5 _: x' c& S- M! L5 |( J
lpSkill->dwLevel = 5;
3 o6 H# Y z! f1 l5 \( k
}
! B7 u/ F- [; r- ^! f3 f6 |, O
}
2 V9 ^" V% R+ V2 Q9 W/ {
}
/ }( T6 o! j4 H7 [4 U' }
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 m/ T9 O) H2 S' [! J6 U0 c$ L
if( bGamma )
3 I( F/ w, }' A' P: _! g
{
# ^3 u3 g& f# P" d: U2 g& h5 u
m_nExp1 = 0;
: h) P \- s' W! N
}
: ?% |3 F9 U# d4 L; J$ W* _7 f3 R
0 g) `: {2 l$ p& k+ N( b% g9 T
( (CUser*)this )->AddSetChangeJob( nJob );
% b: z! L5 w9 |* Z9 V) X* |
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 d7 H/ q2 B+ T9 X- k
* C" {1 R& |$ M; ~- t2 l7 T- x
, t1 t# L, Q# M p$ Y% m
#if __VER >= 11 // __SYS_PLAYER_DATA
- N5 c( m7 i' f9 n
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 c9 g* @6 S/ I8 L4 s! r
#else // __SYS_PLAYER_DATA
: J1 w( g7 ?; ~1 o9 y
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 @ G# {9 A' w1 N. T; o
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- {# d6 E+ J9 }+ I/ `
if( m_idGuild != 0 )
]+ K; L8 M( U" l3 L- _3 H3 e! g
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" B8 k( Y5 ^3 ^
#endif // __SYS_PLAYER_DATA
b3 ?5 a: s& ~+ ]; g# I4 l2 M# E$ @
SetHitPoint( GetMaxHitPoint() );
9 R1 O& [& Q* T, @# U! ]: E
SetManaPoint( GetMaxManaPoint() );
3 O7 U8 e' B2 E4 h7 T
SetFatiguePoint( GetMaxFatiguePoint() );
- ?- N6 a* n& _! @
if( nJob >= 1 && nJob <= 4 )
2 ~1 S5 f% ?) f" X
{
3 }$ S9 B r# c
m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ z7 d% \) `) m* G
m_nRemainGP = 28;
3 K) m8 {8 C k2 C
}
/ P' G" l Y" z3 n" Y0 U. ~$ k
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# q& Y j, X9 G' g% J% K
{
/ O* x g* s- H+ h2 b3 @
m_nRemainGP = 118;
/ W% C4 z. D* V2 W
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ r$ A) X, N: X2 c/ o5 a. ~
m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ _! B2 O7 `; J4 w
}
; @2 v% b* k& Z; F5 E7 P
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% [/ Q$ N" y9 N: a! w
{
: g/ v% w" I; c# M
CItemElem itemelem;
" @2 l& R' A" n, Q6 M7 J6 t
itemelem.m_nItemNum = 1;
" a$ ]2 ^' H/ g2 r6 t# O6 N
itemelem.m_bCharged = TRUE;
, ? c) X& U+ ^8 o# d4 b u
BYTE nID;
( _7 Q/ I3 ?6 k$ o
7 J' y* ]2 d, t) s& c6 e$ {
if( nJob == JOB_MENTALIST_HERO )
4 E7 v5 \3 f8 P( ]% A" [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) y) f: F# V& S
if( nJob == JOB_FORCEMASTER_HERO )
8 q" g1 a/ o# B. \1 z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, v& T. P# f& r9 h2 `8 f7 H1 j
8 P! m% S2 U$ o0 I: y; L
( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 L9 n7 z; B* z4 O6 B+ s" u9 d$ R
}
0 M8 X. K+ s- Y: T
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% J) ?( w7 D1 Q5 V1 K. U3 `: |
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" t: ~3 i% a* n8 o. n! E3 v: d
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
6 a r( k2 S9 K1 F
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 Y- p! ^+ H$ Y# I
( (CUser*)this )->AddTaskBar();*/
7 d4 m% g# B( L
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
; i: S) V5 @6 S: @3 Z
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: h9 c+ T4 r8 V' _( Q- v
((CUser*)this)->CheckHonorStat();
' L$ f( d3 H I$ B/ J* k- V# ?
((CUser*)this)->AddHonorListAck();
# `! t* X+ H; v) |9 @+ z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
1 _- k% {- w7 P$ {9 m% o
#endif // __HONORABLE_TITLE // ′Tà?
2 @3 w6 ]8 R7 V9 z% }. M
}
. d1 t! \; @; U6 {3 Y; y. n
#endif // __WORLDSERVER
* r6 {' e4 v* h1 P0 [- b
}
! a/ D* X6 g# O: T; f& J
* j% y+ u# a, Y: l
然后你进入functextcmd.cpp并添加以下
, O8 n; M2 ~6 ?% |* V2 K
9 w' u- G. m: F" E
代码:
. C7 |8 e" E, d
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ `8 I. V+ E) M3 c+ b- G) \
下面插入
1 ]( l+ S) {; G9 n$ l* s
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) `7 M: D W& I: @
0 P6 t& @8 ~8 R; c
然后你去
! I& ~$ Z& Z0 Y6 |9 D2 R/ a% f$ j
& `9 K6 E8 \* y6 c' y; h
代码:
" m3 c) p- Z6 y0 ~0 u( P
代码
% i4 j7 C" U1 Y4 W y
BOOL TextCmd_ClearPropose( CScanner & s )
( _7 o8 K0 d+ I, ^# L! S% N- S
{
5 v2 _+ z2 S8 Z4 N/ P: Q
#ifdef __WORLDSERVER
4 y: v" ?* a8 H. j& L/ z
CUser* pUser = (CUser*)s.dwValue;
, ~0 ?# I) p6 k
g_dpDBClient.SendClearPropose();
+ c" C4 `7 u3 B/ x$ l+ Y
#endif // __WORLDSERVER
A) `, E. K* ^ s, O% S6 _2 }* S
return TRUE;
7 _2 I' h' j9 ?0 ]; S0 E1 g7 K
}
* f5 ~; y- Y! Q( l# w. I: U
下面插入
% \) O, o; h- }6 y' l# I/ R& q0 n
BOOL TextCmd_rebirth( CScanner& scanner )
- f& F9 h* \ b( C
{
5 u) H7 d9 c7 A. B7 h: ^
#ifdef __WORLDSERVER
) Y( W* D: O- Y' \9 n
CUser *pUser;
7 T2 I4 E# K# {- r% S) M V( {
pUser = (CUser*)scanner.dwValue;
% ?) ]% n9 ^" B U8 ^7 N: K
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) l# B; ^3 V5 K7 _. d
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 V7 ~ |) s& E3 O4 P
else
) a3 N* j6 ]) Z$ o# ^; \9 d @
pUser->AddText("你还未达到重生条件!");
2 u( z# e: {& m: R2 P, N
#endif
: x2 s S" m( E/ i7 K
return TRUE;
& s" E# s- k* e0 S
}
7 J6 {+ N b! W+ U8 t W
% i) K7 P, ^" Q7 y3 M7 W
" c- O2 n5 w$ X5 M7 s# B1 P
0 z( T7 v3 x( p g3 ^
- n z, v6 \" k2 x
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2