飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; G6 y$ h, d/ k7 L- N; H4 p
- J5 i+ O7 |1 g- \" D# r) z {9 D. l8 C/ ?
Mover.h
% `1 p" m9 c- A3 S+ N3 b' Y& u
代码:
6 [9 J# _" l, L" Y; ^- ]6 J
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
~) k4 @' G+ e3 Q
4 c' j, h( U- s* w/ i
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 P5 h/ n; Z; k- ^
" [' [8 ~5 m3 v2 H
然后你去mover.cpp添加
0 Q) e& ` ~% a$ X" V
$ M# m! ?( [0 s5 v' S
代码:
7 ?8 `! Y E9 T* m$ B6 j" v( E
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ b0 u* @5 G' E- P- y: x
{
( a4 |' X5 `' s. W( V+ A* Z
#ifdef __WORLDSERVER
. j& s" U m+ J5 J1 }( K7 D
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 {3 u( L1 ]4 j* M. A; U8 f
MoverProp* pProp = GetProp();
% L7 \$ i6 _/ |3 S
if( pProp )
$ w* c' } N3 D6 z1 S4 f# J
{
9 ^8 F, ]+ W1 u
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
& \1 B% q! j5 U+ v p$ \+ T# \
{
& \" b8 a* X6 R$ i
AddChangeJob( nJob );
& m7 z) p: p+ n4 {/ a
}else{
) \; c% r' d8 E/ Y% L S
return;
. r, s$ Z8 K+ ]+ @
}
2 K2 b& Z# Y8 v$ G. {
int nPoint = 0;
) r+ y' X; H7 M' D
if( m_nJob == JOB_MERCENARY )
+ @' h8 ]- t# T$ m4 k
nPoint += 40;
& B) o) N9 L0 r8 U/ T0 h" F
else if( m_nJob == JOB_ACROBAT )
5 K+ {) [+ c* e J% `
nPoint += 50;
+ C( }6 I( p. O& v/ }9 Q/ L7 N# c
else if( m_nJob == JOB_ASSIST )
9 N2 k, z& `$ z; b% {
nPoint += 60;
- M8 M7 y7 V3 U8 A9 ?
else if( m_nJob == JOB_MAGICIAN )
0 e6 q5 _/ H! K2 K+ q2 u
nPoint += 90;
( l! K0 t% X. D3 K
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- e% w- Y+ {- e+ W/ m3 y
nPoint += 120;
6 p, d" |6 T" c) k! v
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, ]5 k! |( f+ `
nPoint += 150;
1 Y7 z+ w& F. d" A3 A
else if( m_nJob == JOB_RINGMASTER )
, d |5 G8 X2 u& }
nPoint += 160;
# l) u( S1 ~4 g. b8 L' I( g
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
3 @+ g; J7 C/ D- ]4 F
nPoint += 180;
* U* ^% v6 x6 ^' Z& b C
else if( m_nJob == JOB_ELEMENTOR )
" O" p: X6 D! v
nPoint += 390;
+ @6 p0 B% R) b% W8 i
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. ]+ N% i- z2 p9 y0 y
nPoint += 120;
! }9 V, C. o7 `7 u
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 P' a0 e' p5 y0 ?$ B7 [3 Q
nPoint += 150;
$ P% X. H* a3 z7 Z! i! H$ b* ^
else if( nJob == JOB_FLORIST_HERO )
& v& o% c$ c9 p1 v ^7 o
nPoint += 160;
2 w0 y% d3 D6 `+ a; v" _. R8 m
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 t; F% d1 I& z- j9 i
nPoint += 180;
* |; @8 p- r9 X7 a" ]& y" T+ O
else if( nJob == JOB_ELEMENTORLORD_HERO )
6 ]/ p9 C. O' W' [/ k
nPoint += 390;
! i8 m0 P* \3 P5 r$ P
( _6 r5 F2 x# M U. }$ H
AddSkillPoint( nPoint );
6 H9 Z! u/ E. @8 K# S( l7 Z5 U+ U
m_nLevel = nLevel;
: @# b- t4 L1 _5 V5 G
5 Q- D* k" S9 K! G
SetJobLevel( nLevel, nJob );
, ^# F2 Z: Y+ A( L+ w0 x
m_nDeathLevel = nLevel;
3 b( K2 m6 M! d7 y5 j( d
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) J* P% _; l* Q# x
if(IsMaster())
; b$ {; p+ g% w7 S! u8 I( K( }
{
$ i( y! r" n6 L6 i( V
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 c: q# e. }+ z3 q" _0 R; x E/ |2 x
if( nLevel > 59 && nLevel < 72 )
# Z2 U- d, J: g
dwTmpSkLevel = 1;
5 l, a1 B: D/ C
else if( nLevel > 71 && nLevel < 84 )
3 T1 K: }* ~9 R; T
dwTmpSkLevel = 2;
. M2 c4 {$ Z& b' U4 l- W" M
else if( nLevel > 83 && nLevel < 96 )
9 _" \( V3 ?' \# c6 m2 ~
dwTmpSkLevel = 3;
0 w/ }# g' D) s9 Q
else if( nLevel > 95 && nLevel < 108 )
: j( p- w! D1 l$ s& I( S
dwTmpSkLevel = 4;
$ \9 S) E5 A- q5 w- _
else if( nLevel > 107 && nLevel < 120 )
# {( [# ~) f) A! ~0 m
dwTmpSkLevel = 5;
/ K9 o: u5 I( ]
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ E4 g( |# K1 H4 Z0 l% J' v4 F
{
1 B" U3 y/ ]/ n1 h3 E- ]
LPSKILL lpSkill = &(m_aJobSkill
);
% [+ e. i$ v* u3 V2 G
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( X( i9 B( m, P6 M! i6 N
{
, I5 o2 e1 h: V+ r- ~8 W- w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* u/ X- c8 ~ q$ {, B( f
if( pSkillProp == NULL )
" l! O, v( K" q I' g. h
continue;
! V I+ V5 Z2 W4 f6 I5 U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' r. h$ t& S$ ^' D$ q/ o+ i
continue;
& {' q% T& S0 |/ D" w# b
lpSkill->dwLevel = dwTmpSkLevel;
8 I9 a7 d7 z$ E. |
}
2 K1 D& u, N# \: v$ r3 D9 [" P
}
4 q) y7 y' @1 J! M3 Y$ [" k7 Y
}
# b4 S3 b8 h# f' t9 G2 O: z
else if(IsHero())
; Z g( e$ k% }) v$ O6 M2 u
{
! {- \/ B% f* u7 \! _; i
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 \# {7 @9 L! n& p: G
{
& o0 J8 D& l! J, W
LPSKILL lpSkill = &(m_aJobSkill
);
; s; K0 M0 O0 x3 q7 o5 s& {! _4 ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. \ f2 V& M9 P, W
{
2 V+ U% }5 f7 g' ^; J, M0 H I) M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' x9 F6 [- a% f# G; w
if( pSkillProp == NULL )
9 I& S7 M$ ?; [& u
continue;
1 |$ W' E& }, i. J, I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 d, ?, ^8 V u6 U. ]6 J. X5 [( k
continue;
$ B. D! }# L a8 t
lpSkill->dwLevel = 5;
! D: I% m6 H! `% U$ b
}
y/ [$ o8 y. Y+ D# U
}
X1 Y. r. `( e4 C: X3 R4 g0 T
}
6 L) s( O2 c Y: X- C) n+ t0 |/ ~
else if(IsLegendHero())
1 w; m: A n6 R M
{
' q6 z) z: m7 y8 @1 N/ l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; b* v8 |: {: o& e
{
, K0 W* c. i' {2 ?
LPSKILL lpSkill = &(m_aJobSkill
);
- i @8 j8 _; G4 [3 e6 ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* G/ d J% `; b3 {- i( f- D2 ~
{
7 u& O* A3 s' b1 R. g, u8 O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, l* v# ]4 |' D* z- K' W
if( pSkillProp == NULL )
/ P! {4 k+ f! h6 i/ [
continue;
" A* f# Q/ {, }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. w' K! Y, ~6 K9 M
continue;
6 d7 Y$ r& U U% T0 @
lpSkill->dwLevel = 5;
5 M# p% t! v5 V2 I( z
}
" q, R6 C, G! w% N
}
) X0 Z3 G* `! u- T! n7 [2 T H
}
" G6 x. Y4 T/ n$ ]9 ]) {7 A; R
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- Q; s1 ^! o+ w9 j8 ]
if( bGamma )
! x c) p7 V/ n: ~7 c' _" x
{
" y* M, M* A0 M4 d. k( q
m_nExp1 = 0;
7 {$ c" s" n" P& ?* l. e3 L
}
) `+ V# u2 S7 s5 B. _! X4 V
- p" @) p$ W# v, O: {* C1 \
( (CUser*)this )->AddSetChangeJob( nJob );
; F0 W; ^: B8 e d$ R6 }: \0 Y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. Q. u4 ^3 o/ S; V( g' A+ c
% e. X7 `" V) s& w& |2 A" R
' }# E4 b( L1 z- l- W" }4 h ^+ S
#if __VER >= 11 // __SYS_PLAYER_DATA
! C) j* m! A6 K7 d8 {' h
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- B. P. c8 Z$ u+ U$ r* o
#else // __SYS_PLAYER_DATA
% v3 o! Q$ t# m, W! n/ [' d
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% S) O0 j$ {9 @' T N# O
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 N1 A# p# |" c3 m( x2 ]
if( m_idGuild != 0 )
1 N! q; m% a2 F
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( z' L3 G7 M/ `+ i5 N& i9 p T
#endif // __SYS_PLAYER_DATA
; K2 l1 z, }) i% h5 b8 y6 l
SetHitPoint( GetMaxHitPoint() );
0 R6 y4 A& H8 s b8 i
SetManaPoint( GetMaxManaPoint() );
) l3 b2 E3 |) u1 B
SetFatiguePoint( GetMaxFatiguePoint() );
: ^ ?; I0 w3 h& z6 X0 q
if( nJob >= 1 && nJob <= 4 )
0 T" O* m) Z I4 k. P
{
3 P! r8 [2 `. n7 F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! K& G' n+ O( r) F$ ]7 }
m_nRemainGP = 28;
$ N9 c% x4 L) C6 O( F! N4 B
}
* r# G6 J% \$ r4 ]$ s# S, d8 s, E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- B# [1 `0 E4 B m' o( h8 w
{
* V1 D$ E. j1 ?1 s$ `9 P. ?
m_nRemainGP = 118;
9 f) C9 O& @; p- d# [+ b+ r+ J
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" K8 } [- v8 c" ~ z: H+ D& t
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 D/ i4 F. E* e; [
}
% k& _3 S7 e4 W, H2 t4 T4 D$ a
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 L. `6 p3 k3 N$ a2 w
{
' V8 Y3 N( | V
CItemElem itemelem;
" r4 B' n, P) P9 T
itemelem.m_nItemNum = 1;
8 {3 z6 p3 Z8 _0 ]. X2 z: R
itemelem.m_bCharged = TRUE;
7 k2 B+ Y7 O8 f3 G
BYTE nID;
- N. M% p6 ~- _* G
! g: _/ u% |: o# X+ e* W
if( nJob == JOB_MENTALIST_HERO )
0 ~0 K5 d* Z) K& Z
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 {7 u% g5 V7 u: |4 `
if( nJob == JOB_FORCEMASTER_HERO )
l, E0 O" T5 a; @
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 E+ `& H; ~, `' ]4 }( G$ n
M! i. A2 u9 o3 z; l0 o
( ( CUser*)this)->CreateItem( &itemelem, &nID );
4 K" h9 A' B7 T4 A) z" q6 ^
}
- ^" D9 D' v" ?9 ]+ A
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ Q8 ?" Y+ r2 d" n, I; n% S
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- h" `% D' U6 _' y0 r
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" \3 N9 {# n' q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% ^* @8 d$ K& g2 V
( (CUser*)this )->AddTaskBar();*/
& _4 V7 z, S- h r$ X1 w" M
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ `1 b. B! x; M
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* C& v. c& Z6 F! H: Y
((CUser*)this)->CheckHonorStat();
3 u, I6 g/ k6 _8 J
((CUser*)this)->AddHonorListAck();
1 {. E9 d) ~9 ?
g_UserMng.AddHonorTitleChange( this, m_nHonor);
7 K! v* _, ?+ J+ Y
#endif // __HONORABLE_TITLE // ′Tà?
3 ^+ M8 ]7 O& p4 o
}
" I" U! S5 {; G- b$ s" ?1 F
#endif // __WORLDSERVER
! l# `1 H$ t! }
}
; i1 F- l; ^: ?# e# A
) T, c5 `6 |5 r. N% Z0 T' G
然后你进入functextcmd.cpp并添加以下
+ g! l; m% |3 d) Q* Y
" M. f# _- s, F1 B" A# g9 C
代码:
2 K7 P% e0 o: V) N
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 R ^4 P5 U% o
下面插入
8 j# o! k% A% {+ k" [, \: M/ j/ `) W
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 Q+ _6 A3 ?# n @, }5 Q
6 U1 Y a6 f- y
然后你去
1 n' `* k% |7 h& P7 W: @9 q
9 d! ~4 W7 i2 G& D/ I9 [# D% w
代码:
5 G$ Y- \" }+ w9 @- J& r1 b, s
代码
( A2 U+ x( Z& J y* q
BOOL TextCmd_ClearPropose( CScanner & s )
8 y8 y4 w& w0 H8 `0 n9 k: `) ] s
{
. h$ s5 D+ L5 E, q
#ifdef __WORLDSERVER
2 A O6 x7 a* M* e1 _* R. }
CUser* pUser = (CUser*)s.dwValue;
9 L- ]; a' z; X, R Q2 {* N
g_dpDBClient.SendClearPropose();
$ T4 j& i0 N& X0 Y9 o% c
#endif // __WORLDSERVER
+ k. J6 U$ J4 U4 L
return TRUE;
. r& C, g' c; X5 o0 F/ W
}
4 X6 h- w7 g Q8 T3 j
下面插入
& b! g+ L. [, H4 L
BOOL TextCmd_rebirth( CScanner& scanner )
8 \! u4 |/ u: z: ]' k5 c
{
% O0 G' y* J# F% l, ^
#ifdef __WORLDSERVER
9 n4 u% H) q6 ~* E
CUser *pUser;
; Y. m5 \3 @0 m A5 k
pUser = (CUser*)scanner.dwValue;
1 }5 P9 {1 I# `5 _+ ^
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 c) [4 a% b4 t. O9 r/ s
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 |2 e j& H* R2 v
else
4 v+ o" _0 {1 D: o$ Y# ]' V- \
pUser->AddText("你还未达到重生条件!");
% \4 U" P' D- L7 E7 S8 Y3 c
#endif
5 K3 V3 A3 u. V, D3 j& ~7 G) q
return TRUE;
- s# ]: Z$ p% h; }% r0 |3 ~
}
. i; g& N# F0 J& a/ |
0 N8 o3 C; @6 ^1 l% F: M6 a
8 \6 v- S5 u' c1 l* W
$ E: E; S/ P9 P: q/ z2 |, }3 @
5 n$ W5 g; t+ Z
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2