飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, R- V& _; U; K3 g ?# S+ d: j: W
% A" M4 u$ t$ u7 b
Mover.h
! _( C. a, s& {( W
代码:
# b8 h+ E* V1 U: e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( t7 o. y ^. E
5 r ~' x4 i; }, V
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! R s! `) G' L1 Z. `# e% x9 g
1 j; u! Y; a; r. b
然后你去mover.cpp添加
* p. {+ @- C7 Q& k; z+ h: S/ P, r
5 I9 F' J" z0 Z0 L" q4 u3 w$ M$ L
代码:
/ b3 Q/ x. H6 h. ~; _
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* I' J. p# U/ S- X% U& _/ K
{
" l( j+ J, l& {) I
#ifdef __WORLDSERVER
+ v. D4 V' W+ {7 k- F/ D- v+ ^5 Z
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
' F+ r3 `4 @. v2 Z/ G. |( z
MoverProp* pProp = GetProp();
4 C$ Y5 R# h) P6 g& g8 ~
if( pProp )
j: c& v% n4 g i d+ ]. p
{
* c+ h& @+ g5 s+ i9 p3 W
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; C' {% t3 {4 U5 @: N% ~; U
{
$ N* S8 x8 o& I
AddChangeJob( nJob );
/ x. i+ l8 \2 l7 D2 M* v. S6 H
}else{
S# v% U4 ~6 v' k. \! U
return;
: q# i7 m1 C/ c& V8 A/ O# Y! J' E
}
5 x8 I( }9 `2 r2 J+ n, {/ K
int nPoint = 0;
" u4 B) |& d- x e* {' o
if( m_nJob == JOB_MERCENARY )
& c; n- @4 H4 N' o
nPoint += 40;
5 R1 d4 V1 K6 D
else if( m_nJob == JOB_ACROBAT )
. D# q7 v& w( m/ Q3 f9 n& f
nPoint += 50;
5 `' j2 F8 Z" e# G& o
else if( m_nJob == JOB_ASSIST )
t# W" J4 t/ [; z3 n
nPoint += 60;
+ r2 K4 o3 f) S) Y3 j
else if( m_nJob == JOB_MAGICIAN )
- I) H/ c# Q6 E2 p; y
nPoint += 90;
. j% H0 ]. b" S5 s* r' h" ]
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
" l$ ^/ x/ Y# H8 n4 N. `5 M
nPoint += 120;
* [- J% \% z! M! E
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. f5 F. U5 [$ u
nPoint += 150;
: w6 G* l. o D" ^$ Z0 |
else if( m_nJob == JOB_RINGMASTER )
0 n8 c6 N/ z% }: Y. ^, A) Q
nPoint += 160;
8 N- a `* L+ d; t1 s3 s& n% A& G
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) ~) R# M5 f" W+ v( E4 j) p
nPoint += 180;
% i) d1 m7 ~, c. o1 f
else if( m_nJob == JOB_ELEMENTOR )
3 O1 P2 u( B; @9 {
nPoint += 390;
* e& H: c" O; N" ?
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ P0 c0 j9 I( @8 V0 v
nPoint += 120;
8 e$ D) v. m! p/ g j
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 g/ f! m/ G+ `
nPoint += 150;
: n5 m9 Y3 G* X* D$ G" K) v; J
else if( nJob == JOB_FLORIST_HERO )
; m7 e8 T0 w2 q% z# A
nPoint += 160;
/ \* J, Y6 ~; p* [- t- ]
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 P! v# N# [0 ~! Y6 R
nPoint += 180;
* l3 D0 A/ M& L& K9 P! b! y7 J
else if( nJob == JOB_ELEMENTORLORD_HERO )
3 n/ E5 \, y3 d3 p& x4 Z! ?
nPoint += 390;
9 ]+ n4 h+ d4 E
/ E, H: v. X- X) o& z
AddSkillPoint( nPoint );
6 c0 p! c8 I! y$ G
m_nLevel = nLevel;
2 \5 \# N: C( b/ B
. B$ O, D A; ^8 [5 b& w; ?# M
SetJobLevel( nLevel, nJob );
9 n0 m' _$ L; L1 ^7 F& s
m_nDeathLevel = nLevel;
, m5 e3 P% R. `( `
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% B! k; J# W5 P7 @
if(IsMaster())
" ~! {# T C, }; x, f1 y
{
h/ x" P8 T: ]& x) A+ c
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, F# U6 w+ Q! l3 Z; H
if( nLevel > 59 && nLevel < 72 )
I5 h8 i r/ ?& L
dwTmpSkLevel = 1;
7 [$ o& l# v% i' `2 b* Y
else if( nLevel > 71 && nLevel < 84 )
" {' k9 j/ h/ }7 d, U6 u
dwTmpSkLevel = 2;
4 I, L% x1 x. n* J! Y: I
else if( nLevel > 83 && nLevel < 96 )
$ k( a8 t0 c$ a% O1 Z- @/ [
dwTmpSkLevel = 3;
& b8 b+ w6 n |0 V/ L3 H- d" I
else if( nLevel > 95 && nLevel < 108 )
/ m/ ~, f$ }5 p4 ^5 a
dwTmpSkLevel = 4;
S" E0 B* F' G4 Y1 x
else if( nLevel > 107 && nLevel < 120 )
: D, L' W; @" X" _( e/ D
dwTmpSkLevel = 5;
& H) l! g' T! W ~4 O. }
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( Z* ~; S! t) [1 e( I8 ~; `
{
# S$ B: H3 f7 |6 i4 _. l+ p
LPSKILL lpSkill = &(m_aJobSkill
);
$ p U2 U. h7 [
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 v8 l9 R- L4 k' O
{
8 n; `6 h( o; T( H9 R% n P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
X) Q! D0 L |. j. F0 h
if( pSkillProp == NULL )
1 {. Q2 K! r7 O# W" R( O
continue;
) m& q* Z# v7 h: `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: {: h# K: X F) z
continue;
+ D4 e: I4 r& V+ C) i1 i
lpSkill->dwLevel = dwTmpSkLevel;
7 z* V G7 J" s
}
9 z# _8 q* D$ z! \- t
}
: v- h% I* M) h+ b: h) S) Y
}
, o" W; @% ?$ O" g$ d2 b
else if(IsHero())
$ Z" }8 P2 y# R9 @/ s5 }5 U. E
{
: U9 [. c$ J3 _' f- f9 }6 H4 L/ B9 E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
o; R2 ~; V, i; O! v
{
3 h7 _& ~, ?/ p1 P
LPSKILL lpSkill = &(m_aJobSkill
);
8 M" X3 G- d/ _$ Z% ?( u; c& `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% n( _8 q4 a0 o
{
3 Z" [( T7 i3 p4 }) q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& n0 [% W- O9 d- P% l' c2 h
if( pSkillProp == NULL )
8 |3 D" f( r1 a W4 h
continue;
/ M; N* h* g2 q" M0 H9 e, x+ v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 \. _2 s& D' _. E9 p% G
continue;
1 E3 S; j {) O. P
lpSkill->dwLevel = 5;
7 K) h- O l" ?' ?/ h0 @9 `! a
}
+ z( ~1 [* N* q9 y- j" x& P# J
}
$ `' |; W1 i# ^+ n! o0 T% R6 Z
}
o+ c" ~- R# Y7 ?: ~1 K( ?9 E
else if(IsLegendHero())
. _9 z8 r4 J& Y7 a% V- L5 j7 V+ _
{
9 n/ z3 A3 M3 I. b1 _2 D# s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ Y- A7 n5 g" h: {, {) h/ M
{
$ i# M) Q2 ^" X% [! q2 N7 p) H1 b
LPSKILL lpSkill = &(m_aJobSkill
);
( R% `1 s T5 X2 n3 j$ ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ H6 r6 a$ Z3 A% d+ o/ M3 h) ]
{
7 Q1 f9 L( v3 a$ |0 m; N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; G5 A# V" G+ ^( P; }7 `/ t5 e
if( pSkillProp == NULL )
( S$ d$ b3 O9 s+ |* W2 @
continue;
8 k' W# V& I8 _7 r; x5 ^3 \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" y4 p1 T8 Q6 ~' m$ @
continue;
% @' r Y! O& H
lpSkill->dwLevel = 5;
/ Q, R6 F) K t, y6 T
}
5 A, A2 v. p% _+ {% t+ D
}
8 P s' ~. d! }% ?( U E
}
: \2 x; j" ?5 n. p, z8 F
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 X' b& x9 L" q7 R% T
if( bGamma )
% s2 b* ^8 f# A/ ], \
{
6 j* f6 M: X( G3 w" }: k# G/ C, E
m_nExp1 = 0;
6 Z* C8 q0 Z9 B
}
; e* p' X M' v3 Y2 S# u4 z
: p& g# \7 S8 R
( (CUser*)this )->AddSetChangeJob( nJob );
0 S1 x5 L3 ?) w! ]
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ G7 t* ]. I# o9 ^5 J4 _
( _/ H0 e& w8 ?7 H5 _
5 ^2 ~) i9 K: d* d7 s
#if __VER >= 11 // __SYS_PLAYER_DATA
' a! u, `+ P+ W4 J0 `# F0 U+ e8 c
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 H+ g: U; o6 c% @% T" K' F; K7 `: X
#else // __SYS_PLAYER_DATA
4 k4 M4 [: M0 F2 F/ T; J4 L' o
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 k) S9 W7 r& e8 s% k. P! Z. Q9 `
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 m4 _- f/ X% k: M0 y7 q
if( m_idGuild != 0 )
" J/ z+ B2 I' @0 l ~) l
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 k% `5 E7 ~/ Y
#endif // __SYS_PLAYER_DATA
* @3 N3 Q" ~) b1 i$ r& B3 c
SetHitPoint( GetMaxHitPoint() );
) n% R) K$ L( p; p. b
SetManaPoint( GetMaxManaPoint() );
- c* g' I; c* C& p3 r2 A- Z
SetFatiguePoint( GetMaxFatiguePoint() );
$ B, Y8 N3 C E' m
if( nJob >= 1 && nJob <= 4 )
- r% X8 M8 E1 g% ^7 z# e
{
2 q4 W! O+ ~- U, g3 E- w4 U
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 _0 p. _. p- X2 w; T% m# t# K
m_nRemainGP = 28;
5 E+ V: [; D2 W9 n
}
" h" {; V# a7 x: }
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
$ u- T3 m T. @$ L
{
" y3 V8 f% z3 K- T) c
m_nRemainGP = 118;
" e6 q; r \" E [& f
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 a+ ?$ q# Y4 X* B1 F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' z: }# I$ i& P( q# o" f; l
}
4 \) {5 n# ?% @3 O* y
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) l8 c- c! W- `3 z8 i
{
7 [1 }7 i8 q9 W
CItemElem itemelem;
# s1 d6 X/ d/ _ [$ O! D7 W# v) @8 H
itemelem.m_nItemNum = 1;
: V8 }4 |5 t3 L6 d
itemelem.m_bCharged = TRUE;
0 H, d U8 d* a" Y4 l5 S7 F
BYTE nID;
& r% [6 ^) z3 @3 Q: s2 g4 r
/ a4 L. V0 `* e$ H; M* ?7 @
if( nJob == JOB_MENTALIST_HERO )
' x; W# n) I8 E0 [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 w" s4 ^" y! O) Y0 q- R
if( nJob == JOB_FORCEMASTER_HERO )
/ X/ n. K4 s" `( f' u& H, a
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* o; k+ i' R r5 ^ }" h; v" r c
4 g- A2 J3 \9 W3 |- \: F
( ( CUser*)this)->CreateItem( &itemelem, &nID );
# E- J: ?! k2 u: x) X
}
& ~' }( r( e5 k% |* y& P- R( U
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
' n& [0 P/ F2 i/ I1 B9 \: B
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; J: w% t( |1 e" T1 t2 j2 d8 p: \
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ F* x; w0 Z! e* T+ V4 ]
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" W: x2 }! \& `) J. @9 |; C
( (CUser*)this )->AddTaskBar();*/
, U/ l K: U% J# L- ~
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. J1 n* |" a z0 Q# r- P
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
# q/ H: i% Z" m" X4 b p( f
((CUser*)this)->CheckHonorStat();
% [' i$ x3 g: b; T) i9 \: D5 e7 d: n
((CUser*)this)->AddHonorListAck();
% x r4 s; ~% ]+ R8 s1 |8 U
g_UserMng.AddHonorTitleChange( this, m_nHonor);
; d- q! V9 i) a: |, s* y
#endif // __HONORABLE_TITLE // ′Tà?
/ {# a6 z) E( o- k
}
2 x' c, s: ]" M W' s
#endif // __WORLDSERVER
% {& v/ R; Q- f! ^ b' X; w
}
s0 a' O2 a/ ^# Y) o5 b- E
+ d; q: a! e4 [2 a
然后你进入functextcmd.cpp并添加以下
; y5 R/ c0 X7 C- d* |, B" D
+ @6 e4 [; X; K6 g3 b
代码:
' n2 A+ o( k* n6 S3 r0 y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, W E3 U: U& ^7 Z3 |
下面插入
/ ]7 c ^% o" N3 {
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
& ?: D) A6 |: P" {* [. d
) `! }# V8 R8 g
然后你去
+ C8 c9 o8 l6 y2 K9 S( C3 a6 R. B
1 a" X5 Y% x: o/ R1 u& A4 i, [
代码:
; v& q5 O' a2 m+ v% i" k: ~3 C
代码
, b8 n$ f, P" E/ H d
BOOL TextCmd_ClearPropose( CScanner & s )
3 b. }3 E2 y G% \
{
" Q' } f. j9 D* ?& D4 k/ x* a( L
#ifdef __WORLDSERVER
6 f7 E2 M; m' i2 y. G
CUser* pUser = (CUser*)s.dwValue;
/ J1 b' [7 B, r, L
g_dpDBClient.SendClearPropose();
; H3 y8 ]7 {" k* ?+ Y
#endif // __WORLDSERVER
5 P. h& u' k d" h$ y( E$ ^& K0 \
return TRUE;
+ N+ l! c( N+ {; S# ]
}
+ b3 t5 d* _* Q/ J
下面插入
8 W! n, H; O+ l
BOOL TextCmd_rebirth( CScanner& scanner )
! p8 D& h) C9 }1 {9 x: X' h
{
, g0 w/ S, L0 P0 m6 }
#ifdef __WORLDSERVER
6 b% V1 W a; r! u, V
CUser *pUser;
x5 K# X$ ?( H7 v1 R- c2 F
pUser = (CUser*)scanner.dwValue;
9 T" p* \9 a+ w" \" R
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
6 y: D2 J; X3 f- ~& }
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ z; ~: u) u3 O' S9 ^( [
else
. `# g k% Q$ w" q) l. f J) @( A
pUser->AddText("你还未达到重生条件!");
' u7 x2 P) q6 T6 V$ P9 w" |
#endif
& ]. X! u+ c- S4 i$ _
return TRUE;
2 o5 z# P4 T* l9 k/ P
}
; e8 N* V1 a7 |
0 u" x h l$ `0 i6 F
" v6 R( u1 K# P6 @3 D
% N8 p0 I ^! O* Q( ]
4 w# e$ s1 L n* U3 L: T7 v
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2