飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
9 F. a) D3 z9 g* ^$ \1 w
3 G S7 s; B* K& e8 R
Mover.h
0 N/ o( \4 p% V+ B6 D
代码:
7 T$ R7 q1 i/ _
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
7 J A* F% f4 S
3 Y' D7 t% }& [ m/ a4 h
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
0 H1 R$ m* a ]; E5 b; X
# l' y+ y" b/ v5 j% ^# X, C, N
然后你去mover.cpp添加
" E8 S$ P' p$ ^8 A( b$ V& s' o/ Z
5 T( ~( J4 u( u$ b' d+ G
代码:
( k/ V' z5 O& {- q
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 G) S G5 r8 A
{
* v' n8 n7 V* o( C
#ifdef __WORLDSERVER
: e0 H" n6 _. a1 C- H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ o- [# ~( d- O% G
MoverProp* pProp = GetProp();
/ t0 e$ `. j$ V1 I
if( pProp )
; R4 J0 ]/ y- U- u( Z
{
/ Z; u0 s* F6 i5 [- I9 a3 G; |
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 x1 Y4 C9 g, p8 H
{
8 U6 M$ m# s0 d3 \
AddChangeJob( nJob );
+ V: s' Y& F/ n
}else{
/ K5 D8 n# ~0 W, ^" q
return;
" s; T, Z, f! x8 l
}
$ y* ~1 `- [9 s! x: U
int nPoint = 0;
3 o+ l3 a# _( o9 h D1 [; Z% `
if( m_nJob == JOB_MERCENARY )
# Z+ r' d5 L& p4 S1 b( t) l
nPoint += 40;
% E9 C. {% p" s+ @9 g! T- n
else if( m_nJob == JOB_ACROBAT )
) |, Q3 x$ c+ e3 @
nPoint += 50;
2 k4 B( B- F1 e4 d7 @. o
else if( m_nJob == JOB_ASSIST )
+ O6 |1 n' B, E0 h$ K4 b
nPoint += 60;
5 }. ]; C& f J, y* U
else if( m_nJob == JOB_MAGICIAN )
% s g3 m. `3 g* p
nPoint += 90;
0 ?& j# n: N1 [: a/ i; G2 G
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' y) y' X7 M9 ]) }5 Z
nPoint += 120;
2 A) X$ _- @- W7 C/ \2 H
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( l/ ~" d% T* N3 k
nPoint += 150;
! ?$ ], W, W$ P8 H$ @+ Z4 v
else if( m_nJob == JOB_RINGMASTER )
) {, }- W6 D) B$ m* R% b7 G. `
nPoint += 160;
0 d; ]5 w( l+ c) w! x% b c/ N
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
* e# U1 r' I8 M# l
nPoint += 180;
2 W+ {( H+ Q, m7 Y
else if( m_nJob == JOB_ELEMENTOR )
" N( D; i- R, `
nPoint += 390;
# j6 o) a# ?# E
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 V8 b6 h: l, y! F% F: j
nPoint += 120;
7 J* x5 S: l; {* V( k7 D- a/ G$ z& K
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
, h& d: n; Z4 w A6 D: B) w" B
nPoint += 150;
" l! t8 N: c! P: q
else if( nJob == JOB_FLORIST_HERO )
) N' a! k5 E4 k: o5 O
nPoint += 160;
2 P0 K* {4 a# b4 U# {+ N
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% O) v1 k$ g6 v: y
nPoint += 180;
' c! J. r# t' Q, Q9 d2 N
else if( nJob == JOB_ELEMENTORLORD_HERO )
8 _0 [9 h7 D- X
nPoint += 390;
" s% T7 M6 A0 ~: _
+ [& ?: {3 L' B8 y
AddSkillPoint( nPoint );
: O4 I5 _0 \1 ?* ~
m_nLevel = nLevel;
- D s: {- u4 Z9 V: w( o
- E, V4 N' R6 H9 U
SetJobLevel( nLevel, nJob );
1 {9 V2 w3 G7 h& H ^
m_nDeathLevel = nLevel;
$ p, J+ K w) u w {6 B
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ e$ h; t& y: x: @
if(IsMaster())
- W4 S: Y- R( P; N0 ?8 x
{
# {6 p ~: h& @4 K: `
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 y! y1 D) t- B; L! U- C* f2 A
if( nLevel > 59 && nLevel < 72 )
2 v& }7 f( l1 g6 Y# K9 k2 }3 W
dwTmpSkLevel = 1;
, O F- j& c% ]1 n+ d
else if( nLevel > 71 && nLevel < 84 )
& r' w0 M8 ^! L, @- q4 E3 {% T
dwTmpSkLevel = 2;
0 N5 s+ r) x) d* ^+ J3 `* z2 X
else if( nLevel > 83 && nLevel < 96 )
4 ~1 C2 z5 W5 a' C$ I& |
dwTmpSkLevel = 3;
+ K/ H' [) ^7 s1 T& x8 m K* }
else if( nLevel > 95 && nLevel < 108 )
( S3 a! a! v; f [1 x
dwTmpSkLevel = 4;
+ x- o q3 ]4 O7 ^9 R
else if( nLevel > 107 && nLevel < 120 )
5 \3 @3 _( R0 |. p
dwTmpSkLevel = 5;
; ~' a; \* L9 |! J
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 U, n" T+ G4 s
{
9 N' U4 N. ^5 y# g
LPSKILL lpSkill = &(m_aJobSkill
);
( q+ W! \3 C t! m
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 i% b( ^; ~5 Y$ I( ~
{
/ v4 f# x' V8 M: R& B3 d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! d( B5 y+ s% y1 E3 X# G' l2 m
if( pSkillProp == NULL )
8 u3 K( B3 \$ i; l, H9 v
continue;
7 `4 n+ c) l- D3 m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ J* Q. y9 y0 c3 C1 r
continue;
" j l5 g8 h, q; y6 ^2 @+ R
lpSkill->dwLevel = dwTmpSkLevel;
# V6 P5 ]) g% b
}
* W2 @# k, P4 |7 O- V
}
7 m& H5 b' Z/ F
}
u! h% ?: D) [ n0 } \
else if(IsHero())
! x9 E/ {9 d" O3 f8 }
{
' _5 l2 C# K' f$ e) F
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' a7 C% |) S5 b. h4 {
{
: T) Z0 k: D" t6 c
LPSKILL lpSkill = &(m_aJobSkill
);
# b" a4 ?- r5 \& |$ t7 a3 Z8 q H# F
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' x5 B) G# @/ j' |/ ?7 V3 S& P$ h
{
: R$ _$ E1 I2 X C0 M u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" n) ]3 E7 ]5 |4 {# V4 U' `
if( pSkillProp == NULL )
, H+ k5 P: n9 v) s% z. L, i! K
continue;
4 b7 x# y: x4 N4 P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 J, a. o0 {! J" }( h; i* E H- M
continue;
6 ?6 v, Z9 s# L: @3 i
lpSkill->dwLevel = 5;
d( q4 X1 A) V& Y5 `
}
. [% \0 s/ G9 N* \( L
}
4 }/ l+ ?+ d4 L7 S2 x7 E
}
3 x7 [4 f6 @2 p; W+ U) |
else if(IsLegendHero())
8 ]) m1 T$ |, }. ]8 `4 s; c# R! p
{
7 [8 _ f8 Z# ~
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% m. e6 K. s- Q$ W' ^6 F" ?( K
{
4 W( V- |3 R* y' s% c
LPSKILL lpSkill = &(m_aJobSkill
);
! p/ { K8 n5 v# P7 ~. Z; ~1 @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 B1 Q4 k3 h0 x1 r( m# @4 o/ `
{
Z0 \: u% U* k* X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. p4 H; ?9 }' C) E
if( pSkillProp == NULL )
* ? V2 }. {$ m0 q4 M1 I# L# R
continue;
9 \( n9 B- c5 Z! V/ G( @& E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 u0 N9 A- S$ S G
continue;
+ s! m1 r7 i# n& _; l
lpSkill->dwLevel = 5;
/ N; b |. O* N
}
1 \% L+ r; W t6 J& {
}
& k/ l: `0 c3 ?7 G* I
}
/ k% j! f+ e( t/ y1 x
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 |1 X Q3 r+ `3 A1 j9 f
if( bGamma )
+ p0 c* a Z* o, U9 b2 j
{
$ T8 Y8 t4 n4 V
m_nExp1 = 0;
; Q6 c6 I" w8 B7 e: ~4 _
}
2 P1 W0 I0 P3 q! O( e
* E7 S# n/ ]7 j/ s2 _9 i
( (CUser*)this )->AddSetChangeJob( nJob );
, _, m8 g# E5 M
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 y7 \4 \* P+ y
1 R% \+ G" N `+ v! G
' G# n; [) t8 Z7 `* ~6 p
#if __VER >= 11 // __SYS_PLAYER_DATA
) d) c$ h$ i. h# e' i6 s
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
7 [' M$ g0 z7 F2 D
#else // __SYS_PLAYER_DATA
. e) k5 D0 [" n0 Q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 M8 i4 J7 x$ ?8 ?0 x; P
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* o6 p1 d2 R; }) ^- ^
if( m_idGuild != 0 )
! ]+ m) y+ _% ]( Z( g
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 h" E' D9 H% u1 q
#endif // __SYS_PLAYER_DATA
- E4 |# O( `, V/ B; _4 F8 X4 r9 Y5 {
SetHitPoint( GetMaxHitPoint() );
: m# v% c+ @# N' a9 f8 X4 x' _
SetManaPoint( GetMaxManaPoint() );
: o/ w. F9 ]2 _" q0 w
SetFatiguePoint( GetMaxFatiguePoint() );
, A" `' V% c$ ^/ y' Y: `
if( nJob >= 1 && nJob <= 4 )
3 d1 E; U p+ S% x/ x, E
{
* t P# R; l7 c. I# S
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, j' [- A X. A! k/ o2 `
m_nRemainGP = 28;
( m1 F# F6 g1 X+ F2 T
}
?+ ?4 p# N. e" o
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! G) ^' C1 O% o; Y
{
. D/ e/ A$ N: f7 A6 K4 x: a: P
m_nRemainGP = 118;
# U% Y( Y" l" A; p: t' u
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' O+ K {: k* E! p$ i, b1 u
m_nStr = m_nSta = m_nDex = m_nInt = 15;
& [& B" B8 c8 n3 X, p
}
0 [+ \' i9 l0 L& i
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 a! L6 y9 ^" ~+ P" Y) f( i% A
{
9 R- W# E7 @+ F; B% Y" v. D
CItemElem itemelem;
. J7 |8 [, C [ }0 T" c! w! T
itemelem.m_nItemNum = 1;
1 D' i6 f) z1 b
itemelem.m_bCharged = TRUE;
$ Y" W) g6 }7 ~7 N( R4 `' o
BYTE nID;
. ]# G" X6 P( G: S
7 I; [& K7 A) t6 @; }, F p9 l! D2 ~
if( nJob == JOB_MENTALIST_HERO )
2 A! _4 K+ L1 k# G/ @
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ X* S, r+ m0 p# K
if( nJob == JOB_FORCEMASTER_HERO )
/ `. y. Q5 P+ r& F9 W7 g& S
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* B% x _1 j" }0 F- u7 r) Z+ k- Y; H4 r: `
4 ?9 @3 ^& E8 m" I4 c4 b) m- \( o
( ( CUser*)this)->CreateItem( &itemelem, &nID );
: g! l$ d: k) W) a7 R2 D/ A
}
: \# C. K& _- Y$ S/ p
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% h b3 t! G+ Z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
3 I* C- g0 K% |" s! a
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 J4 J: ^, P8 B+ T, z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" j6 S- C5 n; ?) P d4 G
( (CUser*)this )->AddTaskBar();*/
4 Y5 V7 g' T1 `$ I) K
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* T, V) ~2 B6 ^9 b
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! m) M+ e: n/ n2 |: `4 N
((CUser*)this)->CheckHonorStat();
/ r0 B0 d, r) \
((CUser*)this)->AddHonorListAck();
( ^$ G/ N( g# c( z! W: f8 _
g_UserMng.AddHonorTitleChange( this, m_nHonor);
) w Y% d+ M$ z
#endif // __HONORABLE_TITLE // ′Tà?
. m0 e$ A0 A0 z, v! a* M
}
$ l) O z0 ?( a- p$ l
#endif // __WORLDSERVER
+ S j: G4 T, j8 ~
}
: P0 }5 d7 e& N; U) n
+ E$ J8 N. ?- ]; v3 | K @( |8 ?
然后你进入functextcmd.cpp并添加以下
# Q+ c* k, ]. Q+ q: @8 `% J6 ]; f
. a4 e3 T5 i2 [ e5 Q) W8 h
代码:
4 V$ q& V; K' i6 _1 x
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 t0 T5 j+ \# d8 n7 i7 B5 H
下面插入
$ j) A" T2 W: k% }
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% S( Q3 G/ e' n1 a6 ?$ U" {4 w( B' g
% \% q4 Z$ K7 L0 h# L% v1 S: H9 _" [9 A
然后你去
& Y# L: a7 E9 z9 L% ]
' o5 `3 e% n* y
代码:
( V. O* \8 H4 s6 I
代码
5 k9 A5 P$ d# ?- `4 P( x' k5 T
BOOL TextCmd_ClearPropose( CScanner & s )
! | [7 @" c" ^& o0 O6 ^6 n0 f
{
, J$ f4 N& }7 r/ v
#ifdef __WORLDSERVER
! d. F* x, m$ a. N/ Z {4 ^
CUser* pUser = (CUser*)s.dwValue;
, ~( b ]3 M, P5 D7 g% [( P
g_dpDBClient.SendClearPropose();
1 S( @+ @$ K3 V5 k; u- Y
#endif // __WORLDSERVER
5 p. I) B, |" [( t
return TRUE;
& O4 p/ Q7 Q9 j7 A9 j
}
' y, i( b6 r7 e5 X9 b/ u0 t3 d. D
下面插入
" {( H9 f: @; M3 H( R9 s
BOOL TextCmd_rebirth( CScanner& scanner )
) z3 b' r2 S1 ?# w& T Q/ N
{
4 A$ H5 |$ x% I2 A
#ifdef __WORLDSERVER
# ?" a& C" C: q6 u! O2 |
CUser *pUser;
& Y% C7 f" u& F
pUser = (CUser*)scanner.dwValue;
8 j& z# M: X% G! m1 \
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* c; F- d, c, B% O1 C: w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ q" v* R. x0 x: N) b5 R& D
else
U( j! V" ^# M& K, C
pUser->AddText("你还未达到重生条件!");
B# E8 Q+ b: `" \$ I
#endif
! u. C1 J/ W4 t: c
return TRUE;
- t& w& C, n+ J! H( Y5 |) P
}
/ f. F& o7 P0 T- ^: y3 b/ [4 Z
% Y$ g2 v7 g( k& j0 f
/ L/ F* b6 D: x: K8 f# u
3 p) K& {! B0 ^$ o+ e9 |# i- K
/ e) Z+ q% E. a4 A, J: C
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2