飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: `+ \/ V Q8 R& [3 e
( o2 F% O: }0 @: ?7 H+ l7 K+ V. g$ O
Mover.h
2 Z- u) q6 C) K( f+ k6 O
代码:
! |" n9 ^4 D: X! G; I' l
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 Y1 c$ N" s! y5 s( u
3 Q' a5 ?" P! y0 c1 t' \! c$ x
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ }4 n3 [) b" w: x1 f% V3 e
( m$ ~* N9 C& {6 R% n" I% R# T
然后你去mover.cpp添加
# P+ |5 W# l' g5 L7 d* m% S8 G
+ o: h* B! t- c6 V6 I/ e0 B4 i
代码:
, |* M% l4 t0 v$ p. u
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" H: V. _ |; }9 K- J/ C5 j
{
- ^ V/ {% f2 X H
#ifdef __WORLDSERVER
$ y, Y/ _. J! d- o( [( b* `
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! D1 B, k% l% T2 G7 ? ?* ?! k
MoverProp* pProp = GetProp();
1 s+ {" @) x: R# l: b9 p5 q8 n
if( pProp )
* M5 X, e8 L+ D) b
{
6 a* m+ w( u0 _7 U+ B6 ]
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% d( H" T, P. O) R% J& O& `5 S
{
q7 F3 A6 `" y5 q" R
AddChangeJob( nJob );
6 q) u/ O; z; s6 n
}else{
r- R4 n& n: e: E% D- x
return;
" j1 f7 D, m+ `5 l' h% z
}
) S! C7 ~2 T: u' h! T
int nPoint = 0;
! {& [1 H a' u% g. C5 A( g
if( m_nJob == JOB_MERCENARY )
/ s! X. R& K5 N- s8 c4 L$ U; l2 j. U
nPoint += 40;
, r6 J4 U4 T4 @
else if( m_nJob == JOB_ACROBAT )
( Z. A9 b7 Z$ u8 @; M1 o* d
nPoint += 50;
1 ^8 \3 k% s0 J( Q" ^, f+ X
else if( m_nJob == JOB_ASSIST )
9 g. Y2 \+ l6 m/ d: \
nPoint += 60;
/ @7 t# Q$ H+ O) v
else if( m_nJob == JOB_MAGICIAN )
, N0 P, P/ V. W x; W, c4 `8 ]5 p
nPoint += 90;
( I3 S7 C4 Z4 t9 B& `/ y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 s6 V3 W* M; E: G
nPoint += 120;
. Y" P% x5 L& Z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 {, Y. r' B# o2 G' U- l
nPoint += 150;
; i6 ~4 Z) T! ?' G7 r; j$ M/ p2 K
else if( m_nJob == JOB_RINGMASTER )
8 B2 q* e, ]) }
nPoint += 160;
- `" @' i" R: p# _3 A+ e
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
. v! D7 u ]2 f; a: E% p. w
nPoint += 180;
8 d# |3 c* b H7 J4 G4 n
else if( m_nJob == JOB_ELEMENTOR )
% A* k+ p! V- E( G/ K4 h2 ]; V3 W
nPoint += 390;
7 A- K: X+ h* Y! o
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
; c9 S2 `4 I9 k O5 L1 ?0 m
nPoint += 120;
7 T9 F i% U' q+ u K( f/ ]
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 @0 C4 Q/ B" o8 a7 u% y5 ?
nPoint += 150;
& }' r* m1 y2 i ?$ Y
else if( nJob == JOB_FLORIST_HERO )
& O) Q( G9 G4 R5 k$ ?0 V- j, g6 \( [
nPoint += 160;
7 Q6 g4 Y0 J& g# @3 g
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ o* w. [( g I2 [+ J7 d
nPoint += 180;
. B9 z2 n- i) b9 T, P
else if( nJob == JOB_ELEMENTORLORD_HERO )
/ h8 F7 ]: X+ r, z& ~6 Z
nPoint += 390;
4 @. ~! A7 K( T3 T/ Y& n- m$ _( @
: S0 r& e+ i8 }' Y
AddSkillPoint( nPoint );
( L; b6 M! p$ n
m_nLevel = nLevel;
7 N6 g- K' e6 j. J) g# [
$ I' v1 w6 w, [) c8 ` ?. }
SetJobLevel( nLevel, nJob );
( c2 R+ [1 [( B, k8 Y
m_nDeathLevel = nLevel;
6 R1 N0 c4 \% z1 }: j# k
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 |% c# l6 r: h9 E
if(IsMaster())
" V8 d: P# `8 N+ f' B
{
' o9 ~; L2 a' x5 d" l% g
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
?' Z+ G( T' ?
if( nLevel > 59 && nLevel < 72 )
! s2 H) M# p3 E3 d8 x2 u
dwTmpSkLevel = 1;
, m, Y: P: L6 l4 o
else if( nLevel > 71 && nLevel < 84 )
6 M6 V* g5 V1 y% ]" v+ R: R
dwTmpSkLevel = 2;
d9 s ^0 U" j5 b& t: D, b
else if( nLevel > 83 && nLevel < 96 )
g) h4 k9 L/ c, j6 S' U$ H* N
dwTmpSkLevel = 3;
. @6 [- y5 O3 Z" K0 i6 P. c
else if( nLevel > 95 && nLevel < 108 )
6 i5 L ]% l8 F' r/ I$ ~2 q# Z
dwTmpSkLevel = 4;
6 Q9 J+ L5 s2 B
else if( nLevel > 107 && nLevel < 120 )
: Z6 z" I! m; ]' u9 \% E+ r
dwTmpSkLevel = 5;
3 _) X, r5 f$ V R% a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" W! D* E3 X2 A4 t+ e& t Y
{
$ |# @0 g% Y: F* v
LPSKILL lpSkill = &(m_aJobSkill
);
! p7 _4 T& P" D1 p2 W$ L
if( lpSkill && lpSkill->dwSkill != NULL_ID )
W0 M( Y2 W; a6 C( S+ D# r
{
7 }- Q. c- Q3 Q( h. s/ \& o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) `! y# M$ I: E2 Q6 m$ I
if( pSkillProp == NULL )
' Q+ t' I, E) }2 B5 _, {0 z* J
continue;
# S5 N* ~9 v' c- q1 ^8 J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ Z: O9 D3 }- c T8 K
continue;
* E" d8 D7 [" l, K# w: M0 {( k- C$ j
lpSkill->dwLevel = dwTmpSkLevel;
- }; ]2 M, G+ ~7 m; @+ S
}
* |( q$ m; f! G( S( @8 O4 T' T
}
% B" q6 c7 o0 h( y4 K, S
}
- f# z- u5 E3 ]! L) [
else if(IsHero())
% |; U- W8 J- @
{
) N" X9 a& [6 V+ Z% }2 a; p) u
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 |; W) }1 z5 M+ W/ y
{
- g( t; d( `& D" q
LPSKILL lpSkill = &(m_aJobSkill
);
" d4 V! S; I& g! U6 H# b% [* S( |
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 _& _7 \3 n. S/ L. {
{
- g0 ~2 v" I1 j+ ]6 ~2 j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 n! X5 @! J0 }* U0 I' w% y. v$ q* j
if( pSkillProp == NULL )
, [; f1 R: O; |" b1 a! V6 H6 J+ _
continue;
8 d8 @5 ^4 n! _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% f1 O4 D# v8 g/ }& b* c
continue;
4 e/ Y( ^5 `( p/ k/ u
lpSkill->dwLevel = 5;
% _7 o) s* R2 g9 p) m& V3 X
}
6 A3 M, Y$ R+ F1 G( a, d) b. p
}
' L; Y/ e: ?1 N1 g( c4 C
}
; b$ t: C. Q- W6 A6 _0 w$ H* {
else if(IsLegendHero())
3 \$ I2 N* p- |/ K7 n& W
{
# }4 r! I* Z8 J6 H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; x" I( {7 ~: G- L5 e( c7 `% l( j
{
% D! L, W# A# N" p/ O K+ w2 [9 n
LPSKILL lpSkill = &(m_aJobSkill
);
: S8 d5 |$ T, u8 {0 y" \9 h
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ x! ~9 ]% j0 w( ^
{
9 ]: B( X7 i6 G g2 s1 _4 d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; }* I7 u: w' J* W% G: Z. U
if( pSkillProp == NULL )
2 [9 K( h3 k6 \! s: z: o
continue;
l- r4 |4 e5 y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, g8 M& F) l$ s
continue;
$ h6 C0 p2 p {: B4 M
lpSkill->dwLevel = 5;
% a* F+ M1 `7 v* v8 \' T0 F
}
3 M) K9 e- i' N' \% i
}
2 A$ i4 k8 r. W2 b
}
1 M- G* h+ Y9 U6 k. w
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( m) T0 j X J+ J
if( bGamma )
) B9 _0 Y. Y! s8 X
{
$ \2 `" o g- Q' E
m_nExp1 = 0;
* |+ k5 v' p# |% K1 i R* G
}
+ h! n" Z2 J2 y }
' j3 w! K e- Y& `* k) Y- }
( (CUser*)this )->AddSetChangeJob( nJob );
; o% T2 z7 \2 l# o, {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 X. I" m! ]# d1 N: e- C6 h3 q, O8 q
' f8 t8 p3 U2 M* r2 u
; C0 }8 s" e, t4 V, g
#if __VER >= 11 // __SYS_PLAYER_DATA
. L5 Q6 A4 r) E
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* v% b, Y; T! w8 r
#else // __SYS_PLAYER_DATA
% c0 N! o7 A j9 O' D2 i
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 n+ X! p; n% z6 a8 l/ _6 f$ l
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# b8 A+ k" E5 s# d2 R
if( m_idGuild != 0 )
5 r% T0 I3 E @7 {! c1 f
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 } S1 `9 H$ n) x# f1 d
#endif // __SYS_PLAYER_DATA
! M2 q! B4 p4 Q, ^ L( V N
SetHitPoint( GetMaxHitPoint() );
1 F% e( u) ?- l0 L1 j* ~+ m8 q
SetManaPoint( GetMaxManaPoint() );
) {, r% Z7 v* I g
SetFatiguePoint( GetMaxFatiguePoint() );
) z) z) f4 x" R2 e) |& K- ]
if( nJob >= 1 && nJob <= 4 )
5 q8 w$ ?# w: X
{
* H+ _& z. k0 [$ y$ P2 Q7 h; j
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 s4 D- W7 T( H- ^
m_nRemainGP = 28;
1 m! N' K! `# P8 _: S
}
! t9 y8 U/ o5 o$ ]
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 t# w. x4 o0 k7 B
{
4 {% M; m* v$ W3 K
m_nRemainGP = 118;
% Y) j5 K! V; |
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 J/ _' Y" f9 R/ Z* a
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: @, q; v. {3 o" k {: E, {
}
; H& P7 ]; ?6 ~1 S
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
, E' }. }: n2 e) ?4 t4 r
{
0 {; z6 C) O4 Z# ]
CItemElem itemelem;
1 R8 ]# b `1 B0 W/ c( \" {
itemelem.m_nItemNum = 1;
7 h' P* ^* h( {
itemelem.m_bCharged = TRUE;
b; y/ S/ B) q9 R
BYTE nID;
& K2 D5 {' s- J5 T' `: _3 g- ?
# Z0 U7 }4 P# f" L
if( nJob == JOB_MENTALIST_HERO )
9 W- P2 v* R, h# Y* O
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, |6 p5 f: x! I$ D, ^
if( nJob == JOB_FORCEMASTER_HERO )
9 v7 P) m9 f" K) o# e1 k, G
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
" m: w' j, X \1 L
# |; `9 j# c. Q. {( }% k
( ( CUser*)this)->CreateItem( &itemelem, &nID );
$ M. @# I H( l6 q
}
3 j2 [6 D4 v/ Y9 V/ p8 w. D
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 M8 n7 r' r4 X0 l2 V/ E
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
5 N9 ]; E% \$ t0 D
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# D! P# p7 b& z! q6 f% N
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& U, P( N- U3 l" [
( (CUser*)this )->AddTaskBar();*/
! _3 N: C1 o7 ^" K* H6 S
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 ]& [6 r. S7 q& l1 @
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, c) Y. Z! k+ o' ~. E+ w
((CUser*)this)->CheckHonorStat();
+ T9 V) b. R6 x3 p
((CUser*)this)->AddHonorListAck();
1 }8 c3 R3 M( V# Z% f( z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
! H5 C! d: h5 Q x
#endif // __HONORABLE_TITLE // ′Tà?
, N" K) T* Z! f% a
}
8 s, q. U/ ?8 y. B3 c
#endif // __WORLDSERVER
6 L5 F; @: U; o' U. {
}
* r- l" P1 P9 u) u; V+ m( z* |8 e6 b
' O3 Q/ N5 s/ A4 q3 J7 R
然后你进入functextcmd.cpp并添加以下
: d' g: Q6 v* L& H
* |: R( S# A) B! S7 I: V
代码:
: v6 P7 A/ V; g0 \1 v8 r' B
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 F+ S$ e$ C4 o& b9 } Q- |8 g
下面插入
( r# K% y' g( A e t/ ~. A+ K
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 B! m+ u0 ?8 S( M& }7 e" s
. x9 m3 K, Z( C, D0 U8 X
然后你去
" f( j5 u! B' j1 A% O: j& Q
9 q* U; `% d @. n6 ]
代码:
8 V4 N. I# H. ]* Q: Z
代码
* G9 n+ Z4 [" b1 b) v% O, _
BOOL TextCmd_ClearPropose( CScanner & s )
/ `* h; U6 I% {6 G, r
{
6 H. {2 A5 V- M4 G) S
#ifdef __WORLDSERVER
6 e# F: @" V$ b' ?, b4 `/ X) ]4 R5 @
CUser* pUser = (CUser*)s.dwValue;
2 n% g; J0 e# }$ u9 b
g_dpDBClient.SendClearPropose();
3 {4 q. j; F0 u& {6 Q: I* n" R7 ?% i" q
#endif // __WORLDSERVER
7 ^$ `' t6 y* ?) e
return TRUE;
- h% A6 |4 C& j& S2 [# K
}
3 j# ?9 b8 m: W! m% @! e B) @
下面插入
- q* h) N5 }5 B+ @
BOOL TextCmd_rebirth( CScanner& scanner )
# W% ~1 C" k2 G' x) b: ^
{
# Z$ j9 ^/ Q4 v6 |6 B
#ifdef __WORLDSERVER
4 V, K' e( y$ O: B6 {3 d
CUser *pUser;
9 N7 ^/ x4 F) J1 C+ F
pUser = (CUser*)scanner.dwValue;
6 B; }8 I5 f7 j9 t# ~' X) ?6 y
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ K; O9 a) T4 v! O0 [
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 l! c# z9 g E8 X9 j7 t+ h
else
/ ?! y! k8 s0 ~) ^1 B8 q
pUser->AddText("你还未达到重生条件!");
' x) P. @" C# q+ B. R
#endif
# P; T: k4 }+ N
return TRUE;
' j1 A+ s# k" l3 o- G
}
( _; Y6 G) p4 t6 [; v! R' \; y2 |
5 X! j+ U0 H1 b' C7 d
. h3 N# e2 n$ O- S" b
$ w" h3 G0 D6 n
) l% Q/ m9 k0 k
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2