飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
1 v2 E% ]: u6 @8 C1 C
5 }: U9 K1 p* C5 e
Mover.h
& X$ \) r$ M: K: r+ {
代码:
3 u$ ~& M# H) z5 e9 w! @
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# G9 d3 B* D1 ?% i! n( W3 D
+ M. V/ L7 Y/ g4 `# v8 b
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 ~) i4 m( ~6 ?) `
$ W" k- }% A# m
然后你去mover.cpp添加
' Q( v' O5 C. @4 J7 z9 N
2 Q3 b- F% e, e
代码:
, r/ d O" r4 H# S4 N: K8 Z( m- ]! E9 O
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 c) a3 c2 B) H) N! n4 q
{
0 f* ], P0 @1 f' h' ]. Q8 [
#ifdef __WORLDSERVER
3 L" d+ B0 K# E* h) O
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
6 F( C# _8 E2 J7 ^# U
MoverProp* pProp = GetProp();
# N1 b. K7 p& O& n) S
if( pProp )
( l& N) N$ W9 t, n- {
{
3 b& ^( R9 |$ W. _
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 k- x3 P) {0 f/ g/ }6 I) s( ]2 f
{
5 E* T; I& @3 ]# ?3 f8 D% O9 n& ]; R
AddChangeJob( nJob );
8 U2 f3 y0 G; x6 W( X
}else{
. |, F6 C. |# o v+ w+ E
return;
/ Z% b& d5 P: l4 ]
}
0 ]: D" v8 D$ z; {2 v
int nPoint = 0;
8 }2 M' G. @% s% y5 c) x
if( m_nJob == JOB_MERCENARY )
' ~+ H' ?. ^* T4 U: D
nPoint += 40;
) |/ \ n- | {6 A6 S* o3 J
else if( m_nJob == JOB_ACROBAT )
( k0 {* D7 f }! ~' D9 p+ o; V4 {
nPoint += 50;
- c2 `! y h6 x
else if( m_nJob == JOB_ASSIST )
S, N+ l) a9 _/ m% G" t
nPoint += 60;
( G1 t! e- r$ b9 w! l* }" T J7 Z
else if( m_nJob == JOB_MAGICIAN )
: V; A- c3 r/ ?6 q& [
nPoint += 90;
$ A( v2 j+ ^- K' ^% J
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
" `% g( ]( n& F' d$ g/ t+ K1 K
nPoint += 120;
6 ]9 t ?2 ]/ U
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
- a7 ~# E( W. z( S) T# i% G
nPoint += 150;
2 x5 B- v( j' m# J
else if( m_nJob == JOB_RINGMASTER )
$ n }% i0 @, K2 K. Y
nPoint += 160;
3 p0 s- t0 i% C& S9 g! \3 H
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- g/ N' C, ^9 Q
nPoint += 180;
& n- M+ o1 A; \+ W& L- j
else if( m_nJob == JOB_ELEMENTOR )
6 ?% B) x1 A/ M+ |; ?
nPoint += 390;
' k; f% H2 n( F- {0 r V9 ] @
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' ?! R& E; A0 g8 {! k
nPoint += 120;
+ S+ \( {1 M @* B1 D0 j' D+ [ y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
1 ~- S3 t' j+ K: ?5 m% @: l9 Q& P& E
nPoint += 150;
: v7 X) L; D1 `' _! [
else if( nJob == JOB_FLORIST_HERO )
# v g1 _' `5 E$ J5 M
nPoint += 160;
3 C8 V* T% ^6 Q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 k0 x- Z& d0 |$ M! f1 ~
nPoint += 180;
+ ?+ i/ H% O6 V, ] ~
else if( nJob == JOB_ELEMENTORLORD_HERO )
* v, T0 u& _# X( y" H3 d6 A
nPoint += 390;
+ I7 x! R2 g7 s9 c- B* {
5 X& u4 t) i8 D! F( z" P2 a- _( G$ ?" \
AddSkillPoint( nPoint );
& D: D3 r6 [- Z2 E. p/ k
m_nLevel = nLevel;
' c- O0 ]9 w& p
h# c/ f9 o" ?) E- L
SetJobLevel( nLevel, nJob );
q1 C1 U' i0 s9 D
m_nDeathLevel = nLevel;
* @ Y# h. W3 ]
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, J0 @2 ^# P" U- k/ p
if(IsMaster())
4 l0 c, x7 R6 q( r* o9 @8 {3 k
{
! L- A: e: P, C l; y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; u5 y8 K2 @8 C; E
if( nLevel > 59 && nLevel < 72 )
7 R. p& a, {% b% h1 n
dwTmpSkLevel = 1;
& \" K- w2 k" a1 h c) K C
else if( nLevel > 71 && nLevel < 84 )
/ I) \6 c8 L+ n
dwTmpSkLevel = 2;
! {! v: H1 B9 {" d* H
else if( nLevel > 83 && nLevel < 96 )
3 g, Y" h. X0 G& [) ]
dwTmpSkLevel = 3;
% k: C7 Z" t7 C* ^) `+ s0 |; }: k
else if( nLevel > 95 && nLevel < 108 )
7 M; Q! j* A6 t% r
dwTmpSkLevel = 4;
[8 b9 X: `9 n* u: z
else if( nLevel > 107 && nLevel < 120 )
1 b0 d5 v7 D' h+ q4 e( k1 G8 H
dwTmpSkLevel = 5;
( o3 E, x! O! S2 @
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* q0 r3 M, i# D- Y% d0 ~
{
' e# V" K. ]- R3 n+ N' w
LPSKILL lpSkill = &(m_aJobSkill
);
7 d+ i. q; U q; T7 f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% }; r8 r9 n" p- i
{
% u2 S5 I4 _" E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
V5 ^- i. F( _0 V" B8 s. |
if( pSkillProp == NULL )
7 ?) \4 l( S! ?1 H1 e1 _+ e8 n. t
continue;
, x( t& [5 W5 M7 `' b4 x. L. @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) e: C* n; c4 D' p
continue;
- P. ?8 R/ b* n& O6 Z
lpSkill->dwLevel = dwTmpSkLevel;
2 |+ B2 Z& u& y$ ~( k- m0 k
}
8 I# v! E( m. n! O4 Y& \+ M' L
}
* _# Q) _: ~1 l
}
& J- h" Q% U1 w! c
else if(IsHero())
1 d% Z) g; |9 q/ q% ] g
{
/ T* ~; ^: U9 L" s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! u) t+ s; g8 o
{
$ P# s7 Y" S1 n8 \+ _- b
LPSKILL lpSkill = &(m_aJobSkill
);
: y- u) l; P1 |) x2 o0 r2 x+ [: a
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 C5 I4 \# i3 U0 x0 B
{
+ s3 z6 a: D: M! P5 {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; h2 }* y% u9 D2 w) _6 o ^
if( pSkillProp == NULL )
: |+ U7 w! i, K6 g
continue;
5 u; q7 h1 L8 F6 P: v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) W1 @1 c4 ]* R, y/ W% _+ Y
continue;
9 [; O' O8 \' y9 m0 n
lpSkill->dwLevel = 5;
. s3 m2 k$ J/ C) W8 T. U
}
}& I: v; H# Y# s! F4 s
}
4 E5 e% ~# x, |. [, w+ j
}
7 s$ Q% P2 Q$ G" c; c3 w: l- ~
else if(IsLegendHero())
( G$ Y. x# b1 z: v+ K& Y
{
0 g* I' i8 X# X; O0 L) c. q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 G+ M: T1 l" @. S+ X
{
6 t$ a( ~& Q0 N+ r, A
LPSKILL lpSkill = &(m_aJobSkill
);
7 f* [( s1 L3 v$ s0 p, I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* `6 G: v: j3 q& S
{
: e9 z2 \/ q8 x" b/ j# W" o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 H U$ V9 y9 n7 X
if( pSkillProp == NULL )
+ h/ Q6 Y/ J" z" s& d7 F. O
continue;
1 W. h* U( ^& U+ J! ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 ~' T" [. R3 y5 x) f: |7 ]% J; e) G
continue;
?1 v+ i5 c# o: ~$ {8 H! U
lpSkill->dwLevel = 5;
7 _4 d1 h5 [0 e* x# z
}
* z& g7 F4 H% o+ H
}
3 s5 [* {/ C6 v( I% F @! m* X
}
5 A, i6 K Q3 M* F# c Q% x
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; [ @' u' H9 s& o! g
if( bGamma )
. F0 a( E9 [" a) [8 l
{
Y" M- h' I# V( y$ h( l) o
m_nExp1 = 0;
4 e. g& d* U1 E3 Q1 L
}
4 E9 P) X$ h/ b: s0 W# @% m
+ f* C4 `0 `- x8 M! j
( (CUser*)this )->AddSetChangeJob( nJob );
# Q8 R# ^) @/ @, X( g0 z4 B
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ ?5 K5 A. S* L0 `
- t1 G/ n7 H6 [) g- S7 f" a# ?
7 d' m5 C8 \9 @- h' _: w" z5 Z
#if __VER >= 11 // __SYS_PLAYER_DATA
$ Q' ~5 h5 T6 Y! c. f
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. E: r1 \+ F5 P! q( J `. v
#else // __SYS_PLAYER_DATA
% E' l: F4 q2 E9 T7 _; ^% _
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, i, | U4 R6 c; `8 \* s7 r, i, V0 ]
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 N% @2 ?. O/ M# o( k8 {+ Z! \
if( m_idGuild != 0 )
( k3 Z& b) b6 H3 R. n% e
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" F+ o8 s( H% ~0 {( A
#endif // __SYS_PLAYER_DATA
) A& k9 B; j* R) `7 F! \
SetHitPoint( GetMaxHitPoint() );
7 I2 _9 S1 O1 y+ D/ Y
SetManaPoint( GetMaxManaPoint() );
' U* L9 Y3 V4 K
SetFatiguePoint( GetMaxFatiguePoint() );
1 t b1 |" z' S& P: q" A8 j( _
if( nJob >= 1 && nJob <= 4 )
* E1 X( \! E4 {. m U* u
{
8 ^0 [: w5 O* X% N6 o9 t
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% |. q9 k3 U' O7 u5 [
m_nRemainGP = 28;
# j7 U) @, \9 @8 Q n; `
}
/ K1 `. ?$ G3 ^" i
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 w% O% Z2 E8 o* C- \3 K3 Q
{
8 V/ k, U( l4 F$ V) r a' m
m_nRemainGP = 118;
: r' O& ? T' E, W8 R
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
( [6 @5 `+ u ^; _* R# a% X; N% T
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 c$ D. ?- Q, s# q( J& ^
}
* L# v; q! r' p
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ G" @; r: ] R z7 T; f$ c) C
{
' ]2 Q; K3 d0 [) _
CItemElem itemelem;
/ ]$ i. N4 J- x
itemelem.m_nItemNum = 1;
- N. o1 [4 D7 }( i
itemelem.m_bCharged = TRUE;
$ u7 {) |5 x4 h, g- W0 r
BYTE nID;
, V" a* f, D# P
@ t3 C( j8 ?* \5 u
if( nJob == JOB_MENTALIST_HERO )
$ E, F! M) P2 z* T+ }( j
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, H. S4 g) c, n H
if( nJob == JOB_FORCEMASTER_HERO )
; a6 s+ k5 O: H3 n4 a5 R U; r4 Z0 H; h
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
5 f$ C5 u4 q: Z5 c
+ u/ O9 @ U ~' `4 _
( ( CUser*)this)->CreateItem( &itemelem, &nID );
+ f3 l8 g R! S. l/ z
}
3 O- M7 [+ O" h+ J5 V' h$ Q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
$ Q# Y5 V+ M0 Y d X6 s5 q( N
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ | P4 x0 m) u3 i: a1 C5 G
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% k0 T5 x& e! @' H5 E1 o: ~3 ^
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
) a, N0 _( I# F
( (CUser*)this )->AddTaskBar();*/
! I$ \( e) m5 \" K: o1 p# d! S( k
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
% m' R6 }- J" e+ c3 R
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
. G4 s* j1 w& D7 E6 o6 `
((CUser*)this)->CheckHonorStat();
# y9 r5 ] E0 B f& A5 {; k
((CUser*)this)->AddHonorListAck();
& m1 I4 P4 v; J ^ {$ g5 v1 y
g_UserMng.AddHonorTitleChange( this, m_nHonor);
: w+ m7 m2 \2 B8 ^; N, h/ b" G {
#endif // __HONORABLE_TITLE // ′Tà?
4 Z: z+ z7 k. R3 N- M
}
& F! m' B1 p# S! |6 U6 q% \
#endif // __WORLDSERVER
7 t$ `* x# b4 \4 x F, ~
}
+ H% L. G2 I) Z! Y
6 N/ y+ j" ~5 N, i( C
然后你进入functextcmd.cpp并添加以下
! f0 N+ \8 |9 k6 [4 X' E; ^& ~$ t
6 @; }) k! o: `+ G
代码:
; E0 ` W U+ h6 D. W
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% ^* L; z) Y Y0 R e: u2 H1 I
下面插入
, k1 {2 B, \ b" _) T9 |
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ P" _+ I/ n( a0 H
3 ^6 ?/ @( }4 S% W% B, T/ o
然后你去
2 `+ P/ i- B! n1 a8 s. j9 v! O
; d! d; S& f' d* B
代码:
+ Z8 O' S8 w W7 B3 x$ _' F
代码
- y/ D; @: t( Z U- J/ y1 W
BOOL TextCmd_ClearPropose( CScanner & s )
6 s7 P9 K8 \: W$ a! i# L& P6 d% w
{
8 e& P' a y1 h# W z
#ifdef __WORLDSERVER
$ e; L& o. i+ }$ N9 r3 H0 D
CUser* pUser = (CUser*)s.dwValue;
K4 m4 p* \7 k" W7 T1 c. S- [$ `* b
g_dpDBClient.SendClearPropose();
, ?$ g5 P2 y- U: {7 [
#endif // __WORLDSERVER
" t# z4 y- ?$ P5 Y3 p
return TRUE;
5 |4 Z/ Q* h+ K2 x, y7 k% I
}
& a1 O& B* d: m0 z( I( O
下面插入
% r# M( n, F: V9 E: W( j
BOOL TextCmd_rebirth( CScanner& scanner )
5 n1 `- |8 m5 u
{
' F7 y1 V3 Q; E" o" s
#ifdef __WORLDSERVER
i9 m3 Q! o* b$ _
CUser *pUser;
/ ~( w* u" d6 F( s" G
pUser = (CUser*)scanner.dwValue;
1 u8 H- I9 n! X
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 S7 v/ N8 }" k0 t6 K, K C+ [" S
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" a0 ?2 s n- u& I- v. j+ [1 c' d
else
4 X4 u: M6 U* w5 r) a
pUser->AddText("你还未达到重生条件!");
# I# [2 R* J; r: \
#endif
) S2 P1 |8 @7 I" p; u* X
return TRUE;
3 h% E+ z/ y0 E8 _7 _/ L. E
}
4 E4 M3 f! J1 _( Q8 `- J
' ?$ n* R+ H- P1 r0 {: ]4 d8 y
! T; Z/ @1 J* y0 y
. f+ b- ]3 a# B8 f
( u2 A0 X7 W; H: L5 o0 Z
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2