飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
1 ~5 J% I- j9 e8 g8 X* x. Y" j5 |
( o* E Z8 h9 h1 m: P, C
Mover.h
! [: ~0 ~" [. n4 u3 |0 `
代码:
3 e( l* T& C4 `# O9 ]( D, d5 ~
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 I1 |1 B: L# j8 @
2 f9 Z9 C- R8 I6 L6 e/ Q M( g
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
) Y+ N) p; p: _3 d
4 ]' o5 X6 a! ~
然后你去mover.cpp添加
9 u2 x% \$ B' o
+ z& d8 s0 X, N! q$ w, B, A
代码:
8 L9 Y9 J& ^7 B% x$ l
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ g1 M0 r# i4 S
{
4 k+ z" @5 A' c* F" k# k
#ifdef __WORLDSERVER
" K# j3 ?! h- T A
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ f' M7 e' w+ X( @/ d
MoverProp* pProp = GetProp();
+ O/ \ Q+ n& ? {- o7 ~
if( pProp )
& V. ~( H2 f; I8 D3 b
{
5 b" Z* c4 V; q5 l8 G+ q0 v
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, k4 R/ n) k6 @) N/ u, r& \
{
0 u' M% D( n& e2 W1 p( U9 [ n) V
AddChangeJob( nJob );
% e q. G: v( {3 J8 b
}else{
q' R" E P/ O
return;
! L3 s9 y; ~3 V+ O% G
}
3 ~& c! |" z/ G3 M7 }4 k6 G H
int nPoint = 0;
8 E# }% r/ Q# `# [* J8 D
if( m_nJob == JOB_MERCENARY )
+ F" F% C3 f) q0 O$ S) k) f
nPoint += 40;
- f' G/ k$ _, R% s7 m6 w, r
else if( m_nJob == JOB_ACROBAT )
% i* y; T o% c. C5 S
nPoint += 50;
' ~, _6 j6 G) D6 [) I- f
else if( m_nJob == JOB_ASSIST )
3 I" u8 `+ S; G# A( N- {* q: D
nPoint += 60;
6 s8 F, G, A$ t! i; k
else if( m_nJob == JOB_MAGICIAN )
* A- y5 d) i0 @) m7 m
nPoint += 90;
& k c% C- G0 z+ j7 Y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' b* p( q$ s f$ w8 m# T2 B
nPoint += 120;
- G2 a4 I! D' Q% ]+ Z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" N) e9 j5 x8 ?9 r2 f
nPoint += 150;
6 B( b) I* K9 B1 _9 i- q
else if( m_nJob == JOB_RINGMASTER )
! w) H& M, V) l( m! \; ]# {
nPoint += 160;
; R5 W! h. R7 F
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ l& [; A' P" t0 r8 H
nPoint += 180;
( R$ M1 r( d8 e, o4 |0 P* n: P
else if( m_nJob == JOB_ELEMENTOR )
( U' N9 [5 U4 r4 H( l) W1 c
nPoint += 390;
! x( T! r% I* Q* a5 y# J
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 i2 ^' Q" N+ K0 Y5 n
nPoint += 120;
2 S7 f# i/ U- n; k9 X' s: |" F) Q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# R2 u, W+ F0 D6 g/ i. B* j- I
nPoint += 150;
: A: o0 h0 X2 k$ t: M0 r- @
else if( nJob == JOB_FLORIST_HERO )
% ^) l. g& D! x D
nPoint += 160;
8 o: s/ L; b1 ?1 d
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 s; z& H! h0 S1 e* D! ]8 ~
nPoint += 180;
5 h$ T% Q$ j; o: w
else if( nJob == JOB_ELEMENTORLORD_HERO )
; Q9 J4 q' k7 y" K
nPoint += 390;
, m% K, D+ q; u
% b& R3 S6 t) S
AddSkillPoint( nPoint );
' T4 i# c7 e5 v' B Z2 R
m_nLevel = nLevel;
* A+ ^1 h( f) |
: }: d* S }) C5 Q( m; v
SetJobLevel( nLevel, nJob );
/ w, `0 h$ s( W& }! u
m_nDeathLevel = nLevel;
1 ^4 A: D) W5 K7 n# i5 Z9 K
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. u; L" ^9 M7 t4 K) Z6 D
if(IsMaster())
/ \: t7 w+ @. ?: n, f* t2 n) B
{
2 f, `/ E4 N n( n- e$ J: `
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ d+ l6 i4 ]* w* s0 M; }
if( nLevel > 59 && nLevel < 72 )
8 I; Q8 X& r7 }9 z! e3 g. k: E
dwTmpSkLevel = 1;
7 r( ^# P. B0 D" \
else if( nLevel > 71 && nLevel < 84 )
4 [. A' x7 L l9 C* n
dwTmpSkLevel = 2;
4 H9 H1 [9 j5 h% g' K$ y
else if( nLevel > 83 && nLevel < 96 )
8 T( b% f. D% I. l U
dwTmpSkLevel = 3;
4 Y/ N2 K- E" o" |& \
else if( nLevel > 95 && nLevel < 108 )
$ ~3 j( B" k6 E" D5 h
dwTmpSkLevel = 4;
; l9 Z/ b H7 i8 |4 S8 m
else if( nLevel > 107 && nLevel < 120 )
! f4 _/ @8 g. h( Y
dwTmpSkLevel = 5;
2 a1 q( h& K, I8 W8 }" I1 A
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 x& G$ r n5 }! `9 n# v
{
! m/ s+ V- ?: \
LPSKILL lpSkill = &(m_aJobSkill
);
) c( S: d: q* S& E3 W) i
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 y% j/ O- B( v" L6 c+ D( J9 s# ]
{
~4 r. z$ a8 D, N& _' V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 o' L0 e( B) L7 E% W Z. `4 z
if( pSkillProp == NULL )
7 G/ E9 p0 H; `: W/ J
continue;
, y7 v! B2 v$ r" B& ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 y& y) b- @1 @1 ]
continue;
1 o: |. m4 Y1 _
lpSkill->dwLevel = dwTmpSkLevel;
0 @* Z9 t* t. y/ L6 V% D" v
}
& c+ R) \& z9 T% N# r
}
; R: \3 H6 O# e% C! V1 a: e
}
: u8 i# B2 L( W. K& ]' R
else if(IsHero())
% H) Q; E) F' H, c4 G% e
{
& N: i1 t) _. G6 D0 s4 z3 j
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ p0 K$ B; _% a2 n# |0 q
{
/ @0 l, m4 ?9 _' k
LPSKILL lpSkill = &(m_aJobSkill
);
8 b" `0 l& }1 L4 t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 ?' x1 V8 g1 ]( _
{
$ G' B: [& v1 g% D' C+ G3 P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 @. c; ?+ J' S2 x% L
if( pSkillProp == NULL )
( M0 x7 Q, d9 e* x* T0 [
continue;
$ h* o; y; O, j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" ~, O! {! n+ i( F' [
continue;
) T% z4 g1 s& G
lpSkill->dwLevel = 5;
# O& B: [/ P2 B. N
}
% [- O" t7 I& U2 z" J& K4 J
}
6 c* i5 l9 w. j' d1 F+ s
}
" V( O$ r& b7 ~
else if(IsLegendHero())
) h4 T, S( |5 _6 ~
{
' t* p7 Q$ F, n$ ]+ g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ l# X" |1 A. h$ B. C0 v
{
; d) O# G% b2 ^0 W5 R, u/ G8 ~
LPSKILL lpSkill = &(m_aJobSkill
);
/ \- c- E6 D2 d F9 D0 L7 S8 W" Q$ K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
p& T# |; y- X4 p. {5 x
{
7 C$ c/ J% Q: n( ~/ \5 P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. z# m0 v9 o6 H/ i9 d/ M; \( s
if( pSkillProp == NULL )
% C) }* J0 K- h3 P
continue;
; A; ~" J" A1 ^7 m" L3 ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 f8 O4 b6 p0 e2 ?2 e W
continue;
& U6 K' Q% Z0 P3 U
lpSkill->dwLevel = 5;
9 C. W" ]! j6 f/ Q9 U5 a G/ C1 ]& f
}
9 x5 C* O/ D: q& k/ d
}
( [; {6 v1 z* _
}
4 _% Y h( n g* j6 j7 J
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. `! t- r( l' @: b. b
if( bGamma )
' n3 e4 e" o% }) v
{
A. _2 `5 r0 J. ]/ i U' t
m_nExp1 = 0;
2 L0 _. c. n$ v6 G! \
}
0 {4 A3 i6 X* \3 y
, i8 m; w7 o9 v) f$ \4 I1 T
( (CUser*)this )->AddSetChangeJob( nJob );
" t& {3 _( }; g
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 z: a6 o$ \+ {- l
7 Q9 _0 \9 F+ Q
6 G {& X& g3 `. {) q
#if __VER >= 11 // __SYS_PLAYER_DATA
8 j* R4 b, q8 a2 A& Q- X
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
1 y9 s4 \0 k' H4 ^1 D
#else // __SYS_PLAYER_DATA
1 }$ K' b* f$ F
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( G4 X$ V; l' A" g
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 U/ i% M r/ G7 O1 _
if( m_idGuild != 0 )
2 {$ `: U5 @: T2 J) ^+ ^
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
# g" u& [0 J% V
#endif // __SYS_PLAYER_DATA
4 \$ X& e+ `( o4 k- S
SetHitPoint( GetMaxHitPoint() );
; @3 r/ l/ J1 l) i3 c
SetManaPoint( GetMaxManaPoint() );
1 A5 l5 |# M# R2 X+ P0 e& S
SetFatiguePoint( GetMaxFatiguePoint() );
( q6 e1 ~ i' m: g5 X: C* i
if( nJob >= 1 && nJob <= 4 )
" S5 {+ k* i7 u! ]) T; {
{
J* {* `" ~ h( N/ L8 U6 D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 a) ?3 e# L7 s. Y X* }+ B3 p
m_nRemainGP = 28;
3 ^5 O0 e$ h# W5 y! K
}
- d' V3 W9 c& ]" |
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. ?+ M w% k; h' w2 b
{
* }6 h2 |$ I/ z* }
m_nRemainGP = 118;
, |, t) V8 o2 [; K
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ s( Q/ p8 P; V! Q# Z
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 C: v) j9 V/ R! s1 ]. @
}
3 C% p6 W3 W* j/ g2 X1 K. o
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# t0 Q3 J5 g/ A
{
/ b# P2 y/ b* D6 u( i
CItemElem itemelem;
. ~/ Q& ^: w! v* ?
itemelem.m_nItemNum = 1;
' _, S4 d' i+ ]" G0 E/ M5 h+ l
itemelem.m_bCharged = TRUE;
* d; v; l2 q5 ?
BYTE nID;
Q" X. R- F8 l1 x
7 h4 Z/ L9 D1 \$ l9 d4 L3 L9 o
if( nJob == JOB_MENTALIST_HERO )
# {6 Z. c. q$ W3 {" |
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 h0 r' o7 G: l
if( nJob == JOB_FORCEMASTER_HERO )
+ T' \) m+ v& s0 T' b) o
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ l2 u$ r) N ~% [1 B7 K* N
1 _( n+ X% o2 }% s: v! q
( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 W( f# E% T- v9 M" Z' A2 E$ C
}
: b' l Y. U' c6 N% j1 u
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) h7 [" j5 X1 P: ^ y
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
3 }9 L/ U- c# y5 C3 {
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 a2 x+ T, t# R
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: m- u( F1 N* X4 L0 c3 r) n8 y9 `, p
( (CUser*)this )->AddTaskBar();*/
" q% t5 S7 I1 r- l8 k
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* w, u$ A% U9 E; ]
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
4 `+ F& v/ m5 n8 K: p
((CUser*)this)->CheckHonorStat();
: E0 S6 t1 M, Q+ P: g7 S- D
((CUser*)this)->AddHonorListAck();
; t( ?' l+ z. @) J! d
g_UserMng.AddHonorTitleChange( this, m_nHonor);
- z* V+ n5 J) e, g# I
#endif // __HONORABLE_TITLE // ′Tà?
- n0 ]" u x) x$ v' l2 v; S) p
}
4 g7 X& A" X* d5 n+ f) D8 s: E; G
#endif // __WORLDSERVER
# A X+ i0 P+ E+ C/ N# K0 G7 D
}
7 G+ C! F) {, T
$ S$ t0 |6 Q5 r+ A( y7 I# k
然后你进入functextcmd.cpp并添加以下
9 Y C# p1 v) x. y8 E; n- S
' G$ h) b$ l( f! F# G
代码:
2 v' C6 q4 ]5 l& G. s. o
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 D3 a9 ]1 C8 y! B
下面插入
1 _. c7 X) v- B
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 m8 \/ W U) c6 u F
) Q5 H) l! u% V l% p) D$ ?
然后你去
- n+ f; j7 u8 r3 @# ?6 } ?& f
4 U2 ~9 V- E8 F6 Y0 n/ Q) R. n
代码:
* s/ q% H9 ^5 u
代码
- Z9 S) ?' P' i) g2 T! c1 x
BOOL TextCmd_ClearPropose( CScanner & s )
, ^2 @) d3 W- j1 A4 E& I6 u- e0 E
{
# \* G0 }. g' v$ R2 {
#ifdef __WORLDSERVER
?7 _3 O3 x! N5 }& f2 A
CUser* pUser = (CUser*)s.dwValue;
+ O$ Q) E& W* g: R' O5 ]
g_dpDBClient.SendClearPropose();
9 m4 _+ W# Z/ W
#endif // __WORLDSERVER
& I. T. `2 L' A1 A, F5 P+ z
return TRUE;
6 h; V4 r5 E+ R8 `: A2 u
}
3 P& @! S; ? K( M" b
下面插入
& d- A7 s& N1 {7 F
BOOL TextCmd_rebirth( CScanner& scanner )
# q9 I- t) M p1 x& Q/ d3 q
{
& M; ^& v8 e, c. i2 e" l
#ifdef __WORLDSERVER
& h. w! t; N- }/ b3 E+ B/ A) v; \
CUser *pUser;
/ k4 U0 |* D# b3 \$ v
pUser = (CUser*)scanner.dwValue;
: K% O1 t! N/ l' N. B# y9 X* T$ H
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 A. s8 E: I! w5 H x/ L7 x
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 J' I3 t; ?7 }5 J% w
else
0 z P3 L5 C0 D4 o* a
pUser->AddText("你还未达到重生条件!");
m1 q& S8 e0 w/ L) V; o7 V
#endif
7 O0 _& n7 W5 T7 Z6 H: P# z0 j; x' L
return TRUE;
0 t4 W" @, a4 C4 B2 ~1 ^
}
1 N0 k# i1 r- a/ ~* p* k/ T. x
) i7 ^/ P6 R7 n8 q
) _8 w7 r3 U+ Z2 H% Y8 X2 ~
& T+ y+ n( T0 c3 g6 h9 g
- m" N5 q' U7 _9 h, T" v. \& J
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2