飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; y H, J0 r9 B- K w7 {8 p
% P+ J3 K0 h8 ~' [; ~
Mover.h
( }- U+ b) B: N; J" S& g& v8 l/ n2 t
代码:
2 y; H2 {7 n( T# v3 I' d/ n- p8 q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
5 ^! @0 T0 z$ V8 i
' v: E* l+ J' d
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 I( |/ J7 R; c/ X, z, ?
+ ]$ z5 K% L9 }, ^1 b! e: V
然后你去mover.cpp添加
7 E0 F& B7 q* A9 f
4 t8 V( ?6 ?7 P7 Y. G
代码:
3 l7 \5 A( t, f! s6 D5 I
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 d8 H% e# \/ c! G
{
* Y& n% m4 `. H! B$ Q6 b) m6 Y4 x
#ifdef __WORLDSERVER
3 I% z! P4 G9 g
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: H; `9 e3 g8 h: L ]
MoverProp* pProp = GetProp();
2 ^0 l9 o4 |/ b% s! J
if( pProp )
# ^8 f' g+ L+ t5 n$ K6 z
{
: n, F4 r& ]9 Q+ u7 f+ c, [% G, r
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) b- p. |; \7 R. o
{
$ k0 E. ^( d( m& I
AddChangeJob( nJob );
; i1 z5 K+ i- v# b5 W( d
}else{
; h( j: X% B: @9 ~3 c7 N3 w4 l
return;
, ^7 Z3 y9 P' z2 u7 K; c2 @
}
. b* y$ q2 I+ v$ D5 L: k
int nPoint = 0;
7 R: m- v% j) |" g0 D
if( m_nJob == JOB_MERCENARY )
5 x# k- y6 i" o% N& i6 t& f+ f' Q# G2 N
nPoint += 40;
2 ^. `" q" K: g5 o! I% s
else if( m_nJob == JOB_ACROBAT )
`5 j$ g7 `/ {
nPoint += 50;
# Q6 I) t/ i) B6 `. g
else if( m_nJob == JOB_ASSIST )
1 v" {3 A; d9 r$ _. \8 }
nPoint += 60;
$ U/ T2 K3 ]9 v" b5 h
else if( m_nJob == JOB_MAGICIAN )
8 c# H0 V$ W$ O6 F" `1 X- |
nPoint += 90;
% }$ Y, T. J% l3 d' t6 f, b
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ I* d2 p0 `( q: ?
nPoint += 120;
K: u2 \; I5 i X1 w4 ?
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
2 R6 w: v) d- H0 G$ P; x
nPoint += 150;
2 j Z7 J# N/ w# Y7 P/ {- w
else if( m_nJob == JOB_RINGMASTER )
4 w$ \5 Y. u3 n6 {5 D
nPoint += 160;
) X2 G! z# Y) c3 f6 u) h
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- G/ B2 D" V0 U8 R9 l7 n& }
nPoint += 180;
* t" u- e' i* {$ E2 G7 w
else if( m_nJob == JOB_ELEMENTOR )
& ^% D4 W6 }& i
nPoint += 390;
. W; ~; p& f4 e) j* C3 P0 ^
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ _% I. e* Z3 ^, k: B
nPoint += 120;
5 T6 [; W4 S, e7 o# b
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
9 U, V4 h# e' P5 [3 f# }4 c
nPoint += 150;
T! {: b* W0 l8 ^
else if( nJob == JOB_FLORIST_HERO )
2 Q, d3 L; e: f; t7 g/ _) K
nPoint += 160;
" F9 Q3 B4 R6 F
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% ^) @; N4 |) p+ k; S% r/ \/ Y
nPoint += 180;
( e7 }/ c# n2 i8 K1 @! Z* Z0 Q
else if( nJob == JOB_ELEMENTORLORD_HERO )
, P( \: H3 {1 Z& L+ i
nPoint += 390;
$ `" D% P$ E5 t3 {
" @ | L5 I4 B% w2 k- y$ w8 K. w/ r
AddSkillPoint( nPoint );
9 l: w5 g# O9 I0 [& l! u
m_nLevel = nLevel;
* p$ y7 n! [6 k4 w3 j
- |8 }/ g# T0 b6 @/ y
SetJobLevel( nLevel, nJob );
! S' E4 U# O5 d/ T/ |& ]3 L
m_nDeathLevel = nLevel;
% I' u3 {- m6 W: [$ j: _
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 u. Q. I7 l) |" j! {* \- [
if(IsMaster())
! X2 o! O3 _/ r6 @1 c
{
2 ~2 ?; W7 s3 b* Q4 D9 a% D4 o L ]
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% y0 ]6 y) C4 z- ~- U5 c
if( nLevel > 59 && nLevel < 72 )
) ?$ e* b. `( f7 F `4 d0 _
dwTmpSkLevel = 1;
2 C9 C; y2 U. F% z' I- O& o
else if( nLevel > 71 && nLevel < 84 )
1 y% S6 i3 T2 }& F# K( [' H
dwTmpSkLevel = 2;
8 s: d. n* y9 U/ N
else if( nLevel > 83 && nLevel < 96 )
; K" r( ]; ?; g2 V. P
dwTmpSkLevel = 3;
( e. C+ G; _+ H) ]
else if( nLevel > 95 && nLevel < 108 )
% I1 {2 X9 k; k* @9 }! n- k
dwTmpSkLevel = 4;
; h! E" y7 v7 w4 `9 c [! p
else if( nLevel > 107 && nLevel < 120 )
: @2 ?7 r( h% h$ R) F2 z6 u, x
dwTmpSkLevel = 5;
+ F# F# T) P+ B" W+ v
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% L$ M# _9 i7 Y2 S5 M
{
$ |$ j- O! @# M4 R/ V5 K
LPSKILL lpSkill = &(m_aJobSkill
);
) ? W4 X) G' g5 T8 `7 j- G- w
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ f8 \ S; w( k2 k0 m& y& f
{
1 |/ @3 I+ {8 M( A7 u ]* O1 x! ? K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 }3 x- L" w' _, s q3 _7 g
if( pSkillProp == NULL )
! W: O; z, Q' Y
continue;
- j; v2 v- J9 @- Q' ?* I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) O6 J& F" n5 ^: g1 ^# \! m% h" O
continue;
C, O s# @ q5 J3 E A
lpSkill->dwLevel = dwTmpSkLevel;
1 i: }6 R( Y$ N* N+ v& |/ Q
}
5 [9 b8 J+ I0 D$ \" x9 C8 ?! t
}
% A+ p$ |5 |1 P! B7 O
}
0 b0 P) {- x, c; F0 h
else if(IsHero())
+ j/ ~( B8 U+ m: C- Y& g
{
( [ P# U$ z0 ~
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* o6 Q# s1 D! ~% q3 z$ z
{
4 Z) i/ L! |' u6 c' r
LPSKILL lpSkill = &(m_aJobSkill
);
& ^8 N! y! _) @ E9 _6 g6 h W8 K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' l- D9 X! o% `' t& s1 O
{
3 l+ [& A) b2 U& k! W5 k/ W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ m3 g% l" V5 b
if( pSkillProp == NULL )
% l( ]' Z; m/ ?. Q: _; G
continue;
" b9 d3 O" k/ ^7 W3 @/ Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 u) r+ e, f' D W: r( m* u
continue;
. F5 z3 n* I( f6 l2 O0 h
lpSkill->dwLevel = 5;
t- ~9 K/ L! Y4 c
}
# p+ y3 u% W9 x2 \' o
}
1 |" z+ S5 N# ?; q( q8 K0 w: z+ g3 z
}
" d8 ^ a8 O0 p. {; r2 E* l
else if(IsLegendHero())
. p# I4 T+ ]# H* K
{
' D+ m. ]: T) o0 J' B9 S
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' [( }3 c, Y8 f" {+ J
{
8 ~1 c C" o: R4 K
LPSKILL lpSkill = &(m_aJobSkill
);
( X) Q+ h3 I% R- _
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 J) v1 p. q, y- h7 i
{
, @ t$ P* s* K$ a7 d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 k+ {+ w4 B8 R0 m6 v# R
if( pSkillProp == NULL )
1 C* z$ P/ J! x; M
continue;
, p" P5 C2 l1 `- S- p) d/ c7 E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. e' a5 R8 } Y5 s4 x9 Z {
continue;
. U, ]% B8 [/ W; |1 e1 J- @8 _) I" ~. U
lpSkill->dwLevel = 5;
9 Q" N3 I* t+ X7 C/ t
}
' c7 j. Z+ H' P# R1 \ r
}
# ?& Y* ^2 V7 _& N9 O
}
. O9 S$ w1 ~/ {9 s) q ~
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
m' c+ o9 e, m2 e" m8 i# M% a8 P9 w
if( bGamma )
5 Z& n3 H$ _8 u: S$ q# J& r
{
8 K; K6 f: E" _9 \ ~4 d) d/ k) H5 O5 u
m_nExp1 = 0;
- @* W% ]6 y) r5 h, M3 ]6 { S
}
0 f+ E, M: i+ D( V
; l( e# ^0 u" E0 S( c
( (CUser*)this )->AddSetChangeJob( nJob );
* G+ F, F: b5 M" A! C, `; N+ w
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 y; Q8 a7 }9 w4 Q
7 e: N. m G& C. T: e' |
' d1 S& p. \4 ?+ l( _+ ~4 q4 J, p
#if __VER >= 11 // __SYS_PLAYER_DATA
3 T* t( |/ p& O
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 g5 S. R. C: ~* @! t: e2 r
#else // __SYS_PLAYER_DATA
1 ?8 k' @2 F1 h/ C' Q0 ^9 p7 w, H
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
4 ]6 o9 F( V# _
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
/ u% S4 T0 {, K6 j
if( m_idGuild != 0 )
- O& o. w8 W$ P; y( b2 c% A6 Y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) V4 ~2 l$ F, l/ l6 N
#endif // __SYS_PLAYER_DATA
7 ]. r$ e( ~2 I1 x% l% e' Q
SetHitPoint( GetMaxHitPoint() );
+ M- J: i8 O% {$ N6 ?0 I2 c" U9 s
SetManaPoint( GetMaxManaPoint() );
+ T9 p- ~# b" J; ~+ d i
SetFatiguePoint( GetMaxFatiguePoint() );
, v' V, J0 n/ N' A
if( nJob >= 1 && nJob <= 4 )
. ~7 r$ t6 E/ I
{
3 ?& N( M9 v5 p& X' \4 a) X3 L
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ A1 c9 n. `' _0 C$ r
m_nRemainGP = 28;
% [. g' J& ~( ~) c5 w% x
}
, ?5 P, @( {5 }% b. c' _2 [) Y6 k
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# V" V2 Z$ ~; V, y- a; } Q4 j
{
: a( e! Y/ p: y5 f, A
m_nRemainGP = 118;
, S$ p {7 L/ F) k5 r* [
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 {, D& x4 H# d% z5 i
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 j }$ t( A" R R3 D! b. f
}
- L7 U0 P. a! V% W7 {
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# S2 T/ z8 R3 ?3 l! H; X3 o9 \
{
4 D' k& z2 |* O' S9 d/ O
CItemElem itemelem;
9 g# i4 B7 A( [& x! |9 r
itemelem.m_nItemNum = 1;
. c5 o! ]2 p9 _: v
itemelem.m_bCharged = TRUE;
) e& L' L4 E i
BYTE nID;
, ?- z# c+ W3 h- i# g
7 N5 a& k6 M* W$ g
if( nJob == JOB_MENTALIST_HERO )
4 Y) v" ^3 E/ y: h! b+ ]; j
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( c# m7 G* Z9 o) s. i+ K; Y# q
if( nJob == JOB_FORCEMASTER_HERO )
3 P4 t ^- ~+ F! _4 H* b
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
' x4 z3 R( s6 p! L
6 J1 W7 A+ O- w8 M G2 f; ~8 R
( ( CUser*)this)->CreateItem( &itemelem, &nID );
) a$ \ \2 ?( I) v
}
* M4 \! ^7 L% [% u
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* K, | o. h# t7 U: v1 N
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) V6 f, U$ B3 f5 i- L
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) s% R9 u3 }0 k9 ~3 i- @- G
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
9 S Y5 R! d2 |. c# M: i
( (CUser*)this )->AddTaskBar();*/
! O: f1 F7 M. I0 A' x5 B+ f) U
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 u r, h$ P* J& ~+ P: Q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( h7 Q9 ^/ n0 |6 R1 R& D$ t
((CUser*)this)->CheckHonorStat();
! B3 }$ n; j9 d, k& y0 l( a
((CUser*)this)->AddHonorListAck();
: n' _8 N! L( ]3 h
g_UserMng.AddHonorTitleChange( this, m_nHonor);
W$ X; q( t% q1 z, s) M
#endif // __HONORABLE_TITLE // ′Tà?
* A6 X: e( _# l4 k
}
7 j( x! k5 {+ `' f. [0 U9 Q! U
#endif // __WORLDSERVER
6 V% W% E% v! J9 U0 r3 q+ B A! h
}
2 X4 U& N" f5 P' ]6 o6 l9 n' C
1 r0 f" N* R8 K" X6 R
然后你进入functextcmd.cpp并添加以下
( C" N& M: d! I; K P5 ^
' i- `+ O, D9 t6 n3 a; o
代码:
s" H* s) b7 j) a2 T% X
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ e6 e$ c7 J! m+ h* _4 |
下面插入
$ U# X7 H7 J8 j, L' p, M
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 \& V; d4 F; E* D" h
8 f& Z0 @8 ]+ L$ R
然后你去
) v/ O: b' @& L3 N& D
7 v! P+ z2 h% S
代码:
: x+ c9 B0 d9 I" a7 ?7 P, A
代码
5 U# k& B* r# }0 m2 u# I
BOOL TextCmd_ClearPropose( CScanner & s )
( p0 V3 h/ O; I/ v
{
" L5 {9 X2 d1 i6 r6 `$ @- V
#ifdef __WORLDSERVER
% ~) S) f3 F5 ?6 k1 s: r" v
CUser* pUser = (CUser*)s.dwValue;
7 O9 }# `# |4 ]* [. i! d8 F
g_dpDBClient.SendClearPropose();
( j h1 i2 B) o( U7 W
#endif // __WORLDSERVER
" M+ y: L+ ?: {3 p- P$ W# W% T% |' A
return TRUE;
; q: M$ d9 d5 l/ W. L
}
5 H& b$ `2 x3 x' m
下面插入
" L2 H7 L4 j' z1 K6 k
BOOL TextCmd_rebirth( CScanner& scanner )
$ R) o; G1 J) r- b
{
% d" \% U; Z+ \( n* ]
#ifdef __WORLDSERVER
/ \- z( {( l) T! M5 |1 ]
CUser *pUser;
# U4 W) w5 M6 f/ F N
pUser = (CUser*)scanner.dwValue;
5 D' T5 a9 X, t* t& i
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" M' s" _, J/ s: d( K. L
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 K z5 Y* p) _( S0 ?9 }
else
" M4 `+ l W+ H% J, Z) }
pUser->AddText("你还未达到重生条件!");
$ a: o7 E/ g5 N2 {3 h
#endif
2 A1 o/ D' d# ?* z3 N9 G" N" s+ J/ i
return TRUE;
5 b3 W6 Z2 j9 l
}
% m {9 P8 Z. W, G' _
; A' v$ Y* B4 d! Q: g3 S
7 E& t5 Y4 r a$ Y* g6 w- e
: e' @, P7 `' O& ^* `
; b9 v4 Y( h: m1 {
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2