飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 A. T6 ?/ D- q- l: S' a( o
( F8 Z; D7 i* f( M' M \
Mover.h
0 P$ l) D) j7 K0 z
代码:
& T) ]3 Q$ [+ \+ p
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( n. M' U0 T) W- ~
7 B- I( x) V; x' N& R+ u0 q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& n4 T6 n7 u$ i- \
, g3 m0 r9 ~6 X6 @+ l f- _
然后你去mover.cpp添加
7 y. I5 G. h l' A4 o
6 w: q* J0 H2 T) I. s! o) }
代码:
$ B# Y$ @5 |7 R. g! y$ }
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
! M: F8 C6 n: f" B Y
{
4 L, T2 g) j8 I5 _9 M4 _
#ifdef __WORLDSERVER
: W; T4 \! Z: V( U+ Z6 ^- c9 p
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, N6 H0 S. {4 C, E8 u: _& H, } z7 |
MoverProp* pProp = GetProp();
+ F- i3 d5 u+ B# l2 w- d2 |
if( pProp )
0 Z% [6 {# K, X) P( F
{
; b. v) {1 ~- ?0 u! N H: v
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ e: Q0 v6 P6 g* T/ I
{
) y; P$ H2 \% Y% T2 q$ G: g
AddChangeJob( nJob );
+ ]3 w A+ n$ Z, w
}else{
) @6 x4 u: _- q8 h! r
return;
9 `! E2 k$ i& D' f/ F! i! z
}
/ r/ U n6 W! z5 f& |
int nPoint = 0;
! V$ N+ ~/ J' `1 {. A# p
if( m_nJob == JOB_MERCENARY )
: `+ |4 N: y- E2 w5 M% [
nPoint += 40;
. G; t0 p5 W$ X: T$ D/ q7 _( K6 M
else if( m_nJob == JOB_ACROBAT )
% S& _$ _4 |9 D5 q- N: u/ L4 ^
nPoint += 50;
9 f9 v4 s/ M$ H
else if( m_nJob == JOB_ASSIST )
0 z' G. x! {: M1 u+ V4 s
nPoint += 60;
5 t+ F4 d- R( |! ?! q
else if( m_nJob == JOB_MAGICIAN )
5 y+ [7 c+ h; G7 m( R
nPoint += 90;
/ }6 @) N {+ t- w' F+ J. H# f
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ ^3 A' u, O' _. f1 ?/ q: Q/ r& c- H
nPoint += 120;
; `# ]4 P3 e6 I1 x
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 M+ M3 P5 X3 C% o# \
nPoint += 150;
$ i2 t+ o3 J1 R3 [/ ~4 p( |
else if( m_nJob == JOB_RINGMASTER )
+ f3 J- c. Q1 D$ T. |6 l) y' M; M0 e
nPoint += 160;
: m- M" G4 ^9 m2 }( o& @8 Y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
. n, T! l* U2 R/ S2 H) r
nPoint += 180;
+ W/ f9 a! O- @+ O4 j# |& P
else if( m_nJob == JOB_ELEMENTOR )
7 K C: J$ Y$ F1 O- @9 a
nPoint += 390;
- B" }; I2 c* O8 w' @+ B
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( M9 R& z H' M! X* j1 {" t
nPoint += 120;
5 A5 Y3 F6 P0 ]4 \8 D$ Q1 D# N
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
" i% f% ^3 z: ^1 N$ Q+ ?" u
nPoint += 150;
6 _* w, n( S9 |! _: ?/ `! v8 f
else if( nJob == JOB_FLORIST_HERO )
( `1 j v. U6 u' Y% s5 s
nPoint += 160;
+ q) |' |7 L6 W4 X* C
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
a; c- v9 e O, G! I
nPoint += 180;
2 u/ I2 z1 h/ N9 ?
else if( nJob == JOB_ELEMENTORLORD_HERO )
. o% o* t$ C& \7 F7 n
nPoint += 390;
# i- K' ~: @' ~4 k: r1 u; S
# Q- `4 B$ B6 U5 H0 I1 P- r
AddSkillPoint( nPoint );
+ A4 Z; L2 Z5 E; `
m_nLevel = nLevel;
2 o1 o f% n) G. W
% I- `+ L, j5 Z7 j
SetJobLevel( nLevel, nJob );
( A+ V; }" o- z" k- g
m_nDeathLevel = nLevel;
2 D! a; R" e4 |3 E* @0 ^! b* x% t
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' |3 o# c. i; n1 }- x
if(IsMaster())
" [0 R9 P& v0 U- ?* h/ M1 y s/ U
{
# O+ M9 ]" b2 c+ C P
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
~7 e" N* P: h- j0 ]4 H
if( nLevel > 59 && nLevel < 72 )
8 y) \% d. M! O2 |; ~" H9 O0 J+ J
dwTmpSkLevel = 1;
) m$ A5 P9 n$ x: a1 s* m c6 g! `6 ?
else if( nLevel > 71 && nLevel < 84 )
4 i) [0 q# c/ Z. y& l1 A( `
dwTmpSkLevel = 2;
) r3 q6 ?+ E" m. W# E
else if( nLevel > 83 && nLevel < 96 )
; }' H3 A$ v! {, \( c- H) ^4 c2 F* t
dwTmpSkLevel = 3;
" \5 w" U, T: W4 L+ J
else if( nLevel > 95 && nLevel < 108 )
) R1 z6 @4 @# {5 b0 v9 [
dwTmpSkLevel = 4;
; x/ d% c; T( H; z4 c
else if( nLevel > 107 && nLevel < 120 )
2 Q0 f; I1 t' C/ _* @( ?
dwTmpSkLevel = 5;
E& r( j6 X# c- z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, Q- x* {$ ^3 m. r, { P" U( X* ^7 D
{
/ |4 j4 h1 s0 R) X& `8 S
LPSKILL lpSkill = &(m_aJobSkill
);
7 E# F% A* Y5 d7 U* _; y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, Y( R( ?1 i. \" O9 U( a0 Z+ T
{
4 A2 v# ^0 a3 [6 I5 T+ o- e' F( R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. H% N4 O2 s3 _: Z
if( pSkillProp == NULL )
* R6 x/ ^; d0 \2 I
continue;
5 [& N& C0 Y5 j) f/ r0 b7 a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( t# Q6 }# Q0 b* M' x3 @1 R
continue;
' D- W5 U2 ]2 I( _
lpSkill->dwLevel = dwTmpSkLevel;
+ E8 v- t3 B9 d) _* v- H
}
# \ c+ f, ?: y
}
# q! {0 P# @" p; S1 x- r. Z
}
! ^/ ]+ g* s: f8 A2 y5 w, k+ C& O
else if(IsHero())
% u& q) w/ g$ }8 r1 ~1 A
{
' N: t* f; x; K# t2 T
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 Y4 M0 h) {4 `9 ?) w- I
{
- w" Q' B& G( Y, V
LPSKILL lpSkill = &(m_aJobSkill
);
9 v6 A. ?# Q5 y* y- S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# j6 M! `) N0 o$ s8 w* l; c6 ]+ d
{
9 w( S1 U1 _" |7 v; U
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ r, S2 j3 M7 R2 R! H9 r. b
if( pSkillProp == NULL )
( A9 f( n& ]( f& j+ f
continue;
% j! q. q: q4 P+ Y$ Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- [3 x% `" ]9 e+ R$ @+ n
continue;
6 |8 Z5 _& R. c6 M: U
lpSkill->dwLevel = 5;
% v# j- x- \0 _# a
}
. P* Q& S) t( a* y. D
}
: u+ d+ G7 v8 h Z
}
& r; i( C$ p$ n) R+ x
else if(IsLegendHero())
5 T, I: D( L) h3 o
{
/ ~- v8 w" d; g$ n
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 ?: [7 V9 r" w9 g" X
{
; e. W' `9 q/ \- ^/ y7 s4 ]$ n
LPSKILL lpSkill = &(m_aJobSkill
);
& L7 p( k$ W" }( E9 l; m3 x) l7 s
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* Q W5 X0 j; ?$ ?* N
{
# ?9 X% N1 L2 P5 [/ h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 n' d$ f& r- |/ y
if( pSkillProp == NULL )
* k: M: |+ j, {9 K5 Z
continue;
1 x5 _' ]; @9 U/ p' k, N% l9 l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 @# [! j& v* B9 \: i9 U- \
continue;
" a8 k p& N1 P' O7 S
lpSkill->dwLevel = 5;
9 f) A; U: P" N( @+ U
}
8 U: \; V# ^" G5 t# B2 y1 z
}
! f' J! t" b7 b9 K" d5 @) A. v
}
4 Y7 d' T0 L/ W' t$ T: k' Z0 { d
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( v4 e/ T' h4 t! Z" U
if( bGamma )
[3 |+ o' X1 g4 v. G7 M
{
! ^" c2 R) ~, C9 v# e @+ y. V
m_nExp1 = 0;
6 g# b" j% i7 G4 N/ S) ~
}
( I! E. r3 ?+ z3 f2 b1 Y" E9 u
4 a% m/ O- ?* b9 g% Q
( (CUser*)this )->AddSetChangeJob( nJob );
+ P% K( s: ]% [* k/ T1 L9 E
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. w9 v" c/ y' w( r6 b
0 E3 J% k2 F Z) z- z
# {1 Z4 T7 X( q$ K
#if __VER >= 11 // __SYS_PLAYER_DATA
1 r. h9 F9 s8 ]* U( Q7 f0 y& X
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ h9 F9 T% x, a- n8 n; N- j
#else // __SYS_PLAYER_DATA
* Z$ b# r/ \3 Q/ C3 H+ o9 @, u
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
) P1 g! ~5 e# {- y
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
4 F& E9 h& Y5 a, N
if( m_idGuild != 0 )
. G$ D1 x* F6 q$ R5 j
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& M7 h; b4 a8 k( _/ \' N1 @
#endif // __SYS_PLAYER_DATA
9 t: L; M/ m; A
SetHitPoint( GetMaxHitPoint() );
" D$ `- A& H2 X8 P
SetManaPoint( GetMaxManaPoint() );
0 q- f" A% W$ P8 K5 U. ^" T
SetFatiguePoint( GetMaxFatiguePoint() );
+ ]. ~* m, O" f. f
if( nJob >= 1 && nJob <= 4 )
5 I, u- N! i* d9 R+ o6 L
{
4 n" T' K- g z% c3 y9 F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) [' h# z1 u+ q2 }; u$ m7 D
m_nRemainGP = 28;
. F" i. L- k7 E/ l9 Q4 a& o: `+ i
}
, H4 n% v e% ^& _$ [5 W+ }
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 z, }7 }7 U% a& V& u1 n1 P1 v
{
0 z ^* v% e( Q7 a+ L0 F
m_nRemainGP = 118;
0 c3 d) c' I' d$ G% T$ M
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
P% }8 H+ ?1 z" P4 w( H' p9 O5 e
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; v; W$ y- z( G1 u+ e
}
$ {4 ~1 _5 g% G: S$ H+ v$ L
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
- H1 b" U' O# K& O& ?. w
{
; \* e, Z) s5 j: x* T
CItemElem itemelem;
3 F1 g" o& h0 o9 C) o
itemelem.m_nItemNum = 1;
" U, ]! ^, V$ q U/ O4 D3 S
itemelem.m_bCharged = TRUE;
( y) ]" h/ C( `2 j# a) P! r$ i
BYTE nID;
$ c; f* F/ C+ m4 h0 b( V
% |. N% w+ d- V4 s
if( nJob == JOB_MENTALIST_HERO )
! D8 e4 [8 P! j+ H* ]7 Z0 T
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 W* e1 L9 F0 A' ^0 ]
if( nJob == JOB_FORCEMASTER_HERO )
& a8 Z- |1 ~" u) z0 h
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# @! y& ~( Q) J4 i" T! O" ]3 g
1 \0 c, s1 ^! a: Q* n
( ( CUser*)this)->CreateItem( &itemelem, &nID );
/ q8 I( |$ ]. f. \! `
}
8 O9 W, C( |! _( k8 C& [8 Z# z! s" [+ A' W
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) C4 r, |0 C# z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
% ^; v/ m3 c/ s' f4 G( v7 _9 }
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' W' m# T' N/ u5 g* a
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" [! Q% ]; I' C0 G
( (CUser*)this )->AddTaskBar();*/
1 e; a4 F# V6 K. Z3 T( J
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
g! ~6 U: \, s
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
4 l( I, X/ f% V. a' L% {
((CUser*)this)->CheckHonorStat();
$ ~ O Z7 ~# k6 {9 B
((CUser*)this)->AddHonorListAck();
: K7 M+ f. U$ b( e+ N, P
g_UserMng.AddHonorTitleChange( this, m_nHonor);
, k2 N, i. L% c, D j; j* B) h3 d
#endif // __HONORABLE_TITLE // ′Tà?
- |5 x) y2 K" g
}
+ I3 k0 @; r6 C" L9 {) f' M" u
#endif // __WORLDSERVER
$ ]3 k& y* v6 N% J0 S
}
! t5 s4 L6 m' Q; X& s5 X J& s
( a+ @6 v' ~- w' ]9 ?% V4 i
然后你进入functextcmd.cpp并添加以下
8 ?3 N* ~( M! ~
6 M$ G! S# m, @5 U" f5 o3 t# N' J' J
代码:
4 Z& }' e6 A9 l6 A
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. ~5 A: a( M) ^3 |) q. C: b; n& H
下面插入
$ h H" U. u- O
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
( e* L: R9 T, e- J+ Y F) Y
$ ~# u6 ~# v) ^$ H- ~& @2 k
然后你去
3 h! I5 h* [1 T5 O! T; s: e. y
, G( ^8 Z. e' t* l( R7 J W- n
代码:
) L# v# |" l v% g, B7 B
代码
& s9 U$ j% s1 [7 P7 {. Y
BOOL TextCmd_ClearPropose( CScanner & s )
0 f2 M; l* I& E& @' U$ \& B
{
) {" P# m1 _& U2 M
#ifdef __WORLDSERVER
* ?( A8 j0 y2 r6 I- S, `
CUser* pUser = (CUser*)s.dwValue;
: M f( X- B9 X! O. Q; J% q6 D% A
g_dpDBClient.SendClearPropose();
- p5 M2 _3 T n- B; @
#endif // __WORLDSERVER
" h/ D9 `. u8 q3 v/ S& B9 q
return TRUE;
$ E W, j1 M4 r# [" n
}
$ X- g2 y% `6 r# }9 N# q8 Q
下面插入
3 l" n3 I, |+ N: {# ^3 Q& S' q
BOOL TextCmd_rebirth( CScanner& scanner )
6 a9 [# j' I) O: O. g
{
. S2 A, }) j- o {8 E7 m5 |
#ifdef __WORLDSERVER
/ B( B( s* N% R9 i% ]5 {
CUser *pUser;
4 n( d/ l8 V& n) p. E/ D" Q
pUser = (CUser*)scanner.dwValue;
+ U; I2 Y7 `2 ~! A
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 M, g1 [8 e) N
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- m1 i$ D, v& U+ j: G' l
else
/ s7 e: p2 ~- o+ r/ k
pUser->AddText("你还未达到重生条件!");
. O Z q4 B# K @6 O
#endif
- @8 n9 n, }7 p2 O- b8 a! J
return TRUE;
1 i% X' B- H1 c$ N8 y# |& V8 K
}
' b) q* w j% b7 q( B' j- S2 m2 B
( D0 {# P1 l6 a+ ?
/ \% n1 `5 M) Q6 [0 A: f2 }; J
3 _, b" Y" x/ [1 I: s$ R
, q, d \" o% M$ z
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2