飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
g- E" O9 t( v. K# }3 g
6 w/ ~' W5 @: c5 m8 N
Mover.h
! q' v3 x4 E6 j/ |7 Z
代码:
6 ^9 g! r S7 N4 C
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
4 J# O8 O+ b y( N, `
`! Q: _' [$ y. {# S. s
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; O) F7 P' f) C$ N+ K8 @ S& C5 ]
6 ^1 @, _0 C; d9 W4 a
然后你去mover.cpp添加
2 `$ L# q h3 R9 ^/ q- N" K* N5 b
: I9 i& G' [. A' ~1 J8 T5 N! A, z
代码:
8 a) ^9 w/ e0 E+ `3 i; ?
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 f" O* i/ @5 Z( Q( Q) Q6 j' I2 m
{
- ], z7 W( H. l6 e1 a( T$ y
#ifdef __WORLDSERVER
$ ~/ j3 G3 p$ U* R; F# W
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- ], D3 l }7 P
MoverProp* pProp = GetProp();
# x w }& z' H1 Z
if( pProp )
/ h3 X9 x. s1 T3 o, W
{
7 h2 v' F3 O+ D4 b P. s1 \0 z
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 |" t/ V, |4 }, K! d4 B, s+ x
{
5 }! l- D$ P' e# I
AddChangeJob( nJob );
; q$ T' N7 I; T# D1 T% g+ z
}else{
4 \% P9 {! D. T! Y( }
return;
6 R# m% @ w1 F
}
R) M' Z& m4 A
int nPoint = 0;
! k2 K4 l: k9 B9 { s, P
if( m_nJob == JOB_MERCENARY )
$ H; m: ?& x, @4 m
nPoint += 40;
( m0 I( _& } N
else if( m_nJob == JOB_ACROBAT )
/ v8 ]6 K5 N0 h/ U# V; k6 |
nPoint += 50;
# H8 l2 T$ L+ M c4 [* {; }
else if( m_nJob == JOB_ASSIST )
! r1 o' b, |" E* s' G2 P
nPoint += 60;
" v5 i5 c7 `# N. K! x
else if( m_nJob == JOB_MAGICIAN )
0 w4 x! s* T+ Q1 U K' C$ T
nPoint += 90;
+ P+ j; B0 s; s8 V$ m* E8 u
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
6 k9 D; f' H9 Q, F) q
nPoint += 120;
$ D% G) N3 j* R; v/ Z* {
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! \0 f- r4 Q2 h; M. v
nPoint += 150;
" ]7 r& D3 y" d& D
else if( m_nJob == JOB_RINGMASTER )
- d% a6 y/ h. B+ m0 j
nPoint += 160;
: c5 D0 R+ `! T- z( i. p' [, D. R
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) H! j+ ^. u% c$ Z; z; _3 ~
nPoint += 180;
- w: ~; x$ ^! }/ w( G
else if( m_nJob == JOB_ELEMENTOR )
, b' m m- R$ R5 U
nPoint += 390;
6 y! X7 e- J/ V) y, G+ f9 A: k" _
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: o/ z4 }+ X9 ~7 P. J( K" w
nPoint += 120;
) i8 n/ V% Q) n, N
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
& r& H5 ?7 C: o# ~4 ^! L" ]! V* W- Q
nPoint += 150;
( A$ o F, q, j: P/ d& \/ S
else if( nJob == JOB_FLORIST_HERO )
, {( ^/ C; v5 H2 Y; j; U
nPoint += 160;
/ S: T- F: v, r! a
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- R+ c2 \) k: O& W2 y
nPoint += 180;
& h! D, S7 y; k* w1 R, U/ g
else if( nJob == JOB_ELEMENTORLORD_HERO )
) R: r: Q$ d/ y7 p4 b
nPoint += 390;
, f8 Q. e& ], F0 I# s2 b
3 S8 m; f- v. b0 O$ t- |5 g
AddSkillPoint( nPoint );
) H X$ f" U* b r& ^3 j
m_nLevel = nLevel;
( T% f+ D. c ]1 ?* Q* r
, u" H/ Z4 Q4 X" S9 S
SetJobLevel( nLevel, nJob );
/ v& v/ S7 K6 Q( o. m W' v+ }/ D
m_nDeathLevel = nLevel;
0 }( ^9 y9 g& S( v- D: l
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, k4 L/ R) L0 a" J, E1 F9 X
if(IsMaster())
! o# X5 v" W2 A
{
3 h) H4 O$ l' x" i
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% l5 S6 b# X5 M
if( nLevel > 59 && nLevel < 72 )
/ A& z+ x8 Q- `1 a
dwTmpSkLevel = 1;
0 r) q6 b5 |3 }4 D+ {
else if( nLevel > 71 && nLevel < 84 )
& c7 a; I9 x6 w7 \3 U
dwTmpSkLevel = 2;
/ Y4 ]) w- {- \
else if( nLevel > 83 && nLevel < 96 )
, Y. t* ~4 U+ U& n
dwTmpSkLevel = 3;
" S5 U5 P0 {# {7 }5 F' e
else if( nLevel > 95 && nLevel < 108 )
+ w J% e/ I5 ~& u" \+ g4 H
dwTmpSkLevel = 4;
/ |6 I2 E7 D6 B! I, Y2 K
else if( nLevel > 107 && nLevel < 120 )
, Q0 T: e; x! l# @$ H9 ?. {8 f+ V
dwTmpSkLevel = 5;
. G3 `3 K" p# N+ M8 r! @9 W
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. ?) b; W3 |# E, q& |
{
' a6 V' R. `# {6 f3 g& t
LPSKILL lpSkill = &(m_aJobSkill
);
) @& X' [ k7 O2 y* {
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 J& m" Y% I" }7 a$ T2 |
{
; R7 V6 y1 o; t2 g: R7 `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 G( E7 b6 Z0 m6 S# g
if( pSkillProp == NULL )
: y- a# H% O2 _3 [% \/ U: O+ k/ V
continue;
9 W; Q/ j7 t, j' O& j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 \( ?8 Q/ i4 G6 S
continue;
' m; H }) h8 S2 |4 H' I6 C9 a7 Z8 X
lpSkill->dwLevel = dwTmpSkLevel;
) @( R5 {& i* q) y4 b
}
# R9 J1 C& D8 x. ]/ s
}
7 E4 b/ Y7 G- T+ C9 f: _
}
. V6 B: H# Z/ b; Q5 Z, }% A
else if(IsHero())
- c1 X, |' Y; L: u/ d
{
z) F; Z( b+ P
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; A5 ]% }! M: u8 ^
{
! m2 `, l6 W$ v1 o# i1 ~
LPSKILL lpSkill = &(m_aJobSkill
);
' {/ S, N N. v$ v
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ v+ [; l& _3 d4 x, q# t
{
) B, [3 P$ a: q! e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% d! V/ l. n; F2 P" z
if( pSkillProp == NULL )
. B2 p9 g. X" Z* i- n% p
continue;
2 ~/ u" b/ K1 b: m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ o5 `& R! H: M) U7 D/ K: l
continue;
7 T \: ` h0 t3 x/ g! V
lpSkill->dwLevel = 5;
2 j7 Q, n/ E4 U+ f& h! F7 [* Z
}
`1 R, F' a" d; I
}
" O. p5 V+ h/ F; s, e% L. B* W8 i
}
9 i4 l$ D: W' R1 |( S
else if(IsLegendHero())
% z/ a( M P; e' ?, B' V/ Y/ T2 E( ]$ G
{
$ z% B4 K$ k8 ~* v# p' V' e
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# I- y& N1 H! S: a, t' p4 |
{
) _# R: ]2 J- b1 r) Y: F
LPSKILL lpSkill = &(m_aJobSkill
);
3 G) i+ x/ W8 |
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 ^- [) q+ L) q' n6 r. t
{
/ W; V% X# k4 B2 \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
_! ]" J% M1 p" |0 k3 u! |: l% p2 ?
if( pSkillProp == NULL )
0 a" L4 Y# d4 |0 H% Q+ G% \- N4 Q
continue;
/ F$ p' b& |# p8 h. q" {5 j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! l9 t" o# V% E- X5 y
continue;
j# M, N( f3 F. \5 n
lpSkill->dwLevel = 5;
" p+ q' U P# Z5 B, s, ]3 u# w
}
0 P2 b: _8 q8 j0 R. q
}
& A- N% D; ?) U2 s4 W k- X
}
% g! M3 ~& ?* q" u
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- P$ ?% V4 n: C9 y
if( bGamma )
- A; q) R) o, K$ r
{
' _) G% G" M( s2 G
m_nExp1 = 0;
, r' n0 h) u/ P, t
}
0 ~8 d A" @$ l1 h
8 p' C7 ?5 {% ~* m" u4 w
( (CUser*)this )->AddSetChangeJob( nJob );
+ I* _- D t7 n0 f
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 v1 a- `% q& I) {
/ L3 P7 N% u9 Z8 Q
4 z% C5 C3 H5 O: i0 I
#if __VER >= 11 // __SYS_PLAYER_DATA
& G( A9 |" R$ f3 U. a
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' G8 r! P3 S$ Q. |, z' h2 f, W
#else // __SYS_PLAYER_DATA
[0 }" J" X& F: h$ [; r( M" E
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: ?; Z8 Q7 N9 j5 s+ Y
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, q0 z- ^& s1 o* z6 V+ F
if( m_idGuild != 0 )
9 u6 k8 \2 s* Z; m2 w
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 s: l+ V6 |( N8 ^' t8 W
#endif // __SYS_PLAYER_DATA
- M+ T7 Z& `0 M/ ]0 q
SetHitPoint( GetMaxHitPoint() );
: y% k7 t$ a$ O- s# `0 l9 @
SetManaPoint( GetMaxManaPoint() );
3 e8 j$ {. ~% A8 f' ]- `$ c/ Y
SetFatiguePoint( GetMaxFatiguePoint() );
! o- v1 c4 A* P
if( nJob >= 1 && nJob <= 4 )
: i9 o9 v3 H$ ?, y( O( D) A
{
- P, Y8 K5 E4 Q8 y/ ?# o* C) E. H
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 @8 y2 m. i# V7 j6 Z) Z" h* a* {! t. d
m_nRemainGP = 28;
& m' c+ |. n$ e% W$ @
}
: g0 d8 ?+ `2 R; {, R' ]. Q: h4 B
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. ]) O: r% b8 r8 C8 z! Z
{
3 v2 Y9 x) E) y9 H) T T8 \" m
m_nRemainGP = 118;
' q" U9 j$ x0 a, P
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 r' w5 M5 j2 I/ p$ \* s
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' v1 ]/ D* X9 V9 @/ I+ q% L H9 j
}
# u& W- ~" b! i, d( ]# V! B9 e4 T* G
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 S& D5 |$ g, Y* w
{
) h! l) Y+ w' ~7 `1 h9 F
CItemElem itemelem;
- o! A! t' ]& x3 c4 M. Q0 }
itemelem.m_nItemNum = 1;
% \% J. G& z# L4 g/ |
itemelem.m_bCharged = TRUE;
1 `' v4 x9 t; L9 _$ z. q
BYTE nID;
. b/ E0 Y, j/ ?9 Z8 \
0 x2 @2 V) _3 `1 S* Q* z* |
if( nJob == JOB_MENTALIST_HERO )
( p2 N/ D# o) W' w. h
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" D) L. M* x* f$ i5 Q" k% f
if( nJob == JOB_FORCEMASTER_HERO )
5 n; o# h7 @# A/ W- V
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. a/ D- h6 y& T! d- H0 U
) H% O4 j9 @" {: g5 Q8 f
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 j' x: ?) W2 c, Y. L) K/ K r
}
; \! P$ m% k3 H
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ F& F2 n' _8 s3 \! c# L3 e2 h
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) J3 }% j; ~# A: @" X
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' W& K1 v6 y$ Z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 O6 k( j5 {( L* M9 ?9 K
( (CUser*)this )->AddTaskBar();*/
' ] A K; f R! A- p1 [
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ U; u0 {- c- V% n0 O, K5 j
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* t3 v" x) |# L6 j: G* d. I4 u% G2 ~
((CUser*)this)->CheckHonorStat();
. ~; N: m6 ` d) ]
((CUser*)this)->AddHonorListAck();
+ h0 h! f7 ?5 M8 p6 ~
g_UserMng.AddHonorTitleChange( this, m_nHonor);
! E( ?3 f9 }- u6 ~; a, H
#endif // __HONORABLE_TITLE // ′Tà?
* C) k, R! `) C/ y0 @/ ]
}
/ `; l% T! _' z
#endif // __WORLDSERVER
# } ], P" A& A0 n, `
}
5 z# ^0 ~0 p3 t) v
& @, h5 f" Z4 [& d0 l
然后你进入functextcmd.cpp并添加以下
' l& B3 i* s) V6 d
4 W9 t) Y! }6 p( h) L2 g" \
代码:
' _% L+ N v2 W, m3 P& m3 {6 D* h
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ r6 I! y* z* `
下面插入
# O$ s/ M# M8 \, Z8 D4 Z2 T" ^5 k2 h
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. v/ { T2 n; s' s$ j/ T5 W* F/ {
/ _* M; y7 c/ `$ }1 A' Y
然后你去
7 L# I( C5 L% J# S- R2 x& i7 @
& ^8 l7 W1 F, j* C
代码:
% A" y) Q0 U& Z" M$ b7 M
代码
. b% {% s+ _7 V4 m, O" B
BOOL TextCmd_ClearPropose( CScanner & s )
4 U6 E2 K6 U5 ^# A" ^
{
$ W/ S9 |; {4 p! T0 O
#ifdef __WORLDSERVER
* {) r2 C; {: R; ]6 W+ o
CUser* pUser = (CUser*)s.dwValue;
) @! l) R0 E6 s+ r2 P2 @; y7 u- b! }& E
g_dpDBClient.SendClearPropose();
! T2 g3 Y" D4 P p% l
#endif // __WORLDSERVER
1 T. d6 l* f# z. v- A" [
return TRUE;
- a( k4 G3 n l/ v& w9 j
}
6 q+ f+ ~- M) t9 c
下面插入
" H, I, O$ D6 F6 T$ e% Q5 J
BOOL TextCmd_rebirth( CScanner& scanner )
+ R, \5 @, r1 H% ~! d
{
# A" Q4 N F+ c' |# i
#ifdef __WORLDSERVER
# \ T8 }9 F; ` @7 o; ~1 K- P
CUser *pUser;
, w8 o# I* {5 i1 F# p* ~' u
pUser = (CUser*)scanner.dwValue;
! c' H! g9 F. \
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 @" R: G2 f9 s& y- e4 K1 Z0 X
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 q& @0 i+ Z3 @0 F# W" H" n$ f: H O
else
# [4 b6 c7 Y$ w: ]/ }' a" W {& F% k& G
pUser->AddText("你还未达到重生条件!");
. l' w% s* y% N6 z% M7 }5 ?
#endif
$ P& c) C0 e+ v" j$ I+ @
return TRUE;
; J7 S% L+ `4 j
}
& i0 b6 h: l3 n! [- f2 W4 h. C! z
2 x: }0 j, J8 [5 a$ i ^
/ A8 T. a- E: o* O" W6 D, g
% R% d1 p M! y1 q7 u6 X
4 m! T q: t" G3 T- G: \
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2