飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
3 d9 O% K5 T+ q4 _( B! P% @
- L, `" r- W; ]; F' N
Mover.h
$ U+ u1 d3 F: p
代码:
( {0 D( y; ?4 b ~
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, H2 M( _" k8 _: `
! O, q3 n9 Y* A" Y/ T- v
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 S4 r+ K7 T- E! |: v' A2 h
, z9 q, z+ |( U4 A* U1 o( [, s
然后你去mover.cpp添加
3 y. y+ \$ F) a" I( E0 \! V! L
0 Z) ^7 Z) H# e5 T' K
代码:
8 z+ M; ?$ }- I( u. M* g8 F
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 J* P: _5 c0 w5 K7 U% _0 |
{
7 C# X' t) L; e/ ]# g
#ifdef __WORLDSERVER
" C4 l. h1 p. D( {; f( Q
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" h% B8 E& w* l4 p
MoverProp* pProp = GetProp();
* h8 a$ k5 b5 ? v0 C
if( pProp )
4 D% ^" x4 v+ L
{
7 x, h: W) Y5 o1 f
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 [2 X% [) E% p, V6 f% L
{
+ X' {9 |4 G$ p6 _9 c
AddChangeJob( nJob );
: N# C1 ^) l d1 O% v' E" Q
}else{
) m C7 S1 W: q f3 R
return;
6 ?2 s: `# |* j- N; O
}
8 {1 t+ k6 c# y2 `' g/ L [3 [
int nPoint = 0;
! j1 U2 i9 Q: T. {( N
if( m_nJob == JOB_MERCENARY )
- N2 B; L) u4 _
nPoint += 40;
, b6 S# h3 U+ v% ^
else if( m_nJob == JOB_ACROBAT )
: U) a% L! o* x8 e1 a- W4 t* d1 T
nPoint += 50;
$ A5 ?* P c' [1 b) H
else if( m_nJob == JOB_ASSIST )
/ g( h; w, W3 k" W0 B: z; p
nPoint += 60;
* R) J, B1 B; P' J, k- L
else if( m_nJob == JOB_MAGICIAN )
9 Z0 `: c) ~5 f6 x- n0 V
nPoint += 90;
/ w( N2 w* Q! L' b' \
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 [) D& @" z; v
nPoint += 120;
7 r( O- U7 u- Y; j
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, \4 G% e' ~' A3 C
nPoint += 150;
7 z' p8 ?4 P/ X" w
else if( m_nJob == JOB_RINGMASTER )
. d- Y, h+ Y7 K9 p
nPoint += 160;
- q& `; s1 B8 m# y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( S9 \6 u$ ?) E; @4 a2 V
nPoint += 180;
. N5 V$ z; s3 G4 P
else if( m_nJob == JOB_ELEMENTOR )
4 b+ ?- J4 R) \; }+ \6 G( e
nPoint += 390;
# ]4 o- A' h$ J B. [1 q: h" b
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ y$ F1 b- I" T( \8 s6 b
nPoint += 120;
# l# ^- y" E# L4 j8 W: R
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
1 Z+ B: a$ ]3 Q; T f; c7 j! x
nPoint += 150;
/ `. Q2 V# x2 @6 M; z. e+ q
else if( nJob == JOB_FLORIST_HERO )
0 p$ F6 g! Q U
nPoint += 160;
9 l# S5 n! P) W1 L; G1 \. b4 m3 L; ]
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 d4 V ?( |# A2 ~! ]5 L
nPoint += 180;
0 z: c9 v/ V( {5 Z3 d4 n" a" [
else if( nJob == JOB_ELEMENTORLORD_HERO )
3 l! `; P# {; ~. h: N
nPoint += 390;
. m& Y; a6 p/ ~0 _
. C7 y8 k5 f$ T. |! ~! ?4 |
AddSkillPoint( nPoint );
' P$ O% l( _/ D7 j
m_nLevel = nLevel;
* {& K+ \5 p& y) T. }( r: C
& c' \0 ~- E( `# Z% ]% k+ E
SetJobLevel( nLevel, nJob );
8 Y8 R7 S! R0 w, R( J, E% k
m_nDeathLevel = nLevel;
" z$ d% r- C" K- M4 u; P
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 H: E3 P1 y9 e2 W1 a3 H
if(IsMaster())
, r+ j' d, {/ J# j! g- k
{
n$ F1 U' o+ f( c9 H
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 D5 T' B, d- \# c) j1 @" T& N
if( nLevel > 59 && nLevel < 72 )
1 w( y7 a; N3 x& A2 S: f
dwTmpSkLevel = 1;
% p- { ~0 U2 E+ L P( y% _# w
else if( nLevel > 71 && nLevel < 84 )
( q# m; x2 V% J E
dwTmpSkLevel = 2;
6 b2 ]5 M* G8 ]9 I: }' t6 O9 g' T0 k
else if( nLevel > 83 && nLevel < 96 )
: w# w2 R5 x0 j! S6 m3 {
dwTmpSkLevel = 3;
( @' G2 ]6 F4 p( P. Q2 y+ B. f) }
else if( nLevel > 95 && nLevel < 108 )
" J7 M9 y) o! R- [
dwTmpSkLevel = 4;
, E" a$ r6 I$ F( h
else if( nLevel > 107 && nLevel < 120 )
; q( ]7 m' M, t: c) x9 s# s
dwTmpSkLevel = 5;
: w$ D! @" D7 T) m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* q0 ^, Z7 D# a1 L/ K
{
6 w, r3 \6 M! m4 z0 P. Q6 u, D3 q
LPSKILL lpSkill = &(m_aJobSkill
);
: f0 @; r4 K/ k L; P# l, B. n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
b# H. z: a; S2 f5 x. v; }% {
{
, \$ M0 F! J+ Z" G" P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# e, o3 r# p0 [7 `7 `/ U9 J
if( pSkillProp == NULL )
( J: q i' F: K$ d) c1 m
continue;
! b" j# I- k* \0 B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( \4 v$ d O! Y) p7 ?1 A
continue;
* ~& s' F; S2 }4 w# I+ Y
lpSkill->dwLevel = dwTmpSkLevel;
1 F; I/ V& F; \# L3 F
}
* N, `1 ?, X: i7 W* A
}
7 C& S2 _; N+ H; X4 B9 |/ u/ E
}
% B5 U$ @1 G8 H
else if(IsHero())
- d2 L5 P4 v& f( \5 d: C! n# f$ ?
{
" T; b% t/ k9 d L# M; g" A; Z) X' s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; K- S5 ?& T/ h4 u2 E2 b$ o
{
0 E9 N& ~0 m& P, m' ~6 |2 [
LPSKILL lpSkill = &(m_aJobSkill
);
' x% U' L2 Q- P+ b+ [' `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 g! ?* ~. \0 S/ E% M0 L0 D6 c
{
0 {' a' p' |1 P4 ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) t! _" y# F7 B9 S! F
if( pSkillProp == NULL )
5 t) G ~) e( p) F$ k
continue;
9 T" R- P- y( y% ?$ J) Y; D& c8 o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 `6 A3 y. E% u! b* u4 U
continue;
0 B9 S: Y" Q$ w: k+ m) q) T
lpSkill->dwLevel = 5;
' p h% h0 Q7 c+ r! b
}
& m% }5 N1 g: a% S# ~: P) w
}
3 h! I7 _' l- g
}
4 c8 P7 r' E* ]) m
else if(IsLegendHero())
4 A R) N6 v# e5 m
{
' ~& W1 J+ L( ?3 c) Q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
d; k- P% I0 [5 _( v. J: q% x
{
% t0 u+ s6 p* S( R( {
LPSKILL lpSkill = &(m_aJobSkill
);
/ Q6 ?2 s5 E4 L% V
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- `! W6 ~! }' N6 E0 \
{
7 p! u. n i; ?0 p) C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ m+ C/ L; _9 @/ B
if( pSkillProp == NULL )
, U% R+ k* W W8 ^6 g% I
continue;
( ^3 F; K" q3 n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 e5 |4 _! W" i5 h
continue;
( \' L, J6 h* u% J3 Y( E
lpSkill->dwLevel = 5;
+ a; k" B. k1 X5 k
}
& m4 ~$ M% g: x" q! b
}
. w& i$ Y I9 m
}
) Y$ _5 M* }2 K! j
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, ]' L2 G2 D4 V0 V
if( bGamma )
8 K c! B( g1 {! m
{
# T' r" o/ z& j" O, O- i
m_nExp1 = 0;
# L" k$ Q! R1 B" v
}
1 J; T' C* a7 A5 b
; H$ R2 I+ k- C( f6 N" D, s
( (CUser*)this )->AddSetChangeJob( nJob );
/ @" X5 j) ^' h+ b& v
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 i* o0 G7 t6 Z5 T: |% m2 a
, z$ o( p% t; P& P
' R% x8 C; J5 [- Q) ^
#if __VER >= 11 // __SYS_PLAYER_DATA
! [- X7 h3 p: b8 Z' K1 T
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
) a+ b& b) U! ^- t v. p
#else // __SYS_PLAYER_DATA
' q3 N P2 l) B0 L
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* p$ d5 q' O- {4 L' e
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ h9 Q: t$ {5 t2 g( l2 D; z
if( m_idGuild != 0 )
3 T2 e8 u+ ]7 a& ?
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* v6 |: j; C( Y4 ^! V! k6 z
#endif // __SYS_PLAYER_DATA
1 ^0 U' d |3 y4 u _% i) K, p
SetHitPoint( GetMaxHitPoint() );
0 J X" E0 [% {+ O9 J
SetManaPoint( GetMaxManaPoint() );
3 B& s( Y4 z+ E2 c+ D' j' {
SetFatiguePoint( GetMaxFatiguePoint() );
# j" n4 w7 H5 R4 o3 u
if( nJob >= 1 && nJob <= 4 )
6 t2 Q: d! E6 W+ C0 I) ]4 E$ {
{
' a# k ?( }; e1 i- |
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( x0 M: g. w3 S0 {
m_nRemainGP = 28;
f6 ^) R- `1 K Q N; M" o5 X* X9 w
}
5 p& s4 p" J: M
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 }! F, c0 M- m2 o4 i8 R: I
{
# c& t& m6 C4 s$ e% a+ R2 }0 Y3 q
m_nRemainGP = 118;
2 K n8 P) X; d8 L
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ c' b( [% ]) s) h0 w
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. t) w; ?( p9 b4 D# }- _& v
}
( ^6 S2 d0 J* I( G8 R! { w
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 {. W, d2 j* A
{
1 J( R" [" X$ F: o# f
CItemElem itemelem;
% j! V; h# i$ X: Z w# r. M6 q
itemelem.m_nItemNum = 1;
$ @0 N2 ]* l7 M+ } }( a, @: `$ N
itemelem.m_bCharged = TRUE;
& E8 ^" F# y) b9 r6 }9 T: u: ^
BYTE nID;
+ z9 ?8 A0 v6 g" {+ g
5 O" G4 V8 X& g% y
if( nJob == JOB_MENTALIST_HERO )
1 l7 P7 y' X' ]+ J
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
7 w: J" v5 ]1 A2 U: y. d
if( nJob == JOB_FORCEMASTER_HERO )
/ D6 c6 m5 h& {& o
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 C8 n% b. r1 [) w a, H
, R) `. y* O1 d+ G: l2 X8 f R
( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 H8 H5 F; v5 I8 y R2 y& o9 \
}
, I* G/ H* W% n) N8 \5 \9 c' k7 e
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 E6 ]3 f! \/ G# o7 b4 |
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' A; g8 g2 i5 Q$ \
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* K+ i, l5 p6 N6 f$ L' Y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
H5 V o' E0 C7 J: ?. D+ ~
( (CUser*)this )->AddTaskBar();*/
# b6 i8 A4 U. t9 z0 H
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ X9 y4 z) Q% e( U) n. z# M# P
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
; N' X5 D+ g; ~# M: V
((CUser*)this)->CheckHonorStat();
$ ^# F- D! q7 O# G
((CUser*)this)->AddHonorListAck();
, Y2 b* C% m& z3 L+ R8 b
g_UserMng.AddHonorTitleChange( this, m_nHonor);
1 \9 |6 }7 `, B$ Y% R( L6 L% ?+ i% l
#endif // __HONORABLE_TITLE // ′Tà?
. i3 p3 a. `' i7 R
}
( ^9 T5 w9 I, ]# Q" }
#endif // __WORLDSERVER
- g: p4 Q5 f$ _3 L) F; Q
}
/ R0 R5 ?# |: V4 j' t; ]1 Y
: o, X2 b* `' r( C# a7 |1 Y: G: r2 w9 W
然后你进入functextcmd.cpp并添加以下
3 u* z1 b) U5 X: s0 M" }
1 Q7 b4 y, I5 }% K
代码:
% F3 |$ G2 Y1 }3 L
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
& N& g+ n* g8 q! d- \& ]
下面插入
' q/ ]% ^/ ~) `" N0 c- D& i9 f
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
( e/ Z! L, ^+ k0 C* U) y
" V" S8 w; R$ S) e
然后你去
* j' M: y8 n9 a' d7 a3 w
8 b9 a' G! U9 d2 U& y9 v
代码:
6 p$ Q3 V1 [" `0 X( J7 E
代码
% u7 @+ h+ Y* k8 W: Q: z
BOOL TextCmd_ClearPropose( CScanner & s )
; r. u4 @+ [, [5 c, Q
{
% N) a4 R6 U+ t7 ^
#ifdef __WORLDSERVER
F) c5 [+ ]. L* V( A* |3 h5 B
CUser* pUser = (CUser*)s.dwValue;
7 ?) i: l+ }! ?
g_dpDBClient.SendClearPropose();
9 d$ b. C" p' }9 M a, D
#endif // __WORLDSERVER
7 q1 y1 y' {) @! F% i/ n7 M: B% {
return TRUE;
$ ?* g: f8 r1 j* D
}
1 K0 Y% Q4 Y/ t1 u: |0 j: n- q
下面插入
6 ]; R$ L2 J. W% `# w' j
BOOL TextCmd_rebirth( CScanner& scanner )
2 k ~3 x3 H P
{
- m# a8 u5 |+ S& `! q
#ifdef __WORLDSERVER
~- x3 G {5 k: W; q g
CUser *pUser;
/ C5 A/ y. [( i& ?% K
pUser = (CUser*)scanner.dwValue;
! N3 e8 Z! }1 X* Z1 W( W
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. X8 n6 `% c$ g: ]" i
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; g$ m+ N: K( N
else
* |/ f% S' N9 X) c- o2 B
pUser->AddText("你还未达到重生条件!");
0 M, Z+ ` P& c+ Z5 q% V/ s
#endif
2 F6 l+ u* d, W1 N/ C
return TRUE;
5 [4 i( W# v0 o% W7 r
}
s$ U# p0 M/ f" h" x4 D) `
) @2 ^: H. U8 C9 C5 u8 J3 @* ]- T
" t! ^2 w( C; g
4 t+ R7 [3 |0 i# E
6 t i, P5 v0 {: w1 G
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2