飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
3 U, \" ]' K% J; b4 G
, P+ I1 F! l9 u; e! ]. u0 p
Mover.h
& j* C. M( J; y3 j' K0 j
代码:
3 T* W/ ?5 _1 N: F
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
6 B5 r$ M1 n8 g' t% J: H- p* j
) [4 }2 J6 d) \6 _
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
1 \1 U2 v1 ^* w/ J4 B! B/ J. u
* _& n$ k. B6 D5 H
然后你去mover.cpp添加
- n4 j, T) ]: w7 A
& B- Q6 Z, Y" M: P4 J* [
代码:
6 k C+ `- f( l5 j: ?
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
/ c/ E/ H! t) W( o5 c6 T$ z
{
: X% q s# {6 _
#ifdef __WORLDSERVER
c9 ^/ A8 |! z" x
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! R4 P9 n3 t8 n ]- [9 V& @9 R8 u
MoverProp* pProp = GetProp();
# H: d- O* S. Q; M1 o2 ^# o2 z
if( pProp )
, d0 A3 K* T2 ^9 E+ V }- W# e
{
9 G. z1 ?8 z% v: N8 P
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ U$ E/ i' l3 f3 ~
{
; n8 Y6 y+ w& _3 Q6 R
AddChangeJob( nJob );
o5 G! |. m: F& J3 m ^& M
}else{
1 M. S H! ?6 H4 y( b
return;
& R+ u/ W2 ?, J) q
}
W- Z7 f% E! T( {' v
int nPoint = 0;
0 p( O6 B; y" A1 p4 n8 ^2 `* {
if( m_nJob == JOB_MERCENARY )
! O0 \; W& b; U& A' }+ w! ?9 j2 i
nPoint += 40;
# N; u% \9 t3 H1 \$ o$ G2 u8 U
else if( m_nJob == JOB_ACROBAT )
( J1 g: m; R' J( d5 @
nPoint += 50;
0 Q4 k- B6 n. V4 S. N3 ~5 w1 t% N5 ~; o7 {
else if( m_nJob == JOB_ASSIST )
1 t4 r) H5 {7 G4 v& q
nPoint += 60;
3 j* `) c ?! T4 [( i) Q$ Z
else if( m_nJob == JOB_MAGICIAN )
/ `5 C$ ]6 l) f! ~
nPoint += 90;
`2 f j; k, d8 w! z: J4 ?+ o
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
l* k- q, ]/ Q2 v5 A3 l
nPoint += 120;
& H) |2 R8 O& E
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ X/ p" q4 h1 r5 a/ p
nPoint += 150;
1 u, v3 d: {# q
else if( m_nJob == JOB_RINGMASTER )
* L" P% J6 p3 l- R
nPoint += 160;
* h( ~# J2 ?2 }6 P. V, h- ?4 W
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 w" `$ \" U! O0 \
nPoint += 180;
0 c ?% v4 @! C
else if( m_nJob == JOB_ELEMENTOR )
' p( W" \1 o/ ?0 `9 l2 A7 X( ^$ E0 t2 y
nPoint += 390;
( @7 P: _5 f' j8 V$ \8 [
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 m/ K# D9 a- ^( v- ], `
nPoint += 120;
g+ `% f6 \) M6 m' D9 r. @* B# K
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 r, ~& U6 m' a9 S: Q; L
nPoint += 150;
- A# l8 l# D3 A7 [8 h
else if( nJob == JOB_FLORIST_HERO )
$ l+ P, ^' m* O- W# f5 m3 A
nPoint += 160;
2 ]/ w6 p! d& s' K# I
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
/ E' A0 W3 L1 y: r* ~$ D9 {
nPoint += 180;
+ w2 g3 z% f' @- g
else if( nJob == JOB_ELEMENTORLORD_HERO )
( \& D% O# k/ g) N; I0 a( g
nPoint += 390;
' d- m4 E7 F8 N$ a% d' d4 d
! h2 o% J8 a" U8 H( e2 W4 X
AddSkillPoint( nPoint );
' b& p d6 u- {% O$ G2 y
m_nLevel = nLevel;
$ ]5 }4 Q U5 U3 {
. E4 D5 G4 k2 F. {- Z3 y% {1 X
SetJobLevel( nLevel, nJob );
0 _2 \$ E: w1 {6 x" \. U
m_nDeathLevel = nLevel;
- J. y+ @, w, @: _+ J4 j3 ~( W p" L( R
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& F! [! Y* s* l5 V( i
if(IsMaster())
/ q0 Y# v% m7 i/ j/ [
{
% N2 `8 p. C E# B
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& O( n! F$ [) T/ i+ w
if( nLevel > 59 && nLevel < 72 )
/ y9 ~$ J0 [* S- ^; Q
dwTmpSkLevel = 1;
9 P7 @8 [- G% B
else if( nLevel > 71 && nLevel < 84 )
1 `1 p6 D' e4 e' h! r
dwTmpSkLevel = 2;
2 v) V1 U" T- W
else if( nLevel > 83 && nLevel < 96 )
: X- f; N' u+ s/ R! j
dwTmpSkLevel = 3;
+ r8 h4 x ~, E1 h+ [ ^
else if( nLevel > 95 && nLevel < 108 )
' J/ T' J( Y' z) G
dwTmpSkLevel = 4;
9 a( K2 Y+ e7 O7 x) W1 M& G
else if( nLevel > 107 && nLevel < 120 )
( E+ B# }3 H- }) A
dwTmpSkLevel = 5;
+ c, | O" U" Q4 y9 F8 A1 U( [6 y9 ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( d- u3 g6 l$ Q1 C h1 Q1 b4 i
{
6 w9 d6 X, ^' J" y
LPSKILL lpSkill = &(m_aJobSkill
);
$ A6 J+ O' _# ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. X! a j% l9 D& J4 ^2 s4 a
{
7 Y ?' Z/ v( F; w/ @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 H2 E8 z' @2 x, [. B# N8 A' u4 p
if( pSkillProp == NULL )
* X/ ^3 U9 v: i; W
continue;
* T) b8 q; B, u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- y# G: @& l# \( D
continue;
" B: ^" g6 Q7 a1 `# z
lpSkill->dwLevel = dwTmpSkLevel;
K, z+ V; S1 p: f5 D8 _$ e
}
) n. B# p! h+ k$ R: ?
}
4 U; e4 p- a8 t9 v+ t
}
3 e* h2 V) T a1 |% K
else if(IsHero())
/ a9 i, p9 Q9 W5 v: I3 W
{
% X, j1 U9 g, {7 ^
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ O2 Z4 M& D, w+ `
{
6 p2 f4 \# N% y! \
LPSKILL lpSkill = &(m_aJobSkill
);
3 H0 X, X! x. R; S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; E8 U3 q# u5 b8 y
{
9 g2 q4 Z" `4 W5 Z+ m( c3 p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 n+ R) K) E6 Q4 s+ T o' m
if( pSkillProp == NULL )
d3 w! q# q" O+ ^, a/ Z
continue;
! m- p$ A5 a% i* h( {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 x# f. d4 D. _7 x6 u
continue;
* y9 l8 |9 X2 C8 V( V6 T
lpSkill->dwLevel = 5;
, w A3 T; s4 b, _8 d& _
}
) r5 y5 F) ]9 A9 R
}
) O* A1 _( A# J9 @, F1 s
}
]- k3 d4 Z$ X7 I) {* j1 ]) X
else if(IsLegendHero())
* m8 j2 T. G: P$ V; W2 m
{
, b' u3 Y5 e! ~( R1 }% _% I
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ X" ^. N5 k, L- @. R1 a; H$ b
{
9 V; [4 D2 s/ j! H
LPSKILL lpSkill = &(m_aJobSkill
);
2 ]% p% W5 m. h$ `% H9 h& {
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 ~; T* q Z% l7 Y. H
{
$ P" p2 r4 z0 F, U; {9 z- \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* m) A( t X9 Y2 I
if( pSkillProp == NULL )
) P$ {4 H/ j! c7 X! L
continue;
, H+ I% w* E9 U! [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# R! k, v1 W9 [
continue;
1 k- B" M- z4 h$ O A3 S3 E
lpSkill->dwLevel = 5;
# {: f* P3 o y- U
}
6 ?' R# x2 T0 y
}
9 _+ a/ E0 H+ T% m3 V t: h# l
}
+ Q% }* ~) F# y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) i. g/ q/ E3 s& S
if( bGamma )
( a J) H5 y# V( B3 c
{
& l& x) G5 Q: O% v/ Z
m_nExp1 = 0;
% k1 x {! E+ _! L/ X# i5 r4 [
}
8 ]/ d& Y5 m: x& I2 w$ O
+ G5 f- c! i2 G8 T
( (CUser*)this )->AddSetChangeJob( nJob );
# b0 [( h; ^ l9 K
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 i# N+ R# G, ^9 x1 ~
% ~/ n/ q5 s. Y" }! p8 w
, l: |" p, C( t) E, ^
#if __VER >= 11 // __SYS_PLAYER_DATA
) G% i$ m( d1 s) T+ W4 }2 m
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' M4 r4 s: A8 K9 Z
#else // __SYS_PLAYER_DATA
' W- ~: y& y3 }
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
; E7 b4 N% E. Z! B! ?# T
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
% J- o. O9 v" n0 ?* h7 d( M
if( m_idGuild != 0 )
, d+ U$ k- \' s6 J5 l
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) V a; u4 @4 k/ i
#endif // __SYS_PLAYER_DATA
6 x4 J6 ^; t2 b: k3 w) I% |7 c
SetHitPoint( GetMaxHitPoint() );
) x1 S4 |; J" }* j: i/ |4 |3 k
SetManaPoint( GetMaxManaPoint() );
7 Y, k5 F0 Q1 w; q m6 o
SetFatiguePoint( GetMaxFatiguePoint() );
3 ^ F# S/ x" t" i, E/ X
if( nJob >= 1 && nJob <= 4 )
0 r: K+ R/ b9 h" Y+ C2 k- g. V
{
( f8 o: K2 O& i
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' z6 b% _/ W) l; t6 V7 H$ p
m_nRemainGP = 28;
5 {2 K5 K) B; u) ]$ C
}
: v( h) w6 w# v& L, ~& R9 e
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 s: r) Q. Y9 O+ H# K- M
{
1 v1 Z; _/ ~7 q5 t: X
m_nRemainGP = 118;
' ^* _, j; r' y2 `
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" l. Y# t3 l6 A. v' w
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, o$ ~! r5 X( L2 O6 }. s- L
}
$ K' j2 M% ^2 E9 r* y4 E4 J5 C
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 I/ x. G2 x& u( N" m# R% u
{
9 `5 c4 Z/ J% U- U& s9 H2 R
CItemElem itemelem;
6 q' E+ G4 I9 W, \
itemelem.m_nItemNum = 1;
4 M" M# g( {; J! u. n/ T& _
itemelem.m_bCharged = TRUE;
, m8 [# s' n- x* w0 ~7 p
BYTE nID;
8 E G( J3 o, K: H4 Y- J4 ~
* b6 b+ v5 p7 L+ X
if( nJob == JOB_MENTALIST_HERO )
8 C. T6 q) h1 n, v9 k
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
7 t8 A+ \$ d# g
if( nJob == JOB_FORCEMASTER_HERO )
6 u) a0 U9 j, w
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( ]3 C% k" _6 K, D- [ |6 h' Z* k2 ?
, {1 a& d) S: D( u; P9 x. K V
( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 [* g* }3 }1 N1 t) [6 z0 B& m
}
, \2 x8 f: l6 ~& W( L
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
- t* z$ c, e( `9 }+ I5 _
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 F' r$ S2 D* P' X- H
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
/ S ~' u( l* Z3 b# A# t% D+ {
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 P2 m1 t7 {" A+ D
( (CUser*)this )->AddTaskBar();*/
, j8 v6 V- D" g2 S/ S; d7 g8 O! ^
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- E+ O7 l7 H L+ w/ l; D( I; V! M( `
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& j& _* V' B% v& H$ s/ f1 x
((CUser*)this)->CheckHonorStat();
2 q. l0 e8 w; p A# W% f9 ~- F
((CUser*)this)->AddHonorListAck();
( _" s' H7 J+ O: n
g_UserMng.AddHonorTitleChange( this, m_nHonor);
- [2 R+ S. ]' o7 X8 N7 F
#endif // __HONORABLE_TITLE // ′Tà?
" t( j6 _" g# n8 w" a7 x! K
}
! g4 P' m( U' Y1 A
#endif // __WORLDSERVER
+ u a$ Y3 a) B7 ?- \% n: N. V
}
; K% k" I; i; I, K6 c: ?# C
, O) K# P( M7 Q0 G- N
然后你进入functextcmd.cpp并添加以下
. o, C9 l2 Z3 }: C4 K+ D; B
- w( a; p( N# T# i
代码:
( Z4 I& I+ Z& F
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 e1 c4 U5 p. F0 B
下面插入
1 c/ J% C" f! V; I! i6 b3 ]
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; z% d; S) }+ t* y6 Z2 e6 E
! W$ ?: q, Q# Z2 Q. m3 B6 K
然后你去
X4 ]1 ?# A K2 s- }% D
; j8 p2 Y9 v" _
代码:
; N: \* m! n2 }6 X5 B
代码
: v1 x6 m* l' Y, Y0 Q ]; ^: K8 t
BOOL TextCmd_ClearPropose( CScanner & s )
0 Q" r( H& X5 u
{
2 X/ C+ _7 @$ d7 T! I1 T
#ifdef __WORLDSERVER
5 Q2 V/ W- f) _0 F
CUser* pUser = (CUser*)s.dwValue;
/ Y% m9 b. e- m
g_dpDBClient.SendClearPropose();
1 c H e& X' K' D( W( \
#endif // __WORLDSERVER
& }9 U$ ^, j G0 j) S' e$ s
return TRUE;
* x) b. w* f. a" {- s D
}
8 L5 \8 c% f$ a5 S& E6 Z
下面插入
5 a* o6 i; M; X* y
BOOL TextCmd_rebirth( CScanner& scanner )
* `. Y! T( g- B! G/ G3 H
{
, R: z8 @7 u" \1 u. g
#ifdef __WORLDSERVER
( a9 \/ O1 i. t( B1 |
CUser *pUser;
# f" h7 i5 e# G! h0 [4 e; W
pUser = (CUser*)scanner.dwValue;
- M4 ?2 ^/ _* g/ n
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 w- @1 H$ W9 S2 i8 H) M2 ?
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
: N4 I6 l5 S) P. q
else
1 W, a& M) J% Z3 x* Q- y$ t; s: p; L7 b1 _
pUser->AddText("你还未达到重生条件!");
# u9 L, V$ u$ F. Y
#endif
1 o4 v$ Q3 l! w
return TRUE;
3 i+ [! T) \( Y$ {
}
& A4 c& N4 L! e \' E( l+ b" \: j
9 U* {, `+ n1 S$ X
7 \; A$ Q- y8 C8 f. [: r
% `. u2 }; b# Z* g- {
1 B7 q" i$ ^3 {. ?: G
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2