飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, X3 P4 Z* u% G8 j" q0 f- Z; {! l
9 S3 [" o+ P! |
Mover.h
0 \: V. x, C, n4 ]; }5 Q& i3 X
代码:
0 ^3 L4 s& ^0 ^- Y2 Q: C
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ X- y, V0 @9 R
( w3 A. R2 U7 l& @: ^
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# f g, K8 o6 M3 q1 w: W
7 n5 s) Z' Z* J6 h: m
然后你去mover.cpp添加
8 t4 O' N# J3 f. ]) G0 E
6 |/ I/ d5 z! D7 h) H# v$ f
代码:
9 I( f) ]* ~0 ~9 o. a' t3 r
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" F" l: o6 i- s1 g1 p
{
U+ E; G- S9 p& {8 B6 k
#ifdef __WORLDSERVER
6 p% D/ P4 ~% g
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; r# Z8 @0 w% G! R, ?
MoverProp* pProp = GetProp();
1 ]6 O( N( u3 t" f
if( pProp )
. h2 f% U; F* n4 G6 z! N8 c
{
' X, }- u+ }* q5 X8 w' z- K& h
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! z5 M& p1 q) \0 l
{
! z& s" I8 C) D& J8 |/ L9 o
AddChangeJob( nJob );
6 I2 G. u( o6 b7 i2 s
}else{
- Q% h; N5 C& u
return;
' _5 y; `% C' q. e/ l( h+ K
}
1 n! J$ k, t- q/ U% ]# f7 W
int nPoint = 0;
. e* `' ^7 E( g' j" O
if( m_nJob == JOB_MERCENARY )
& v6 V2 `4 v. V0 h9 \& Z9 k2 f; H# h) t
nPoint += 40;
" Q# J* h5 s5 q# J- h' e) ]' b- a
else if( m_nJob == JOB_ACROBAT )
$ x8 B6 D, ]# n- }2 @: \& l
nPoint += 50;
% P; J, m0 d6 B8 Y; O( _% o
else if( m_nJob == JOB_ASSIST )
" [! c) B* w$ W0 k; s4 S% L; ~& o
nPoint += 60;
y5 S3 k3 ^5 D# L4 B0 z( Q9 v3 x
else if( m_nJob == JOB_MAGICIAN )
( R/ L# F; h8 J# }+ A+ r+ M
nPoint += 90;
7 R$ L! k: Z; M6 X7 o
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
" b) D1 I* i9 B+ ^6 A. a
nPoint += 120;
6 E3 e; |4 `2 H+ C2 K
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) l/ k1 c5 y p( W- D' y$ C$ H
nPoint += 150;
5 r3 y% y/ O2 d3 h: g- s
else if( m_nJob == JOB_RINGMASTER )
. U, d2 k% S; d R
nPoint += 160;
+ }7 ?- h* Y+ S3 M- {( Q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; g; E# I6 ?7 f v
nPoint += 180;
7 H7 }' d4 |& O2 }
else if( m_nJob == JOB_ELEMENTOR )
3 R9 _, {3 _( }4 h( K
nPoint += 390;
& V" D. i/ G' D; n$ X. C! s/ \# O
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 o0 Z0 p5 f$ }+ c9 c
nPoint += 120;
, e5 B' G/ |$ p! A* ]2 y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 e9 q/ h7 Z3 J9 |1 C/ K. c
nPoint += 150;
" x' d6 R) f3 M6 a
else if( nJob == JOB_FLORIST_HERO )
' U% q( }: w* ^
nPoint += 160;
/ i% b2 B+ @3 [3 I7 s$ C
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. Q( A$ u* O/ ^
nPoint += 180;
4 @# X( h) U' A0 V
else if( nJob == JOB_ELEMENTORLORD_HERO )
O" l" F2 \( w) V1 ~
nPoint += 390;
! M9 P! L4 F( g p/ x
+ \$ H" y4 \# c; [' I8 z) J9 L
AddSkillPoint( nPoint );
& g; H5 D/ O2 ?
m_nLevel = nLevel;
& R8 D6 ^8 t# o: h ^. Y% a( G. V" P
' Z; r r5 G& Z/ f/ E' `# Q
SetJobLevel( nLevel, nJob );
( d! ]+ j( d" R: v( i. L
m_nDeathLevel = nLevel;
7 E2 A9 s' {6 J4 ?, @8 m# Y/ H
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 H3 Z/ ?* K+ d% x
if(IsMaster())
& v5 v" v8 z6 I: r, X
{
7 R; f" V! U" S) e
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# O% t6 j% z4 }% @+ x' I
if( nLevel > 59 && nLevel < 72 )
9 |% P# {. r; Y; t2 J5 G
dwTmpSkLevel = 1;
9 Q/ V j8 c& ~# }( i5 `
else if( nLevel > 71 && nLevel < 84 )
2 W' P) R5 f) c g* C& T" ^
dwTmpSkLevel = 2;
+ _, S( A( `- M+ m
else if( nLevel > 83 && nLevel < 96 )
, m) n. C; M2 P1 y( U" \
dwTmpSkLevel = 3;
: @# E9 x0 Z3 y8 r& f4 l
else if( nLevel > 95 && nLevel < 108 )
1 k0 d) v0 \* p# _
dwTmpSkLevel = 4;
0 W* R2 ~1 h4 a) o1 ?, ^' n3 |- P7 a
else if( nLevel > 107 && nLevel < 120 )
' J# B4 c3 Z: H4 ^1 t* V/ ?2 i
dwTmpSkLevel = 5;
; r5 T; H4 @; b; ]
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ w/ W. o# [2 u6 Q: f6 k
{
- n$ a) a/ A7 `2 V. N2 F7 w
LPSKILL lpSkill = &(m_aJobSkill
);
5 G1 O2 {6 D! ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 d4 I9 @: q" {
{
6 j! j; N0 y2 @( e' C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: o; }1 x0 Y. F) l& K! l
if( pSkillProp == NULL )
& n+ b+ Q5 P; u. U3 t
continue;
, t9 ^( Q1 J8 u6 y+ p* l1 p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 v2 z1 @; h# _* `3 @4 t6 G
continue;
$ l: E+ U( N" s! `* T; H! ~% R3 n) J
lpSkill->dwLevel = dwTmpSkLevel;
- o% X9 @' ] K, y
}
9 g8 V8 q2 W- c
}
5 w" W3 s4 y( Y8 ~* n( w
}
0 ~4 ~( f1 L- a& @
else if(IsHero())
% I; B: C& s1 n* W7 p( A% W
{
0 Z8 R8 p' x7 @, v% D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ y) P4 l% F" T' b" a1 s
{
C* E/ b/ l2 R% \ q$ Z
LPSKILL lpSkill = &(m_aJobSkill
);
( ]9 ~" x; ?# Q3 w$ |2 T$ x* F
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) ^( k% i5 s. ~+ D, a
{
6 ^3 `& @$ Z0 j1 [2 a6 F. d G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% T4 n$ G. G/ e) x
if( pSkillProp == NULL )
( q7 e4 E$ O% E* D
continue;
' v" v0 l' X4 w0 E9 W8 I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 I8 j' S6 T; W$ D5 L5 N4 u3 E7 J
continue;
4 p$ n( J5 w! [# b) o& W! D: V
lpSkill->dwLevel = 5;
" y1 x* T" l! y/ U" b. ]7 h7 d7 ]
}
" I( S5 S: c0 [; K# u/ H
}
3 f% l/ F7 D% |2 U
}
* ~6 G2 p% W8 Y# i1 y
else if(IsLegendHero())
% P( |& B' [9 G6 X/ m
{
( y7 W4 @8 } h9 q3 x* A3 i
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 S3 m3 N0 Z$ {8 e7 o( [
{
3 }. A0 C9 k' g0 U7 P7 H
LPSKILL lpSkill = &(m_aJobSkill
);
6 |1 E* K" A; M8 U) S" E
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( n8 R) k( l! ?8 K% O' L" M4 W; X# Q( x
{
% A8 \8 ^( t9 i9 V, ]) r. n! X$ h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 {, O5 Y, z2 O+ u
if( pSkillProp == NULL )
9 }( D/ f/ m' w1 O f6 I& l
continue;
, T h1 k( S+ z8 @) t ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) @: W# B0 q" Q, J) {
continue;
2 W. B( j% |- P# S$ _
lpSkill->dwLevel = 5;
# \8 o9 ?$ X. A$ J* c2 r6 A8 X- ]
}
/ k* t2 t2 E0 ], J! ^. p
}
: e" p+ ~3 ? P, i1 l# S
}
B$ o6 L5 X8 @
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* x2 q" j, m3 f/ F$ X. L" W, _
if( bGamma )
2 k3 p a& ]" a1 O. s
{
/ ?$ b }0 e5 N% ^! i( b* q4 w
m_nExp1 = 0;
! o8 C5 ?1 C9 R6 r' @& }/ M
}
+ k0 A5 ]1 K( H
; g" h2 Z1 n x
( (CUser*)this )->AddSetChangeJob( nJob );
- w% C' X7 p5 p& z# X( b3 P+ w1 C# c
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, x7 s# z+ w4 J$ p% \/ t, p
, ^3 f$ Y# S' R- j: x( b( N
1 X0 H6 P4 y6 m! J0 f1 h9 D- ^, l
#if __VER >= 11 // __SYS_PLAYER_DATA
* w f6 S: U. l2 `' E
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ a3 x* {; V1 ]3 o
#else // __SYS_PLAYER_DATA
3 v3 J# }# f/ L6 l
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# W v0 K. a! H( ^; l7 g
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 H9 P( ?0 V7 e T
if( m_idGuild != 0 )
$ M. k$ o) ^* b# w
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" k7 z0 B' U9 d' }
#endif // __SYS_PLAYER_DATA
* v0 [2 C/ d) j) H1 j; d% v. [/ Q
SetHitPoint( GetMaxHitPoint() );
) T1 j w ]2 }! X _# Z# g
SetManaPoint( GetMaxManaPoint() );
" z' }7 g; f' |; V J: T
SetFatiguePoint( GetMaxFatiguePoint() );
' _! l3 L. [& ?: C9 q+ ^
if( nJob >= 1 && nJob <= 4 )
$ c2 C, L+ l6 M4 n
{
9 J# M% ~; Z, y. l9 y' C+ ]( ~
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# m2 k- d6 I% d8 I
m_nRemainGP = 28;
& P7 c1 J# j+ p) I1 i
}
0 ~! z9 w; D ? k: D: E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
]( M8 i0 r# \. L& H. ^ l
{
5 P2 d5 R$ [3 G+ S2 q
m_nRemainGP = 118;
$ A( |) [% i: d: u& P- ~- A
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 J: I8 Q: t7 y8 F' Y9 \# i
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ b. S! J4 _, f: ^! K5 N
}
/ O6 M8 N# w) U5 p/ j! m% b
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 W$ b* _1 w: k5 b
{
( K5 e9 B' @) C6 e: i9 U
CItemElem itemelem;
3 U5 d8 t: G& c* N
itemelem.m_nItemNum = 1;
( C# b4 K8 \, S4 }! {& \
itemelem.m_bCharged = TRUE;
+ W2 J2 s. j8 p6 r4 D; ?6 ]" @
BYTE nID;
) K5 E. J. L" c& ]9 U U
1 u( W% I1 P- }3 v: I% x( _
if( nJob == JOB_MENTALIST_HERO )
7 z6 F; H- V/ T' u
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
3 J7 S7 y" h7 k
if( nJob == JOB_FORCEMASTER_HERO )
3 m3 l) C& `8 r0 q3 }; \- I, C
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* m [4 A7 a' a) \
; K1 _4 N) W1 J
( ( CUser*)this)->CreateItem( &itemelem, &nID );
( g4 J$ Z, S3 f
}
" m2 C' p5 h3 J
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
: a2 B, s! s1 v2 [6 F
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
+ w& ?9 s6 r( h, A9 V
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! E1 Y: v+ P- T! C9 u6 \
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- Y8 u/ w: N8 Z" ~, l
( (CUser*)this )->AddTaskBar();*/
: {8 a6 u$ b, `/ o2 W5 R5 P4 z6 ~
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 \; c# @) @, S6 J; ?6 t0 P$ K
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
g' ^- L% l! }
((CUser*)this)->CheckHonorStat();
# ^7 d& G) ?" F0 h; B0 w
((CUser*)this)->AddHonorListAck();
) b- ] i9 Z) I
g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 r N& c7 }: V7 }& W9 X) ?; _
#endif // __HONORABLE_TITLE // ′Tà?
6 Z* I" h7 L. C& y5 y
}
; L7 e. F- b2 C9 ]: _3 `
#endif // __WORLDSERVER
- I0 j. P( g6 R) h! G6 ~
}
4 K( B5 ]' P! b/ _" \
& i7 |. Q& P7 {9 v/ R8 y9 r3 k* s4 m
然后你进入functextcmd.cpp并添加以下
9 F5 }$ P1 W5 z& A! { s( }
* D* W) G/ Q4 D E. d# D# q+ m1 D
代码:
* p. u' K, c$ ?
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
m2 P( }9 U% B6 F3 c- G
下面插入
h0 X2 T. C/ Z* s n
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
& t8 I$ f0 o* J9 m" X& a
: Z( k8 f4 P/ {, _+ N* n6 [# N
然后你去
) w8 ~2 e A; d4 E- W
4 l3 ?3 @! B" G; Y& [ t- t! `7 R
代码:
/ i, Q" N9 g( n2 ?3 Q" J4 s1 X7 Y7 o
代码
$ V8 H- F2 W3 u
BOOL TextCmd_ClearPropose( CScanner & s )
3 M- w: e' a) J$ @" @
{
! ]0 b$ r- k7 C# R% r" I7 V
#ifdef __WORLDSERVER
' B* a& h+ J0 E4 w0 T& W
CUser* pUser = (CUser*)s.dwValue;
( {! d, P4 _- o: |( D, w) M. Q% x1 N( _
g_dpDBClient.SendClearPropose();
. k) t% o- \0 v" h* y
#endif // __WORLDSERVER
K# s. V Z! B& D8 V. \- H' S3 [
return TRUE;
2 q2 a! u: |& D
}
. ?5 h! C( f- Y: _. C+ h: D
下面插入
7 u _; _! M" _0 `! m# `, g9 o% i
BOOL TextCmd_rebirth( CScanner& scanner )
5 Y6 y! n& E) d- Y
{
" @4 |9 I9 W0 K2 [9 V: z' v! O
#ifdef __WORLDSERVER
/ O8 E/ D2 E! V$ Q6 @6 c) h
CUser *pUser;
7 r4 J" A4 ^/ N& O, L
pUser = (CUser*)scanner.dwValue;
% x5 y5 o5 G s( }3 z5 A4 Y# C
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 f D/ w! q8 t/ l* t3 T+ j; }- z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ L; A; L: `4 F" P
else
7 ]$ g8 L8 B+ X! N4 V% r! E& J
pUser->AddText("你还未达到重生条件!");
- l& ^, s' w% }, A% q
#endif
' g# L$ v, x4 Y$ }- d# i
return TRUE;
5 G( H, v- A& {$ b6 X
}
+ g- ?( E) H$ X( k& |/ f' G! t
6 f: M! E- z6 u8 b9 Z
) \0 ?" O7 q$ f6 h; S& p' N" P
# W. J' ^$ E! Q5 d, @
3 ` j- o: T9 D5 L1 s" r3 U) P$ Z
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2