飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
d$ F! ]6 e+ t T S# J' r( n: A/ }: z
& Q% f& U% S- K, x0 ^
Mover.h
4 J, U6 K" v( V' H5 ?, D8 }# I
代码:
& B1 j$ q8 B" A3 e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. g* D& l3 G! }( C# A% H$ S# M& I3 F2 p
j* m" H/ b8 D* H
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; m( z: l3 z' n3 q; P
' P0 Y: y4 R2 q
然后你去mover.cpp添加
# c6 Z4 n6 J0 G9 x, j
0 z G* _0 c8 |7 Z/ D# |8 N4 p; U
代码:
8 K+ w) F L* B4 b& u. n v
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: v! ~6 C6 i( L+ x r4 @+ o* d0 Q
{
# E; @7 f" x# n+ A2 W
#ifdef __WORLDSERVER
% A, R8 L5 M2 ?- _' L ~' U
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# A- o0 ~5 F. ` _, q' k
MoverProp* pProp = GetProp();
; ?. t0 o$ ^' `1 E' ^1 p/ x8 _/ O
if( pProp )
& y, c0 l* l1 j' i2 |. F S
{
5 b* t* _+ d) J v
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 a7 u6 q! d" _" m
{
! s1 e! F( z3 S- k0 I
AddChangeJob( nJob );
2 u5 o$ j+ V: X2 f2 s
}else{
- C! ~# D$ Q3 p6 @+ R3 r
return;
- o; a! z7 o- G6 w% G9 O
}
% q% K0 V5 ]/ i* x& _9 J
int nPoint = 0;
. Q- {: H ]' [4 g P
if( m_nJob == JOB_MERCENARY )
+ I4 x3 r8 ?7 Y3 `! _/ U
nPoint += 40;
( r5 o* Y: C' Y" M( w
else if( m_nJob == JOB_ACROBAT )
) ~% ^& b# u/ i2 B
nPoint += 50;
/ d, F. C, i8 C# }8 B$ v
else if( m_nJob == JOB_ASSIST )
$ q% Q; o9 [* s: Q5 l3 \( b% |
nPoint += 60;
6 \0 ^- ~, Q4 u# Q$ z5 L/ U
else if( m_nJob == JOB_MAGICIAN )
! {# S4 D6 V0 c5 N
nPoint += 90;
0 E V! m$ s& V' @. J( w
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 I8 r) {+ r9 [' r$ x
nPoint += 120;
# C0 c9 A) F$ W3 c E4 e$ t
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
2 h- c0 c0 C) p5 U% C
nPoint += 150;
4 G2 q$ Z& [- s9 @) F2 B& g
else if( m_nJob == JOB_RINGMASTER )
7 T; V! L" t: H% G+ D' K# m+ z* y$ w
nPoint += 160;
) H! Y6 q/ R2 K
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' N; \6 | m/ K2 {) E7 c/ e" h
nPoint += 180;
% Q9 ]$ r7 h- M" R. J: W' e% |) {
else if( m_nJob == JOB_ELEMENTOR )
6 E( E: C, c2 z: y9 p3 g. r+ |& }
nPoint += 390;
- R3 F$ q O% o" Q
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ R7 |+ d, ~# [
nPoint += 120;
+ x! E; n/ I3 r$ z3 p
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
3 T# P/ {+ E* i+ v2 X; E3 r
nPoint += 150;
0 G: g2 @+ H% c1 {& D+ E- k- o, S
else if( nJob == JOB_FLORIST_HERO )
& M; O5 t/ ?: P* T% r
nPoint += 160;
* C" F3 O1 E P9 U) V; j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, V2 A) b) }7 i* ~
nPoint += 180;
1 M" l: t- r' w `! b9 k
else if( nJob == JOB_ELEMENTORLORD_HERO )
7 n$ ~+ `& z2 L3 B8 H
nPoint += 390;
' s. J7 ~1 ~' f& X. e
; I" C* A8 l! q
AddSkillPoint( nPoint );
; z3 x2 p5 z' }. a* [! F0 Y
m_nLevel = nLevel;
+ m4 N& w) V+ G( C% c, O
4 N& J% j5 h7 E6 D" `8 N
SetJobLevel( nLevel, nJob );
2 j6 T4 x$ o* w7 [$ i* k! T
m_nDeathLevel = nLevel;
/ T5 \5 \8 A6 w% @
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) @: Y. w9 b8 i ^5 J) N
if(IsMaster())
# k; `% w0 h& P9 K6 e3 T9 d- K
{
9 I9 j+ o! S! K |/ F% y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
' K8 C1 k% m5 ?7 w4 v1 y1 w$ I
if( nLevel > 59 && nLevel < 72 )
3 k+ }: P8 Z. G2 t6 ^
dwTmpSkLevel = 1;
1 T5 Y& d% k& Y6 K: ?4 |
else if( nLevel > 71 && nLevel < 84 )
6 W: ]! t: x" t* l: H! F7 c
dwTmpSkLevel = 2;
2 m- p! B+ M1 T/ ~" I0 ]& g
else if( nLevel > 83 && nLevel < 96 )
# S' `" b* {- M; r# y" z+ c
dwTmpSkLevel = 3;
& O; I- l- a$ ?: K, U" z
else if( nLevel > 95 && nLevel < 108 )
2 k+ s0 C# o1 Q
dwTmpSkLevel = 4;
; N- o, `0 `' Y, v3 j
else if( nLevel > 107 && nLevel < 120 )
% n" G! S) P8 @* n8 u' p [) j
dwTmpSkLevel = 5;
) ` f+ g' a2 B% R$ ?' k
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ v6 s+ v+ a h* ~ Z2 j) @; }1 ~
{
5 {% L9 Y. `: o/ {
LPSKILL lpSkill = &(m_aJobSkill
);
- V6 U. N0 n6 C4 n) g. n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 G v: y) ?) `2 J* Q9 t) W: }1 O- H
{
3 l6 c$ S& h% ~. b) l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! m2 T* g" ] u# z
if( pSkillProp == NULL )
; S$ i8 ~" g4 H. S8 |- g3 A# p
continue;
3 Y6 }* ^! c3 m6 \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 t' U9 Y) A! x4 o
continue;
+ k$ \3 r: |2 d7 A d9 A! ^
lpSkill->dwLevel = dwTmpSkLevel;
% W2 r, g* o( q& o# o9 R
}
F, R2 Z8 |# k# T6 m8 v' x
}
. W+ T5 n* q3 V9 k+ S2 T2 {- |0 o
}
6 Y( \& v2 L$ H- B4 m
else if(IsHero())
) ~7 Q: S, _" B1 G
{
1 O1 ` W, }+ u5 h( E% K
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 s+ J% l; D/ o/ v( f3 C9 {
{
: _9 N: @8 ? a% n
LPSKILL lpSkill = &(m_aJobSkill
);
1 P9 s! m* a6 w6 _! C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: s4 F+ T+ Y+ [+ s" m
{
9 d! _ ?2 a7 @8 }( _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* u: b& h5 D) H0 ^ Y7 A* ^
if( pSkillProp == NULL )
8 V$ k. z+ `' u
continue;
( S. B5 u* H' b# u3 U6 F* M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: d! u+ v, v1 G" c
continue;
3 a# L( g3 e1 o
lpSkill->dwLevel = 5;
4 C5 O( k( }( x
}
; W I( ^% H" U$ p
}
, \) N6 N5 M" f7 W8 N
}
) s/ S* e$ @3 H# x$ r% D+ }
else if(IsLegendHero())
" n+ I. w3 C( W$ \- C9 I9 o, I- n
{
- v' A. }/ i# c; k$ D5 c+ V: H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ `" U3 r3 e) i# } T
{
' n: d! Z$ W! L( z; Y
LPSKILL lpSkill = &(m_aJobSkill
);
9 q! r4 p; n6 b$ R' r5 d* X( \' v
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 `3 T- J& j, H) G
{
+ p, P6 _( S' I% Q: T" {+ |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
G* O4 m# E* d6 U# p5 Q1 j6 O
if( pSkillProp == NULL )
: G5 w) O: M; A( z- z! \
continue;
; u! p1 J7 u. K: c7 a* m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ L3 X; y) R+ O2 m. _
continue;
# w( E& W& w* a9 `
lpSkill->dwLevel = 5;
5 o9 W) B' T; o' ^, Q
}
/ I# T- W3 H1 U
}
% L+ G6 E5 J7 G3 i _
}
/ d1 X4 }5 D' }" _
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" u2 E9 A2 p+ I ~9 U& H
if( bGamma )
* x- I2 z% n' s, s( L/ p6 G4 F
{
' z; }' Q6 F; H2 R8 v8 r
m_nExp1 = 0;
6 J }) H1 b9 r' x5 r+ Q
}
, e* F8 ^; e6 B4 Z. r6 F, c$ g; r0 r
8 [ ^' L" d: Q# I. H# Z
( (CUser*)this )->AddSetChangeJob( nJob );
/ I) v7 x; y* f
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
% Z' B; d7 q- h1 F0 m5 J
8 c5 t- C+ |- U7 v: h+ \9 v
/ }( z |+ Y# l8 M
#if __VER >= 11 // __SYS_PLAYER_DATA
+ \: _# i4 K, I. [$ T2 I
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ N" A; O1 t& O, t: P; \: Y8 y
#else // __SYS_PLAYER_DATA
3 N- N8 o7 r0 w; B1 A
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& ]4 V4 g4 \( h% ?2 X
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ d2 l7 a/ h1 ~
if( m_idGuild != 0 )
8 m \- p9 X( T2 W
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
+ A( J0 ?1 c$ [, B1 }) a
#endif // __SYS_PLAYER_DATA
4 \5 r' _; L, n: X
SetHitPoint( GetMaxHitPoint() );
7 D' f2 b6 O: C
SetManaPoint( GetMaxManaPoint() );
) U h3 k6 [1 V* Z6 _
SetFatiguePoint( GetMaxFatiguePoint() );
. i/ l5 ?9 @3 l0 C0 ~6 W/ ?
if( nJob >= 1 && nJob <= 4 )
) l$ N7 K- ?2 p. u
{
A. z$ e+ v8 F3 ?
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 ` Y0 l% ~7 ~; X. n o5 K5 k3 I
m_nRemainGP = 28;
1 v% |9 X5 v# W# I4 y& u
}
+ V# K7 i4 c3 d5 L1 T4 v
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 R- i) b! @2 H( v4 g
{
9 L; F% j- E3 \1 O
m_nRemainGP = 118;
6 |& R' k& o4 X; |
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; J7 B, |0 x7 K$ @! l
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 m6 Y% K* m% p/ |0 N( y
}
% ^) X; v2 n7 |6 f ?
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 @. }5 N: ^9 C8 x4 D
{
]9 x" T6 `+ _- l e3 p
CItemElem itemelem;
5 s! K! k: I: I6 Y% N
itemelem.m_nItemNum = 1;
* S; [7 u4 o% F- i+ ^8 z- V9 {
itemelem.m_bCharged = TRUE;
' X! x; \9 I' E
BYTE nID;
/ G, F* T; F5 h1 S5 ]4 E; d& K
1 Y7 `$ {- v4 B
if( nJob == JOB_MENTALIST_HERO )
4 Q& X; o W- \2 \1 D# o5 H1 s
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
7 F6 D, S" @. y: `5 p
if( nJob == JOB_FORCEMASTER_HERO )
; Z+ M. T8 O: F% V5 j) M
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
" t7 [- V/ z3 h
' y# u4 w r8 ^, I8 g* {
( ( CUser*)this)->CreateItem( &itemelem, &nID );
: M3 g, @& c+ e8 x
}
# v1 ?& f9 E* v# I1 W% z0 k
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; Z. f' o4 g+ j9 W3 ~8 E
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 n0 G) h* o9 B k7 l- \9 X# f
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. r$ G) o2 r8 |: M
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 |- s7 }) |8 ?/ w+ J, k8 A& T6 V
( (CUser*)this )->AddTaskBar();*/
" c% I$ V1 b3 L: R& d. j6 O
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- ?2 _9 Y- ^( _! H* p+ r% X
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' | r# E( u! w* ^. \% C5 f
((CUser*)this)->CheckHonorStat();
5 V; [# G$ h0 V' X
((CUser*)this)->AddHonorListAck();
: u' E R- ]& Q5 A7 X6 W8 }& X# m! J
g_UserMng.AddHonorTitleChange( this, m_nHonor);
- S7 [4 u0 i/ L- d# H4 l3 Z6 a
#endif // __HONORABLE_TITLE // ′Tà?
! r4 i! T4 M! r" B& O
}
" ~6 P x6 u$ S+ v2 H5 d
#endif // __WORLDSERVER
% U i0 H" N: j) r ~
}
* }' g% J. _9 U; O/ P; y4 v
( F3 |( Q* ~/ C# J
然后你进入functextcmd.cpp并添加以下
5 m, R' o' T( f9 k, Y; i/ b4 j
3 n( h8 }7 L A7 Q, ~4 ?2 `. b
代码:
5 a" H2 y6 o" h6 f6 g
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" T6 V6 C$ A8 [8 R
下面插入
' c8 t% B3 i0 l, ]* W: W
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- @, B* O/ Y% u, T' E/ e5 i7 N2 w3 A
) v x9 k1 W9 v7 o
然后你去
( n, d) U( J' {
. a5 F* E y9 |
代码:
" S. n/ q& R& P3 S& F
代码
6 X' V- E2 b! h R: D+ m
BOOL TextCmd_ClearPropose( CScanner & s )
+ b7 E: ~- H' G9 ~: E3 d
{
( i7 \) R# {+ \- P+ x
#ifdef __WORLDSERVER
* A" M2 A' ^ ]# L
CUser* pUser = (CUser*)s.dwValue;
3 r' {, m7 v' d2 L5 l
g_dpDBClient.SendClearPropose();
3 ?0 U- K9 s' _4 z I% l/ D
#endif // __WORLDSERVER
. E" f8 s2 Q- z3 C0 a7 z
return TRUE;
7 k) X. H- f! W8 ~
}
9 [# J1 A9 B8 X8 D! M w* q8 t- u
下面插入
' @. X4 n* O! I( U
BOOL TextCmd_rebirth( CScanner& scanner )
. S$ G4 t* ?/ O3 b
{
1 u8 Z) h* h6 E' k
#ifdef __WORLDSERVER
- f, s# t3 S) w2 s0 B! [
CUser *pUser;
# P! q# x" B$ z6 H5 B
pUser = (CUser*)scanner.dwValue;
' @* s, Y' Z. O) J6 l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ s7 r, e! t: y: s6 Y, H6 G
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 j3 v. A7 }, r/ k. d7 N
else
$ v# P2 W; `: I) Y3 i, c
pUser->AddText("你还未达到重生条件!");
/ s1 F; h: ~/ A" r
#endif
P. g4 t( y$ A4 Q1 ^
return TRUE;
5 c: Z6 c( a+ M5 C% s- ?& b* L8 v
}
) S) ^7 a& ?: F8 \4 E/ F
, F9 b0 P4 g* ~& y0 m) y
2 R+ Y* C6 f7 h. ]. R* `: I! t
5 Y, A' K4 x( d/ Y
# n2 g/ f4 t$ s( e2 ~' l" N( \
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2