飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, @9 i% ~6 ~% v
: m2 M: W* G* o$ E+ c9 \0 A3 u
Mover.h
* f9 C9 E- ]+ p" s* W+ H
代码:
2 F& L% |2 U" I4 C. O& r
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 h" e8 X3 {* c4 M' ~
" F0 [& a& g$ ^: b. `' g
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! Y! W( R: S w* l5 B7 X, z
" c, D- o5 Z s- A
然后你去mover.cpp添加
" v' ?" W& j& z8 j* ~* d f
3 P/ s; O; G3 n1 ^- K! q
代码:
]) y) N: ^; l) n C5 t' j
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" J. O W. G7 u" S* P r8 Y p
{
5 n" _$ V6 ?8 D& q9 i
#ifdef __WORLDSERVER
$ {4 G. J% n* S) e `6 x
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, Z( r. A! s+ Y: ]$ \+ k
MoverProp* pProp = GetProp();
# t; r# H" [ t6 D R
if( pProp )
% e! ]3 ]3 u2 |: {% y! [3 b
{
7 n0 @" {4 C8 i* ~0 u& N
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 T& Z! K5 T. z @2 g
{
+ m* |5 z- p4 P* Z) s( r0 _
AddChangeJob( nJob );
5 F2 q$ E2 d& X- E. F( g
}else{
! O! r6 Y2 C; @: u
return;
& f; d2 m* V# m- Z
}
( b5 }" R/ W2 x# [2 z
int nPoint = 0;
7 B R* i' f+ G5 v* ^
if( m_nJob == JOB_MERCENARY )
: m6 |; [/ J& N7 E% T- z
nPoint += 40;
% f/ L2 q3 O' I0 c6 U
else if( m_nJob == JOB_ACROBAT )
: s# b3 v! e, X% P
nPoint += 50;
) M1 ~) Z. T% W. M
else if( m_nJob == JOB_ASSIST )
( \* A% r' m5 n; j) A+ N6 E7 q7 K
nPoint += 60;
/ u* C7 N0 f3 |. x/ g8 n
else if( m_nJob == JOB_MAGICIAN )
/ X4 M. j% k3 H x) a& c T
nPoint += 90;
. ]6 W" \' G& @5 ~. P5 x( s' v
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
, E3 l& s# v# S: G
nPoint += 120;
- [; w+ v; {1 u+ o9 \7 ~5 }
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% y/ x) Q" h$ C1 E) f
nPoint += 150;
+ b" ~* e$ b! ]
else if( m_nJob == JOB_RINGMASTER )
) ~" ^1 ]2 _% Z3 u' Q
nPoint += 160;
, g9 w! ]5 c3 I6 I5 a M$ E! C% m
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
! \+ A0 ~0 F0 i" o
nPoint += 180;
8 U# S$ a" H$ G: p8 B
else if( m_nJob == JOB_ELEMENTOR )
! f8 L3 G4 g- h7 V$ o; u
nPoint += 390;
4 D! Y9 e) w1 l/ ~/ b% G
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 i8 B; [4 s+ O" M3 B( v0 R' M0 m
nPoint += 120;
# |3 c9 A+ Z! _: ^9 }
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; @3 k5 V& W: b I* q7 R. z% u6 H
nPoint += 150;
3 j! Q# T: y5 o, ~/ _4 G
else if( nJob == JOB_FLORIST_HERO )
5 t( ?9 m& x- J& M2 [4 E
nPoint += 160;
/ A- R& K8 O: ~7 E8 }7 R% F
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% _( L8 c7 [; C z
nPoint += 180;
2 X: y1 \$ [& U4 y% P9 D+ ]* k8 J
else if( nJob == JOB_ELEMENTORLORD_HERO )
. f3 m0 H( i8 {# c3 G$ ^3 y; N
nPoint += 390;
! F2 R+ |( m; o/ ?1 G2 V
' S2 e0 P: d" i, y, G6 U/ }, C
AddSkillPoint( nPoint );
- z& m6 ~0 N; J% N
m_nLevel = nLevel;
. h; U1 A! w) Q. Q) |
$ t' Z3 O2 |7 x7 G
SetJobLevel( nLevel, nJob );
% Y$ T+ ^% S* ~% N' O6 Z
m_nDeathLevel = nLevel;
# N) b" J: J: E. W+ p$ y0 B9 y/ P" \
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* k, c; Z# h- m5 @$ r3 A! M$ F& D
if(IsMaster())
1 V: _- M+ o7 N
{
/ B1 S) v0 D+ t& ]; }
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 v- u( Z$ y2 g
if( nLevel > 59 && nLevel < 72 )
l- q; I" z! y0 P7 j& G
dwTmpSkLevel = 1;
: r# D. W, ]4 _' K$ X' e
else if( nLevel > 71 && nLevel < 84 )
0 A! \6 d& A, }4 X/ a' L8 R9 j
dwTmpSkLevel = 2;
' _! d4 O4 `- n4 c9 f$ L
else if( nLevel > 83 && nLevel < 96 )
- \3 J; S/ L- N/ E# t6 \; `! u
dwTmpSkLevel = 3;
% ]- Y$ A8 f0 a* `- j
else if( nLevel > 95 && nLevel < 108 )
& k9 Q& m9 E. s+ s* n
dwTmpSkLevel = 4;
! A) V" E5 ^6 g8 L: q3 b
else if( nLevel > 107 && nLevel < 120 )
" p( _8 k; |. w1 a, J
dwTmpSkLevel = 5;
6 b( I7 h) F7 e( ~# q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 P/ g8 w. K3 U5 G8 N* E
{
8 q8 {4 M, B. ^4 I; u9 }" [
LPSKILL lpSkill = &(m_aJobSkill
);
* g8 ?; F; I; A; n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' F; V, J: H# }4 Y e- s4 ?$ h( K6 S6 T/ i
{
1 T3 R- Z; w/ a: m3 |; Z, O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ u- Z: s+ }# f: P+ K' i! D
if( pSkillProp == NULL )
! N1 v- ~2 a+ V8 X% w2 z# z
continue;
; E5 ^" `; j( I; c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( _% G, _& H/ p) I, ~! s. o$ l& F% w
continue;
; Y1 h( l B- ^% G9 C% d2 i) k
lpSkill->dwLevel = dwTmpSkLevel;
# R9 s* m& P, A. @+ F8 s; |
}
- }5 E, q& u3 x) _1 E. Y u, a
}
7 w% |- m8 ]$ D7 g$ H
}
$ ?8 n' i* {7 r( Z! C- L& e! I/ I* H
else if(IsHero())
( f- Q) O. V0 f7 {0 ~9 L
{
, N5 q: D) b5 R% H/ \1 D( J1 k
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 i" F) p3 n0 y2 @: k
{
( G6 D1 ~- {, F) l+ {1 J
LPSKILL lpSkill = &(m_aJobSkill
);
8 E: Q7 I; G- G' }$ f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 y& @7 b0 c5 v+ u
{
5 y) }5 R+ Q/ V. [( P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 n: x1 |2 A, i/ b! r0 [; |
if( pSkillProp == NULL )
4 U1 l1 E3 ?# U4 @
continue;
/ ^1 n5 F" G' f# b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; e( ~- k4 S+ J R% `4 n& U
continue;
2 F8 r4 P0 ?) c5 K$ m" A) R8 c. q/ A
lpSkill->dwLevel = 5;
. g1 T% ?. @* D& K% P
}
4 N) S- i- }5 U* P$ n; O7 }2 s
}
* B) i K# x; a2 z
}
1 s7 ^; ~& s+ |# W8 [1 L9 `
else if(IsLegendHero())
* p1 L& o# o5 x/ Z+ O# p; h
{
$ D0 [# i6 h5 U( T0 d
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" j* k, V3 r) p8 l, F+ b$ R. r
{
! o4 U8 H0 ~$ D8 V- F
LPSKILL lpSkill = &(m_aJobSkill
);
; |7 x5 r, y2 O: }
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 x5 J; P8 ^5 S: d9 r1 u
{
* A: ]7 W" h( l' u1 B1 f1 M* b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' W: Z/ h$ z6 ~2 d
if( pSkillProp == NULL )
& K/ b) R' S& r6 ]
continue;
y# ~9 o: M! c- A- A* \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ L* o* x* g- D5 u
continue;
2 X, o+ m: q9 a; ]7 ]0 f) m
lpSkill->dwLevel = 5;
: b3 r+ B9 S: o* E
}
% l2 R# c& k# ^8 ?9 O
}
) @. Z$ p( V% y% D6 E! c0 H
}
* w+ I- c. P6 G( s, c% M! V
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 X8 G. I" X' E& x4 M! ~
if( bGamma )
6 h+ [& |. H) V
{
+ i% }7 u1 j2 _& S5 ?- o I
m_nExp1 = 0;
8 ^6 c5 \- ] l2 w1 C3 c9 Q: Q4 o0 Q
}
( \* I- i6 d8 V" x \$ r
; G+ u( P6 c% d" V6 `4 e
( (CUser*)this )->AddSetChangeJob( nJob );
- [( q, w! r1 t1 s9 B( k0 {: z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
0 \7 a$ Q! I- c- J2 R7 Y; f- ^, c
2 j" O5 E0 L! t- [! P
4 L3 k8 P2 N7 g& e, O+ V
#if __VER >= 11 // __SYS_PLAYER_DATA
- y8 d( p) T( t" c# |
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. `, C! ], ^: N) w" o; J) H
#else // __SYS_PLAYER_DATA
8 _( N x( ] j+ l9 E
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: Z* d# p. ^: C( ^
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: K+ j0 p1 T4 F7 Z
if( m_idGuild != 0 )
% L u% ]# `, F; ~4 k3 q$ w
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
! _( m3 o* A1 x, D9 a; N: ^
#endif // __SYS_PLAYER_DATA
3 b* e% {4 b! c" p% ], _* [
SetHitPoint( GetMaxHitPoint() );
( x! U4 `* t5 F0 u. P- |. y" [
SetManaPoint( GetMaxManaPoint() );
! Y, u+ V# w. J
SetFatiguePoint( GetMaxFatiguePoint() );
2 w g5 X, c I7 e- L$ J
if( nJob >= 1 && nJob <= 4 )
$ Z. i! o: o2 u' h- g, `
{
8 F- ^2 X5 U: c/ K& x8 X
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. C7 d( T& T0 u7 W: N" X
m_nRemainGP = 28;
# q" V0 h' K) t
}
# p( I' A2 _! e' J) x1 p
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 A. X: T+ p# d5 E. k
{
. G6 @8 g$ k( K1 g2 r" I
m_nRemainGP = 118;
% c5 m" x1 Y1 G0 M
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" |4 m: z) p2 u) P
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* G4 B6 A/ u. w, s, D% A
}
5 F. |' o6 b7 ?
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ ]$ m0 | g4 }5 @4 k1 n
{
. }# Z6 ^0 Y1 |: y1 D3 g( U* Y
CItemElem itemelem;
: Z, l4 H, f& G8 q' B1 ?
itemelem.m_nItemNum = 1;
% L: n9 U$ k5 x- Z$ f% \1 @
itemelem.m_bCharged = TRUE;
. `- z. ~" W4 _& r8 F
BYTE nID;
, P: L8 ]4 k) I3 R' M; T
; Z% n% s0 |0 ^1 _
if( nJob == JOB_MENTALIST_HERO )
' N$ X ^2 M8 Y( b& l: p! p' A- \
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" B" A9 l8 a9 h0 g3 P- E$ Z
if( nJob == JOB_FORCEMASTER_HERO )
9 e) H( [7 n% g6 [+ u
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 L6 m: ^4 t, p3 C0 W& C. d
! u9 n; z7 d/ k; `1 L1 m2 W# F, r
( ( CUser*)this)->CreateItem( &itemelem, &nID );
5 D9 p6 e% Z7 {7 r* h9 W
}
8 t/ C" O% O' D/ ^
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& R4 B/ \8 I. z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. }2 r! i' z4 C- L Q4 m* O7 a
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 f+ t1 q+ T5 e. O; z& l( u' O
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
) c# e( N y& u. U9 f+ q+ |
( (CUser*)this )->AddTaskBar();*/
9 x5 ` }- x$ ]( p. c2 W
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
# Z+ e& `8 W4 G% x6 P" o9 |
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
; h* ]1 @% n) F& m& U& w
((CUser*)this)->CheckHonorStat();
" g) F" z5 S8 z; |* T# K
((CUser*)this)->AddHonorListAck();
0 l- _; E0 ]8 _6 ]- b+ b) k
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 T- H, h k! d c+ U6 b) U
#endif // __HONORABLE_TITLE // ′Tà?
) X: N5 N# s" k, D" V! _
}
% P( @/ |& }* H) A
#endif // __WORLDSERVER
. @7 E2 c U* b
}
% _/ h( K* m' V- L! ]& f
* G. n+ x8 e8 l s$ K! V5 W7 E5 J; v4 m
然后你进入functextcmd.cpp并添加以下
8 \9 T3 [: s. b0 Z o
4 M, C9 n8 ?& H' Y h0 ?: C
代码:
I& Z# o& O- @- ?8 S( a: g0 ?
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( X/ x. u0 {, ?7 v; J' ]
下面插入
9 F7 X# ?$ [& b( R0 i# t7 ]
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. Q8 n! k6 E+ j/ b1 H
M) ]# e0 ^3 @2 }( y2 S6 [1 k
然后你去
" i* t8 e2 Q( n- r
3 X' b, V, G- d& h2 ~! j% ?
代码:
1 p9 f1 A! V) v2 H2 z+ `
代码
/ M/ I+ l3 P; t( x5 d
BOOL TextCmd_ClearPropose( CScanner & s )
/ N1 [* d1 q! u0 K
{
7 y$ ?( U- l$ n4 s
#ifdef __WORLDSERVER
- \7 z; J! v U1 E) j" T, I
CUser* pUser = (CUser*)s.dwValue;
! w: q/ _( a$ ?& T& k: d- x% D
g_dpDBClient.SendClearPropose();
4 r* Q8 J% }" R" k2 z
#endif // __WORLDSERVER
9 B) Z. X; @+ {
return TRUE;
$ L5 o8 q, q# H3 ~3 e
}
- C2 N+ O3 I3 D9 l" F
下面插入
3 M# ]! @& G. b
BOOL TextCmd_rebirth( CScanner& scanner )
: G1 x2 A, P* o1 v: s& A* U
{
& w4 B7 e& X' v I0 `
#ifdef __WORLDSERVER
# o5 c8 m0 H2 X5 M$ W
CUser *pUser;
$ o; U$ C' z2 ?2 L8 g
pUser = (CUser*)scanner.dwValue;
0 Q& ^8 q, J5 X9 E
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
d/ W3 b: O" f) t" F# [' f8 N2 J. d& w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& C: z2 f& g3 |& e9 Y
else
! g8 I3 m0 h: T) L" U
pUser->AddText("你还未达到重生条件!");
$ z+ }' c6 w4 e6 Z
#endif
- a- X8 C2 L# W) u9 Y8 T
return TRUE;
% N4 E9 U, t7 V! h
}
! X7 z0 |" o! c3 A7 y
, v4 _/ A |" q: m% J: e, n
$ }+ C/ R! K5 [1 d
3 j! D9 o: |5 C2 N4 x d
( Y& ~1 d0 \$ y1 S
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2