飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; p+ L5 ]& U4 O: q) U; t2 q
' H; l! p4 K3 d& t! d
Mover.h
, G# f5 H8 Z2 f6 A; r L
代码:
: P s" H+ K' R# N4 c/ O1 \
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
3 Y/ i$ ]! o: d' s; r) M
3 e+ m5 H: R0 q; V1 i
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 P* g; E8 f3 Q1 t6 i; Y
& I( a/ b3 s o1 b
然后你去mover.cpp添加
5 j+ l! B* [! H- d& Y( M4 S5 g1 @
; r6 \8 p* {3 }1 N
代码:
) O& T4 Z6 c3 M7 z% o
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 q" z6 K2 T7 f5 |" D6 l
{
" p3 Y; ~, p( t8 y) A
#ifdef __WORLDSERVER
3 D x/ {! `3 w' m0 G, C' j
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
I; ?2 \; K: z4 Q3 d9 I
MoverProp* pProp = GetProp();
0 \: Q& a2 x' L9 h. Y3 b/ o
if( pProp )
$ E: }2 o( K* N
{
& B5 k' U9 @- {" C2 W1 p1 |4 N
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, F: K; z$ c0 s$ Q, |: i
{
. X2 W$ k$ H: ?
AddChangeJob( nJob );
+ S- a3 A6 J, Y. i* u" b2 }1 O
}else{
: C' x' M( I/ j( l7 S
return;
' a* D- }% r7 M* @' |( r
}
- e5 H4 n5 x$ ]& H* F) ]1 ~! `
int nPoint = 0;
?; o1 z3 A ~7 N U+ I& p
if( m_nJob == JOB_MERCENARY )
e: [: {. l/ L% s7 c
nPoint += 40;
$ d" x& m( p. ?, \
else if( m_nJob == JOB_ACROBAT )
% M9 V9 g& e$ s
nPoint += 50;
+ Z i2 N& R! f6 m& C0 q
else if( m_nJob == JOB_ASSIST )
% t: k# n, Z$ B' B0 o/ I3 w
nPoint += 60;
/ X1 B# t- ^; v4 r1 ^( w
else if( m_nJob == JOB_MAGICIAN )
) h5 H8 L6 g$ J6 X& @& M
nPoint += 90;
" N7 Q5 B* J4 e2 F2 O! H
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 [5 Q( f* Z8 i7 O$ Y
nPoint += 120;
) I& i, [) A/ G7 C3 N' p
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) Y6 |2 q3 d' e$ D6 v
nPoint += 150;
; C. }+ R" q* V" Z9 z8 \
else if( m_nJob == JOB_RINGMASTER )
, d7 L6 [, i5 k5 |9 u' n! M* s
nPoint += 160;
5 n4 R# b1 A* |$ x. H" F
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: V+ y9 ?8 N3 U! U) c& E
nPoint += 180;
' Y3 T, N& k: o3 S
else if( m_nJob == JOB_ELEMENTOR )
! S! T3 c+ m2 q+ P( e. Z
nPoint += 390;
) g3 F$ d: u4 N- F( v+ h" G
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 g( L* j6 n) {& j
nPoint += 120;
# J5 q1 g! s' J5 T# B, C1 N
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 w/ R1 |! _& M3 B0 l, `
nPoint += 150;
8 a7 ^& `8 X! r$ d
else if( nJob == JOB_FLORIST_HERO )
. t. D$ A8 i/ u# y
nPoint += 160;
; t& W+ b' W8 U! |5 p
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 I4 Z* ], ?. [1 b$ o* C
nPoint += 180;
+ w5 D `9 a6 A' `7 H
else if( nJob == JOB_ELEMENTORLORD_HERO )
! Z. b, G' O7 x9 r, |' s9 ?* c
nPoint += 390;
3 N* G/ q5 ?+ `$ T, u% v
4 s3 ^" @" |3 ]+ E2 R- l3 K# T
AddSkillPoint( nPoint );
* q& a/ ^1 j# h7 p' D2 j R
m_nLevel = nLevel;
4 _5 v4 C4 V; h) p$ R- S# V9 s
4 R/ {9 e7 i( m
SetJobLevel( nLevel, nJob );
2 g" B" Y& f0 h/ ~2 f- L
m_nDeathLevel = nLevel;
5 {; I' m8 j- Q# q0 r
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* j" R- _% K. N4 n4 @/ B
if(IsMaster())
% |0 {- t. k0 r. @4 S
{
6 f$ R9 p! Z( l" h8 R% V
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. i6 u8 R/ e4 h- S8 V+ ?& g
if( nLevel > 59 && nLevel < 72 )
; P z9 r9 o j7 T% k: Y
dwTmpSkLevel = 1;
( `7 A/ v3 u( X2 H
else if( nLevel > 71 && nLevel < 84 )
2 f# k, |9 M# F9 {8 p7 @2 Y
dwTmpSkLevel = 2;
( T+ d! L" n1 o( Z+ w
else if( nLevel > 83 && nLevel < 96 )
5 K+ N4 q0 f; ?9 \0 W6 N% O8 f
dwTmpSkLevel = 3;
7 A8 b: q5 G# [0 R& C+ i4 r/ ~: X
else if( nLevel > 95 && nLevel < 108 )
) U" C6 B* o' {
dwTmpSkLevel = 4;
6 }9 d" D2 A0 d1 m9 H! u% O, N
else if( nLevel > 107 && nLevel < 120 )
4 b$ H) y& w+ d% J: l4 ]
dwTmpSkLevel = 5;
5 p$ V6 x6 o$ o% |5 \# S
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 H) S8 B( T$ E4 c( O6 o
{
7 T3 `& x* i& y
LPSKILL lpSkill = &(m_aJobSkill
);
( i5 A! V7 }- U0 n% u8 W- s; U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: F" N7 }/ U4 U2 g7 H% o* Z
{
# w) p; Y& d) \+ C# r& C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- H$ R7 L7 j* k/ f6 K
if( pSkillProp == NULL )
8 A$ I$ o$ r, y1 l; s* k- R+ z
continue;
! K/ {. f( @0 Z! {% F3 v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& ~7 I' N6 m, k& Z
continue;
) g* z0 w, _) y4 n3 W: o9 K+ m; w# R; P
lpSkill->dwLevel = dwTmpSkLevel;
/ U5 H$ n% S) H9 p2 g, k3 K
}
; \& {4 b% O& O$ n; \' V2 i
}
- \/ P9 I/ x; O
}
# m: a/ S c/ r7 o
else if(IsHero())
0 d- B9 r& t# W: U, p3 P
{
: B, d4 b$ ?+ y9 e! R! y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 B5 p1 _& t y' ^8 R
{
# [' d. G# J7 S# X3 Y5 k/ q# _
LPSKILL lpSkill = &(m_aJobSkill
);
- G$ n, I# K t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 ` W- L0 L# F- a% e% r l
{
' Y: Q6 u! t2 J& j7 u1 W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 _& q3 B2 C( i
if( pSkillProp == NULL )
y t; K) ]$ {+ M
continue;
4 |2 ~* u" o0 ~) m* c- k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 @+ F& J! z# o
continue;
% \% O1 @, h, w E$ ? @
lpSkill->dwLevel = 5;
0 M( J3 N$ s- U7 q. U
}
0 _1 s( E7 `. X& y- n
}
! c3 P/ s! y# h( ^
}
9 v6 R {! i; f" U2 Z
else if(IsLegendHero())
# K0 p' o- L( l# d7 r
{
! V$ ]. M) d% p5 b$ v' A
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 U/ H1 R5 Q0 C& _* B& D5 C% [& A
{
5 p) P- C9 G0 o' ]$ D: V* n( S
LPSKILL lpSkill = &(m_aJobSkill
);
) \0 N8 D" o8 X& n% \
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! v8 k7 f* m% ?2 W* _- y! ~
{
! _2 x H* W$ P6 o/ N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 ~6 K/ {0 c K3 U$ K. [( I& L
if( pSkillProp == NULL )
5 W5 D( }* a! e4 o
continue;
/ g* M: m' Q5 t& g3 a% k G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, e# t" ~/ s3 B' M, ]) w
continue;
3 Y' c8 a6 A7 ~% r6 C+ u! i& k6 x
lpSkill->dwLevel = 5;
! S# O" h6 z3 A9 q
}
. @& d: Q2 r5 |( @5 T
}
1 s" v3 U3 [' l' u! z
}
( K$ D6 o* f8 b+ F$ d
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# p6 V! G, g/ w g) s
if( bGamma )
- H) m: O9 `7 e/ A3 v. \2 h) B! @
{
# b) D( d4 T& e3 d3 n( ]+ {
m_nExp1 = 0;
. `5 ~# ]) C3 B: b+ k
}
6 @" M; E0 H& F+ H2 H
3 Z* F5 O, x2 O
( (CUser*)this )->AddSetChangeJob( nJob );
; W6 U$ c! K% B2 G
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 C0 Z5 h) y& Z( l, x! e
0 p0 H5 d! H1 c6 B& M, ~' a* N
* t& F `% U' D1 X n9 J" {1 S
#if __VER >= 11 // __SYS_PLAYER_DATA
( s* R& i S" X |" _! K# A
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! F" S- q1 e7 }+ W
#else // __SYS_PLAYER_DATA
- v5 l( v; C% [2 U' P
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 m1 B1 y8 t6 W. c3 V
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 U+ @( n- a1 p& L9 o/ _) b
if( m_idGuild != 0 )
: O% i# ?( J! t8 R- x
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
' |7 L& K( D) _" j: s
#endif // __SYS_PLAYER_DATA
# w9 Z1 h+ A0 n% X2 _6 t X
SetHitPoint( GetMaxHitPoint() );
+ C. X" {4 x/ V7 \/ g/ z, H, s
SetManaPoint( GetMaxManaPoint() );
: \- G [4 \" Q2 Y' g/ u. t
SetFatiguePoint( GetMaxFatiguePoint() );
t9 X y+ r; T7 `4 R; V. y
if( nJob >= 1 && nJob <= 4 )
( e/ E' x( U$ v) x% ^% i
{
! n: o3 I/ u/ e- T# F7 F* J
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 R1 y. r$ o# b# U) ~* t9 C1 ?
m_nRemainGP = 28;
, v \6 Y' D" w4 V/ Y! o( s e. r; F
}
: G6 w% E# p; z# d4 H1 ?
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 J% k# u$ Z% e: U
{
! ]$ h& V4 m' x/ b
m_nRemainGP = 118;
- J7 X$ ]% f- B) D2 a( ~! G. s! n
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& x( w6 ?8 Q! e; f3 e
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, n7 i* G: T. [, T
}
/ S: {5 ?% k; r9 |4 \! @5 k; W
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. C/ C/ ]$ z4 u9 |" ?
{
+ C9 y8 B/ D6 H
CItemElem itemelem;
3 A* x# X `1 q/ `8 O* T
itemelem.m_nItemNum = 1;
* J; \6 j% O) H: \, ~
itemelem.m_bCharged = TRUE;
7 v, {+ _. t5 F
BYTE nID;
, a W8 M4 Y1 k& x0 a" f2 T3 r
' t% J+ H- G1 I; r
if( nJob == JOB_MENTALIST_HERO )
# W% S: h3 ^2 Z) m+ l. w1 b
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
4 i+ Q; _9 R4 ]* l, w ]" e
if( nJob == JOB_FORCEMASTER_HERO )
. ]7 d0 ]: k9 L0 ?3 X
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 a& P8 w" ]( `
% x) \2 b3 O( R7 _/ O
( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 y8 Z9 q1 G$ T- h* H
}
! f5 m- ~' F0 g# i- U5 m/ {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 z& L5 m/ W0 W& G4 _- L0 n [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 @4 J7 t u/ ~* _0 l
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, l$ V0 ~2 ?7 L* G* _" t- ^
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; }' U/ l9 c2 B1 Q
( (CUser*)this )->AddTaskBar();*/
5 F* Z8 P$ H* [8 K4 l. H
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, B5 U$ z$ `( G- ]
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ L5 ]. I/ M# @& L+ W0 |2 G
((CUser*)this)->CheckHonorStat();
7 J& S7 m* N) |/ P% k) r
((CUser*)this)->AddHonorListAck();
8 G+ i7 D% k% ~6 @) [
g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 R: ` m3 I, O& r
#endif // __HONORABLE_TITLE // ′Tà?
& [& x) x* X3 ]; r2 B
}
& e- e, ]' z4 `8 q0 ^# J
#endif // __WORLDSERVER
) x+ E& s& D/ k2 C; ]% y3 d
}
0 R; v: \2 h7 N' J8 ^: y. v/ y5 ^; _' T
; S5 q3 n+ e9 v1 M3 t& a+ V
然后你进入functextcmd.cpp并添加以下
& g L) F6 r) z' R! J" @* p, A
8 ]% f8 T4 ~- e9 F! }: H+ _
代码:
7 M2 A. [7 W. d( Y; r$ R
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- z- |' e! I6 H% O- o' o( _
下面插入
4 Y. s4 y( `4 ? ?* E0 n- V1 j
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; W# c. M4 A; x
3 w' [+ }! l& T5 U2 |: }% ]
然后你去
. L# M2 \7 |( g; x# s, c" u( [
. m, A& D" w+ Q+ ]
代码:
3 p: P& c! f7 l4 Z$ |
代码
) a$ {) H4 c4 J# s
BOOL TextCmd_ClearPropose( CScanner & s )
5 ]. \. J2 D7 @/ ~
{
7 W. C5 \7 S% F0 p; [4 a) L. ?
#ifdef __WORLDSERVER
# ^9 e+ v/ ]1 J- D( d" ]8 b
CUser* pUser = (CUser*)s.dwValue;
G3 }7 Q8 J( Z$ |( m' F
g_dpDBClient.SendClearPropose();
& e; ~- m4 `( l% U0 z, [
#endif // __WORLDSERVER
$ g4 ?& ^5 B4 X8 Y
return TRUE;
) v7 d; D* u* Q) ?
}
+ _( |3 Z; G( b
下面插入
! L5 z; {* K$ i+ r
BOOL TextCmd_rebirth( CScanner& scanner )
; g3 }0 Z: [1 H4 U7 P" ^7 M
{
% b) h, G% z' E( }( W
#ifdef __WORLDSERVER
# ?% V" M- E5 N; b; o! F+ h' d
CUser *pUser;
1 s* P! ~" r3 m$ C ]
pUser = (CUser*)scanner.dwValue;
; y& Q/ l2 D% ~
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ \/ P1 L p; z2 N
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 K, V& }* T1 O6 C0 f
else
9 O% N* E' C3 m6 [( s- v9 M
pUser->AddText("你还未达到重生条件!");
* }/ j7 P7 c' {5 U0 K. V1 E, [( o
#endif
1 e4 M! L; N i8 I
return TRUE;
& {& B8 g: k8 L
}
3 n; j8 N, m; D, O4 \
& I. s! J0 h) B$ _
3 y0 _# i* \3 `$ a0 l9 D; b
& |! W( e& E5 t
+ u3 o6 h8 T" B
欢迎光临 飞飞世界论坛 (http://ffwold.com/)
Powered by Discuz! X3.2