飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 B- s/ W1 j. B% E4 d% C0 W
/ } i3 j% x, Z- x% G8 e
Mover.h
8 z e0 Z' x; ]
代码:
% ~4 P& X1 x( h" e" J9 H
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ I2 \1 U7 h$ d( F
" n' Q6 s2 W j* X/ t" e
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; \- g2 r) p9 V" \4 o9 J: T
2 G( }4 d0 G/ R7 H' g6 m
然后你去mover.cpp添加
( E' X1 j9 P/ i1 L3 M
) R' i, P/ e/ c
代码:
* i. x( `5 {( V( f; t1 j8 O
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 A# y- h# i0 k& h' ^6 U
{
0 n+ Q$ d( r$ G. j4 x/ A6 B' q! k/ y
#ifdef __WORLDSERVER
; _# a- S; H r0 r& S2 `- \
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
0 x- Y& [& B8 E4 d) r0 b5 u
MoverProp* pProp = GetProp();
/ |9 s/ l- q4 {7 H, K+ ]% \+ C
if( pProp )
* L0 r) x5 }$ s& P- g" n( q& J
{
* L7 Y2 c1 V0 p3 {& u
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* t& H) D' c) v! x5 f
{
- m$ Z" ]4 B$ T% Y
AddChangeJob( nJob );
2 J6 \; w4 k) ^0 \2 x
}else{
! d( t6 V! M I1 h' H' P" V
return;
. e% f% u7 r4 Q2 S
}
4 i3 L8 y, Z. b, h' ^' q
int nPoint = 0;
* \. I( ?, e( F- W8 p T" V
if( m_nJob == JOB_MERCENARY )
: z1 f$ m, U0 G0 ~
nPoint += 40;
/ `. a! y$ m# S$ h6 {2 ^! P2 m1 c
else if( m_nJob == JOB_ACROBAT )
( ^* U" O' H; k9 x
nPoint += 50;
# o9 S6 x1 e/ O9 r2 B& s1 j
else if( m_nJob == JOB_ASSIST )
9 Y) S3 v. }8 u0 h: Q4 L9 a5 \+ `% {. J
nPoint += 60;
$ R/ s( ]2 w! \- A6 Q1 T, R7 F. C
else if( m_nJob == JOB_MAGICIAN )
, c# D. q, z2 P9 c: U" S, b S# s
nPoint += 90;
, Z) b3 W$ A8 m( _2 t: }% A
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- e& c% {* j0 K/ C
nPoint += 120;
0 e& C4 v* }( c/ E* t: J
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) Y1 M7 l0 i5 y
nPoint += 150;
) i7 S( ?5 Q1 K# b; l# F( C! {4 _- Q
else if( m_nJob == JOB_RINGMASTER )
' m3 Y' v: N0 L5 E; c
nPoint += 160;
1 x" Q+ v4 u3 p. @/ a) z2 C
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; {$ W( q# `- q3 i2 D/ M* H/ o
nPoint += 180;
2 C( d5 Y% l3 ~9 T
else if( m_nJob == JOB_ELEMENTOR )
" }6 d9 C+ k5 I4 R7 f- p
nPoint += 390;
) v, h4 F8 N: X3 {, @, _
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 e9 u+ V! h2 C) n" T" m& L0 c: ]
nPoint += 120;
7 ~5 `+ g$ L+ g
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
. r9 J2 C2 m5 _+ P+ A9 v
nPoint += 150;
6 R# V7 O2 Q# R. N( d4 y
else if( nJob == JOB_FLORIST_HERO )
: x" [ f" {1 Q) F2 v
nPoint += 160;
" @# x1 n: N; L) G2 T- f R) C: {
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
2 S& y$ f9 F' X8 D( o
nPoint += 180;
, e v( p7 g" N
else if( nJob == JOB_ELEMENTORLORD_HERO )
7 H" {5 ^ o+ y
nPoint += 390;
; s5 W4 c h: O" V& a5 m& i1 M
# ?1 x2 r9 n: H! L* [' R0 | R' |
AddSkillPoint( nPoint );
3 A; I8 F" x# b, @
m_nLevel = nLevel;
5 i f. e. c# e: Q0 q
- N+ G7 {6 {8 l5 ~% p: x
SetJobLevel( nLevel, nJob );
8 {3 t( {* L0 C v- c f4 Z. I2 m
m_nDeathLevel = nLevel;
8 a9 x& P. e, b& \* D
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ W+ D$ S5 a# u4 E8 U9 ?
if(IsMaster())
& h+ r4 P0 B* X3 ?3 d2 i: y
{
5 ~8 H$ M- O, _; R$ b H& z9 m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- |7 B& x( P$ p# g
if( nLevel > 59 && nLevel < 72 )
; a& W6 E/ A5 \* y6 I8 B
dwTmpSkLevel = 1;
" i; M" [) M0 l
else if( nLevel > 71 && nLevel < 84 )
8 [" p" J: T, m* p7 q1 c @
dwTmpSkLevel = 2;
" _. Q/ ?1 M5 t. @6 i
else if( nLevel > 83 && nLevel < 96 )
3 C6 a8 Q0 P' S, S
dwTmpSkLevel = 3;
! `0 e$ B1 J: I, O, v0 ?7 U0 S
else if( nLevel > 95 && nLevel < 108 )
6 X1 Y2 l1 C9 Y( p: d# y* ]1 t
dwTmpSkLevel = 4;
3 O8 H u0 \1 C. Q) S
else if( nLevel > 107 && nLevel < 120 )
! W* m5 r4 @6 Q) K* Y0 R
dwTmpSkLevel = 5;
8 V3 K- `; W; R( N6 b. Y5 a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) h& J$ G. q% B; F. q/ n1 h4 j
{
( l9 ^0 U- W' i1 F6 @
LPSKILL lpSkill = &(m_aJobSkill
);
* b5 q/ Z1 y& Q1 p
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 U n0 S7 H* a/ m* k2 Z7 S9 h
{
' _6 B( b. `2 P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! q9 u6 K( _" u! _3 d$ [" E6 u
if( pSkillProp == NULL )
1 W1 X+ n8 V1 x$ F; k6 U
continue;
: \! ]# z; F1 W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ M9 i, E. q/ p3 L( g# M- ^
continue;
1 M2 l% J6 r1 A% S
lpSkill->dwLevel = dwTmpSkLevel;
$ ]( z+ L2 a$ d& z7 ]" e
}
: }5 Q E6 a; f/ N$ v- V8 S& V
}
1 H4 c2 n1 I. A+ W
}
% q/ k: F" ~! }( q! X
else if(IsHero())
- k$ H9 r& t' H4 V+ j) I" }; V
{
8 T9 a5 |! x3 Y. j8 \' r
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) y8 D- b1 W1 F- `4 U0 ], |/ T: {
{
; D3 i5 }! \& W. l( H) t$ V
LPSKILL lpSkill = &(m_aJobSkill
);
& h+ I# x# z' O! G8 U0 E& Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& R! I5 h+ C F& Q% h
{
( l- y; `4 m# t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 e/ s2 o( G. O- i/ M
if( pSkillProp == NULL )
4 m8 q4 F; P, C4 J" n/ P
continue;
E& P. Z* T4 Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( }" |. L% | \
continue;
]3 d, S; @, z
lpSkill->dwLevel = 5;
2 j* ~- k/ g& S: |9 O1 T: C4 r
}
8 i- K* }% i' v0 b9 J- p
}
; ]- J1 q G; U( x) C2 ?! s- k! t
}
) u5 I5 ~( Q( n2 J
else if(IsLegendHero())
# Z1 ~1 o$ B: F$ r
{
! m& T* e* ~2 X! f" C5 C! X
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* p. |5 b- i+ p; Q+ }! X$ P
{
! r" x" K$ x/ e3 r5 x# n
LPSKILL lpSkill = &(m_aJobSkill
);
, Q1 Y0 a- |& h8 S, T9 E/ X
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 z8 N7 o" ~* [, [
{
; B% N3 c( I( s4 V: i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# B A6 m- h3 q3 S. R6 e
if( pSkillProp == NULL )
5 K% b$ j; D, N8 D o. A' E
continue;
% ]! ]4 _6 B' [& {- d$ T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) X( N/ P3 [2 n# R0 o
continue;
& h% @& i' s" r; K q7 x
lpSkill->dwLevel = 5;
/ P* @1 m6 f8 J' K7 @ f( v7 b
}
$ V3 X& j/ w* i( d
}
. P! }; Y. c& k$ L$ J+ D# ~
}
, T6 q& w% n2 ^
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* i) t, w! {; d( l% y; Y
if( bGamma )
% ]4 K) Y$ Y6 C" I" H; w' a
{
/ @& Z* y) I7 C0 C9 u9 {/ ^
m_nExp1 = 0;
, `" H2 J$ }; D/ O1 H! m/ w% A& l
}
0 V2 l& [2 S' t! j( ~6 M) D! [8 Q
6 _7 H+ J3 F0 [5 T
( (CUser*)this )->AddSetChangeJob( nJob );
. `4 q+ m7 \ E: y- @
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, o) U; Z! E1 ~! x
7 \ j; h" ^+ o3 _
# J2 r! r! q/ F$ V! l. Y
#if __VER >= 11 // __SYS_PLAYER_DATA
. \' D5 D. l$ f. y- m7 B
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& N. x* g3 `9 w' y
#else // __SYS_PLAYER_DATA
, f+ i3 d/ H# n8 M/ z: o7 }: ~
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
4 `* B% L! y0 ]- O+ o x, C! V, p
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
! O7 T% n/ q' }# q; v
if( m_idGuild != 0 )
- y# j# f, V- R- g
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
1 r4 f6 p5 t) k# t
#endif // __SYS_PLAYER_DATA
r+ M& k3 A: f! e
SetHitPoint( GetMaxHitPoint() );
; u8 ?3 T% o+ d+ v; p
SetManaPoint( GetMaxManaPoint() );
9 M6 J$ i) b4 K# ?* A+ T7 \5 j6 x
SetFatiguePoint( GetMaxFatiguePoint() );
. a/ x9 S1 Y" _7 V7 l8 |
if( nJob >= 1 && nJob <= 4 )
) @7 u9 D _# S9 S! s1 J- c
{
% ?8 l# ]; V8 C+ x% I+ N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 P" E1 z" l5 J! k1 ]
m_nRemainGP = 28;
: _+ u9 s& ?4 s) H( ~- w- t4 j# G+ Z$ y
}
" F5 D9 m$ x% i3 H4 S5 Q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
: N/ E( e/ L1 w# n% X
{
9 H& o8 X' K7 \/ C$ W
m_nRemainGP = 118;
2 x8 ^( T% T p. s0 f# q" q. T& h
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 x( ]% J! Y: a) u
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 Y* W9 a6 {! }, Q, P. d
}
- f" \: z7 x3 m( c1 H" U K6 g
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 B& A! k: T3 A3 f8 g% j+ ^
{
# [, n+ ~6 F' f9 `0 S' S8 a. G: C. X
CItemElem itemelem;
; [$ L% J, O% G3 y. y2 ]7 T/ [" p
itemelem.m_nItemNum = 1;
0 X% T0 Y$ n7 @" x5 e8 B
itemelem.m_bCharged = TRUE;
3 ~: k7 ]7 `4 m/ \) t; [; H
BYTE nID;
: M4 z p, G3 [; C
v" d& A4 N/ A& m
if( nJob == JOB_MENTALIST_HERO )
1 A) G0 N# z7 ]/ V' j. O; @
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. p" L6 P& D0 I* X6 Y
if( nJob == JOB_FORCEMASTER_HERO )
+ W, b6 [+ d' i' x B S
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
' r, p, v# D) X% A1 x+ x
" e1 ~/ V( V, h+ _
( ( CUser*)this)->CreateItem( &itemelem, &nID );
" C" c: r( q# Y* s# X1 V2 _6 w
}
# E- q. H; i0 i" P! ]+ l
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ o) ~2 O' ~9 u- `9 }
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" P3 d' o+ G8 ^/ }4 C
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- I" ]" n6 w' V! }+ W
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ P. N2 s' N; I" f3 E
( (CUser*)this )->AddTaskBar();*/
4 @( _( p+ g$ H; G2 k/ Q# s
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 n$ J+ [3 M2 S0 _: l
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 |. i+ u" f( T8 R! p' [
((CUser*)this)->CheckHonorStat();
) ]6 ]9 {$ D6 C) K% c- Z
((CUser*)this)->AddHonorListAck();
" L- M/ _# I9 n9 Q0 ?
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" J, v/ N7 p5 o3 T* V. ?
#endif // __HONORABLE_TITLE // ′Tà?
1 w; b5 e( U o2 X k
}
) V) M9 [! u" M/ Z& a! d0 m1 }
#endif // __WORLDSERVER
* [. c* B, ? ?* j9 R* R& W5 V
}
' f7 Y2 g% \6 {2 g) ]3 M1 R5 {) o% |
! }1 t# ]' ]1 o( I
然后你进入functextcmd.cpp并添加以下
( `; q+ L5 @: |+ ~
9 N+ V5 x {6 t1 s- q/ Y0 a- |1 B
代码:
; a) E! ]; v& u6 K5 Y' X0 j
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( C$ ~6 d; o3 p/ F
下面插入
1 f9 f/ H1 _5 b5 B3 a
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 E" c0 e- O! f, j; G9 R" l* b! L
4 `9 _9 a3 [" E# E2 `" Z
然后你去
1 S( l; j B) Y6 G8 h
y& g# C& I6 l+ W
代码:
* O$ P8 P$ Q! v' F6 k
代码
5 J. }3 u) v- X) Q1 Y2 R* k
BOOL TextCmd_ClearPropose( CScanner & s )
2 p, q0 b |" z0 }0 p2 L W: h
{
5 A9 }9 ~: B* j& L8 B
#ifdef __WORLDSERVER
; x7 B1 u9 r- p+ \7 W7 ]1 C
CUser* pUser = (CUser*)s.dwValue;
9 w7 b& C9 F$ l4 Z
g_dpDBClient.SendClearPropose();
- x9 x' q' N! ?/ @4 w6 \+ v
#endif // __WORLDSERVER
$ {$ K3 L" v0 {. d& d
return TRUE;
7 o# ~# J2 |' V! u- u0 N$ T% f
}
& f; {! G; Y- H* m" T, @
下面插入
$ L7 _9 v2 s$ O( p/ R
BOOL TextCmd_rebirth( CScanner& scanner )
% y5 B* s7 X+ _9 X+ p4 U
{
- M2 ~5 \) B1 U/ [
#ifdef __WORLDSERVER
- z2 O0 K. h) d) q- |
CUser *pUser;
2 l+ X" x$ q' j6 f8 U" [8 l
pUser = (CUser*)scanner.dwValue;
+ p$ v3 j/ V, M9 v7 c
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 S4 a& G# R, k# h& c
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 b" F7 N( S; s' g2 v, ^
else
+ Y9 Y# ?# ~; r) W0 w
pUser->AddText("你还未达到重生条件!");
: X& m! V: N5 [: q
#endif
8 M h2 H- j- e$ A
return TRUE;
L& R* d) N6 {; Y: P/ {* C
}
; s0 Z8 N1 X# M _* N
. ?: q/ r- j/ x& M0 W
6 E# _$ R# J1 G* t" m
! o- T1 M3 N# N6 y: P+ E$ N
1 r8 m/ |0 Z1 o, D# ]. m# n
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2