飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
" J* C7 I; H) p: }4 R9 e
4 D7 t4 k: g4 x8 q7 e( _4 ]
Mover.h
* q2 z q1 K( y: q" p! T) K3 e9 B
代码:
2 N. h5 M4 G" t: ?: X# Q* a
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( Z1 N! K' |2 M! C5 J/ _& j5 V
' |# M1 c) f* L- A& ~
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, ]8 a5 b8 `6 A* h/ J# W
# o! _+ R, B+ m
然后你去mover.cpp添加
( t$ `* c* b5 Z s
! N4 c5 Y) ?3 g+ `4 B
代码:
0 b; j5 `- x1 W% ^# p
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 n9 g/ K1 b4 K, }% k) p( g
{
/ \. W* Y }9 X, Z' f) ]: |' S5 q
#ifdef __WORLDSERVER
1 Q+ n2 B) G X
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# B7 _; X- n9 a
MoverProp* pProp = GetProp();
3 f( ^, p2 `4 @6 {; _5 T
if( pProp )
+ p1 \" p' P6 p. x
{
9 W" m0 E7 i( e$ D7 H( r/ R% R
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, A$ J }! G$ g" k) N, ?4 W
{
3 ]* U7 o& @! d
AddChangeJob( nJob );
1 T& n4 y4 x, K( A
}else{
0 A% B) r' d" N# \ e9 b( l
return;
/ u, i9 B7 m* N5 j' a' W: m
}
( w2 V1 [$ z- c. T2 A
int nPoint = 0;
E" g v& k" z9 ^
if( m_nJob == JOB_MERCENARY )
|: K( h: U( t, ` u" X5 x1 i
nPoint += 40;
y4 T1 X8 D9 \ {. Z
else if( m_nJob == JOB_ACROBAT )
7 w" z: u Q ^8 m* s- Q
nPoint += 50;
! p+ A6 @3 t# l# c5 k; w4 o1 t) a
else if( m_nJob == JOB_ASSIST )
n( m( o. E$ B, p% t8 ?3 A- F
nPoint += 60;
( T1 s3 D8 m; E5 k$ x. Z
else if( m_nJob == JOB_MAGICIAN )
: O8 D! m8 C" s
nPoint += 90;
' x3 v Q# ^4 P5 ]) s
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- H. C- U0 Y$ a$ D5 Q
nPoint += 120;
: b& j: Q7 o( c. D: \" T7 H
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 Z- v# K/ D; K% M8 @; r( ^3 A5 d. B. q
nPoint += 150;
. z5 e8 P* N+ [
else if( m_nJob == JOB_RINGMASTER )
$ p, O& ~, g) k2 n5 P0 B' _$ r
nPoint += 160;
2 }% _# s- E' @& l; E
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
4 S V; \) ?1 \* e: _! C2 P
nPoint += 180;
; `. A, q2 p6 G( _+ s* [
else if( m_nJob == JOB_ELEMENTOR )
" _* ^8 U" i( U/ ]0 d% w2 _: k
nPoint += 390;
( e, M1 Q: g$ A: [5 m# ~- n
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 u% `( \+ w; K! _" l6 @5 e
nPoint += 120;
5 @+ H% P- e- }! P; z- T5 Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 ?8 Z3 m" d/ J2 m
nPoint += 150;
/ C, x4 Q) J5 G6 i
else if( nJob == JOB_FLORIST_HERO )
2 h/ M ]) Y4 m+ Z
nPoint += 160;
! H/ B3 c: O; C" M; O# W8 n
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
5 J3 C, N. ^+ `1 i; ^
nPoint += 180;
' K" T8 l' J# [) u6 t0 Q# C! f
else if( nJob == JOB_ELEMENTORLORD_HERO )
% D' T/ {$ r; [2 I2 c" {3 N
nPoint += 390;
+ H* e" l" r( {4 f: B
( W1 Z; q( V& g6 v- n
AddSkillPoint( nPoint );
- Q- R4 _3 d: O* ]8 z: \
m_nLevel = nLevel;
! H& }7 s) j/ [% K3 }& J- ]/ d
( ~8 `3 N# c+ z& N; X8 N
SetJobLevel( nLevel, nJob );
, r6 ]+ _, V" C ]/ M1 j" ^
m_nDeathLevel = nLevel;
% W9 ?5 t0 ^2 S
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* R- z; g# ]/ w# V
if(IsMaster())
5 V; e5 A! N3 w+ T3 \8 v
{
0 n+ h$ N! F6 S! }
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 R4 j+ H# V8 t" I
if( nLevel > 59 && nLevel < 72 )
! E T+ w5 S t! f
dwTmpSkLevel = 1;
6 @) |4 l) H" K/ Y
else if( nLevel > 71 && nLevel < 84 )
- L; J7 p4 w/ H0 u6 O# @: p/ y
dwTmpSkLevel = 2;
, Z+ l& b# n5 d1 {) u0 h- z( A
else if( nLevel > 83 && nLevel < 96 )
2 A# U8 a% P+ x- L4 P
dwTmpSkLevel = 3;
/ g* T2 }2 i( S" R) Y8 B, _0 [) e0 g" Z
else if( nLevel > 95 && nLevel < 108 )
6 O. P4 @! @9 \* |" L" c) {
dwTmpSkLevel = 4;
4 x" q6 u Q2 P6 y+ q
else if( nLevel > 107 && nLevel < 120 )
4 [5 v7 \+ H$ o% v% y- e& M
dwTmpSkLevel = 5;
. x( U6 g3 {3 T/ K# u3 G3 H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 W6 n2 F8 o2 D! T* ^; P+ Y
{
. b1 c. n7 Z# T
LPSKILL lpSkill = &(m_aJobSkill
);
W; Z! y) \* [. d1 M* s6 [+ `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; }4 `! o- J) I. r6 ]. t
{
: Y; |' Z) [; v) z7 @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) w. N% N* G- |0 q
if( pSkillProp == NULL )
, S. M, U0 T$ O9 o2 s
continue;
9 K S! S6 @9 y- w2 V% i4 Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 ]% ^2 i* C2 S+ E
continue;
7 g8 z9 J) o/ k
lpSkill->dwLevel = dwTmpSkLevel;
0 x6 D; l, w$ a' S' V Q' g& A. x
}
% |7 i' m! L# [) K
}
4 Y/ w9 B4 |: x% `: K" f, n. Z. }
}
' V" P; C( z \0 N y+ Q' @* G
else if(IsHero())
* z; B+ V" S0 G' Q! j
{
& C8 `! {4 o/ q% G h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 A; M# [6 A9 g* f/ t
{
% j) F( ]5 T& {8 K% h
LPSKILL lpSkill = &(m_aJobSkill
);
" t8 ^9 v0 G* v [1 r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 O" D# ^$ _$ w, o
{
% q5 r" S7 v) |5 B& b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* ], T8 z4 v, L
if( pSkillProp == NULL )
5 W; c3 |5 y* q ]% `
continue;
# K! D: m- M, Y* d2 @, L! {9 @; J# k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- j' {; c5 N& w5 W1 d, m/ T( z, W
continue;
: B/ o9 p! l# I% z+ d+ `( O
lpSkill->dwLevel = 5;
+ Z$ ~+ h" n. x
}
2 q2 W; x+ ]2 q; x( R% e$ w, y
}
: k' C0 {0 S: a3 i7 J. y
}
7 \8 n- A% i& ?* \
else if(IsLegendHero())
( W. V$ d9 R/ B) ~+ T1 s
{
) J2 H! }5 g5 q/ i8 |/ F V
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 Q$ m, l/ l/ X0 Q' b
{
$ ?7 {- x0 J) ]. }
LPSKILL lpSkill = &(m_aJobSkill
);
4 ?, L$ Y2 `& w$ I$ Q5 I5 Y2 B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 |+ B9 b' n, ^1 ]
{
% |- |$ K9 |4 ^9 ~0 M+ @- r! c/ T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ \; q, ^* {! B2 r, p" G
if( pSkillProp == NULL )
; J/ T% D, z$ o; e4 F; c1 i
continue;
. K: J- ` K! V7 Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 ~6 v; o8 g8 @& c! |
continue;
: }0 {" P0 ~7 s# b8 I7 h: c4 @" X1 `7 c
lpSkill->dwLevel = 5;
1 N' l8 n" E+ w$ x7 F% f* \. q- P) D& w
}
: n! w4 T+ C, h- S( A p0 ~4 W
}
7 L& }- m' S5 r/ _
}
/ ]& I" u6 o# ?# |+ q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 y2 _9 D/ p6 Z0 @
if( bGamma )
5 i1 m" p( [7 Y1 x: F& ?
{
, |: Q4 Z7 o9 R1 G0 T* r
m_nExp1 = 0;
7 r6 b+ C* i1 |1 T3 y
}
6 l+ B7 M' j. l' ?+ B
6 k! P4 v+ \ R* Z( L4 @5 r; q
( (CUser*)this )->AddSetChangeJob( nJob );
9 s D# q8 r# N, u
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
: G$ }, N- T' i- ~6 M; \
2 }$ S8 U7 J9 I) j( T
5 K* r: T) w: W1 U" E! J! K* v
#if __VER >= 11 // __SYS_PLAYER_DATA
/ ]7 t r% Y8 Q; g- y1 I [
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 N% V' G4 g7 X$ R
#else // __SYS_PLAYER_DATA
- f' [* L8 d! X6 p, z8 q$ M
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. ~2 S3 W, i; {3 Q1 b; O) T$ Z
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
3 i% k% }+ `1 R' N
if( m_idGuild != 0 )
4 M& V8 m: J; H; C
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( T. S8 C$ h X: L: D
#endif // __SYS_PLAYER_DATA
$ L. [6 a3 V2 F8 h: X
SetHitPoint( GetMaxHitPoint() );
+ i' j; X0 a% `+ v" U5 G
SetManaPoint( GetMaxManaPoint() );
1 D: @8 U1 Y- P% w: C* t; I) U# k& o- N
SetFatiguePoint( GetMaxFatiguePoint() );
' ?* Q! {8 \) `% U" Y) m& R
if( nJob >= 1 && nJob <= 4 )
/ f4 ]1 l$ R. X' r# c% c% Z
{
9 \7 W5 ?! f, K8 b! x; h9 V
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 e" J/ g4 Z: x, M% e" X
m_nRemainGP = 28;
4 q/ N4 `) G; U" M; _, Y2 V
}
2 x% F1 @3 y+ d: Y2 t/ _
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 [, s) ~( ~9 k1 n: g
{
4 w. n+ P' `2 v9 _" h
m_nRemainGP = 118;
- H0 l& I4 h8 q3 O9 s7 k5 {: J
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 ^% `) J( e j; Q8 p
m_nStr = m_nSta = m_nDex = m_nInt = 15;
" i i- \ ]6 m- f7 T
}
2 f- {4 E& l% N1 G. T+ }' {
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ E1 N z f) o @. T( i/ v- C
{
! }0 ?4 j: m' [; r, ^
CItemElem itemelem;
/ T7 N3 H" i1 V3 K6 K% Z O5 W
itemelem.m_nItemNum = 1;
( e7 Y- @! G( t
itemelem.m_bCharged = TRUE;
* S y4 {) v4 ~. c0 n
BYTE nID;
0 D7 k% a2 O# Z$ a
( h4 v" U; p' [& q9 h) J
if( nJob == JOB_MENTALIST_HERO )
5 v4 O& |; a* h/ Y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' w! I* b e/ y0 m& M
if( nJob == JOB_FORCEMASTER_HERO )
, Z& q! P+ |' P& }9 @: X
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 k/ {. v0 A+ \0 i8 V8 W
$ q8 E3 D/ s4 i* y( |' g8 V
( ( CUser*)this)->CreateItem( &itemelem, &nID );
# v7 ` G: v1 V$ n# S. O! q" d7 C1 m
}
9 w3 I5 S. O$ Q; W- d
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* P8 }3 Y* j9 J
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 ~( x; N2 L+ e2 s R0 J
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 A( s* q- Y- T4 ^8 l. W7 n7 x
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
# f8 W$ D: |- |* Q1 f7 b) Q
( (CUser*)this )->AddTaskBar();*/
, p" I; F& K* T) p: G" o' X$ S) N' u
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 |" l! w; j8 U2 ]
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" e$ l. g4 y u
((CUser*)this)->CheckHonorStat();
9 y/ D1 O2 L$ \1 F' y9 m6 }1 t
((CUser*)this)->AddHonorListAck();
; H& g: y; M ]! C& [. p- ?# {" X
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 d% [$ S6 X! b! o+ r* j
#endif // __HONORABLE_TITLE // ′Tà?
$ ]( P" E! o! E3 f
}
' V' N6 h3 o! U. ]$ X9 Y/ P
#endif // __WORLDSERVER
" e4 A# s& }$ Y1 G$ S6 h; S
}
* Q' J& s) {0 O7 b! ]; { t
2 f Z+ {& T9 Z7 r
然后你进入functextcmd.cpp并添加以下
- G9 @% S8 ?, j; `+ c3 N9 j
$ X6 `* u8 N$ [/ m! N5 }
代码:
! w% Z7 u% p' L( |
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ L, k5 Z- Y7 z1 I U, G
下面插入
6 _8 y6 l: G9 \( \- \/ x1 o
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ E; ~( v1 @2 T% X' _
0 x$ ~4 l2 t+ J3 ]( P1 j
然后你去
4 k7 Y* c/ M \' e
$ t$ `* O- M' g9 K7 J
代码:
3 F2 v, b4 Z2 x$ @
代码
" X# B" s5 J; \5 U9 R+ X
BOOL TextCmd_ClearPropose( CScanner & s )
$ |& Y% _5 t# j/ S- _# T r1 S
{
+ u5 v+ I' a; f) d& ?7 Q& ~9 N
#ifdef __WORLDSERVER
7 ]4 b l; H( T' }' f* B9 U
CUser* pUser = (CUser*)s.dwValue;
9 Q5 C9 I" k2 O* L3 l* d
g_dpDBClient.SendClearPropose();
$ s! x9 G w% W9 Q4 G4 N! R1 ^
#endif // __WORLDSERVER
# Y6 ~. v8 A) w5 l6 e2 a4 X, H, [
return TRUE;
% _( S. k- |1 q+ S J) a
}
4 ^1 O7 A" ^9 Q( l8 e
下面插入
7 {6 x' n/ v- L$ H- F9 I; \
BOOL TextCmd_rebirth( CScanner& scanner )
2 b) s5 r8 f+ X
{
, i# I8 V1 T5 v) i! ]
#ifdef __WORLDSERVER
1 y2 [. s" u. b* t/ z( n
CUser *pUser;
0 i" _1 ?5 H0 k) L0 [
pUser = (CUser*)scanner.dwValue;
0 x" ` P8 |: [3 W4 v9 @
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 z2 Q6 ^9 H( q" X: l3 H+ F
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
! E, ?5 n4 a, S, W9 |+ d% }5 ~0 l6 d
else
# b) M1 P+ {3 w, z+ e* ~
pUser->AddText("你还未达到重生条件!");
+ l8 f+ U7 E3 c& k. o; Q
#endif
3 |3 ?0 R5 R f! D' ]* y u$ V
return TRUE;
. }9 e3 t8 K& ~9 H( [
}
, ]% d9 E( V3 I2 H! f
+ f/ Z1 i% }5 C5 p! x- e2 a R
! ~9 z1 r7 @) p p" O
! q' d9 a3 x% R! b5 o% f$ l
- U, Z5 G, |' v/ t4 V: e: Z3 f
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2