飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ Z- y: a/ g! Z8 `; w5 a# l3 l1 h
+ ]' p# h: p! k- O; p
Mover.h
9 V. Y; u4 P* H. s$ j8 ^
代码:
) K" j: o7 O0 q/ z$ h7 P3 D. D, F, H* ]
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) n$ _. _5 j* B2 C- } y/ c
# F* H8 n! I& p0 B& z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
* g! G! ~7 g. d
( j4 x5 Y' d* n* w
然后你去mover.cpp添加
1 K0 s3 d& T: W5 d+ a$ N8 r
2 m8 I+ Z6 B; }5 X7 D% F
代码:
* j6 _9 a. E( b# Q1 @
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 b" k& L7 z5 Y9 H7 k
{
" O6 B3 _( l1 \ {5 r, h. P
#ifdef __WORLDSERVER
5 b' u: Z& W; h" N
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) P& f- n; x+ j9 X6 X
MoverProp* pProp = GetProp();
# B a4 {3 T) p: F/ Q3 n+ p
if( pProp )
9 y, R2 }; g) N8 i8 [# J+ y1 {* T
{
5 w% |9 F5 x2 E# g3 t- U( I7 B
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' ?/ `% N" Q/ c+ W' u
{
3 Q8 C8 L5 v) |, g8 E. w
AddChangeJob( nJob );
/ |5 @6 H0 q, }2 j* @4 m
}else{
* R# l- N$ _/ V# V1 X8 g
return;
$ K3 E, S3 {& N- @
}
1 l6 V: `5 |- u) W/ o' o, A
int nPoint = 0;
$ G% O6 [% `/ U$ ^8 L0 B5 u
if( m_nJob == JOB_MERCENARY )
* l7 l$ u, ?' j4 N/ L
nPoint += 40;
9 F1 c; s# F; @, J+ }5 x, s! S
else if( m_nJob == JOB_ACROBAT )
! k* Y' R! P+ Y! s( @; C& ?: v4 G
nPoint += 50;
; C2 P% j+ \4 e p- m/ z9 y% ?
else if( m_nJob == JOB_ASSIST )
6 o' Z! A6 I j
nPoint += 60;
. S8 e" e" \1 t8 M y# q
else if( m_nJob == JOB_MAGICIAN )
3 ]6 T% ]9 Q% z1 W9 V8 U" `
nPoint += 90;
8 W% A u0 @1 P
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 T, o4 V8 _+ Y5 f" E# R1 N
nPoint += 120;
: u b9 f ^; e. F' z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
j$ T' @8 I: A. V: h" L6 Y
nPoint += 150;
) K& B' T" e6 n5 P! |
else if( m_nJob == JOB_RINGMASTER )
, j" y/ G0 t; m i" K
nPoint += 160;
2 x- G, u7 Y9 |" W1 E6 A
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 v' J' O5 I: q0 r
nPoint += 180;
/ Y$ f }: Y" \- @$ N3 w4 D
else if( m_nJob == JOB_ELEMENTOR )
: ^- J$ G4 z4 b8 E- G7 N
nPoint += 390;
8 {8 ~5 i9 n# l9 Q& P+ Q% U( p y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* b0 S) N' O0 c0 b: v
nPoint += 120;
( x' ?: [' X/ k/ q1 \8 ?
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) W# J. m/ ~, j- i8 W' g4 R7 I% P! y
nPoint += 150;
4 N4 j% h r* c7 z+ @6 H' z9 |
else if( nJob == JOB_FLORIST_HERO )
) `2 o% u4 s E% q
nPoint += 160;
' A- F5 {% |3 G8 a8 j- e% ]
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
* f# n. N( w& ?
nPoint += 180;
$ K* ? ~) D: q& I' X
else if( nJob == JOB_ELEMENTORLORD_HERO )
3 L/ q4 g9 G @" ^9 f4 W( O) D
nPoint += 390;
[9 ^4 ?; U* @& }
- Z7 P8 L! _) G# A! Y3 |3 U4 F- g
AddSkillPoint( nPoint );
: N1 a) z y5 k6 p+ E
m_nLevel = nLevel;
9 F2 y/ X2 f0 N& h, v
3 [! {6 S& S0 I' g$ ?4 u' v h: N
SetJobLevel( nLevel, nJob );
9 j( B; x, C8 R7 g6 S; P; q
m_nDeathLevel = nLevel;
6 H* @( \, w# ?, h, t
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; H& _% N( ]7 \/ h- P0 W+ T, _
if(IsMaster())
1 F2 M) _. u% E5 F5 ^( P
{
8 {8 ~5 \9 C; x9 w0 G9 v6 |/ u' L
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% L5 |% |+ i( @; ^
if( nLevel > 59 && nLevel < 72 )
+ D+ ^( \2 u4 j4 N
dwTmpSkLevel = 1;
6 y% Z0 v2 [% c5 n; v8 V$ X
else if( nLevel > 71 && nLevel < 84 )
. x' U/ Q: \# h: l2 E- [1 f; B
dwTmpSkLevel = 2;
4 M2 O5 W3 a1 R3 b. g" k" b9 W b
else if( nLevel > 83 && nLevel < 96 )
( i4 L- p1 l u. x# M
dwTmpSkLevel = 3;
" V4 b. v* _' t
else if( nLevel > 95 && nLevel < 108 )
5 V% Z5 z" z& b/ @
dwTmpSkLevel = 4;
" U3 D/ `( d/ r! U6 u& W3 B7 \
else if( nLevel > 107 && nLevel < 120 )
D7 P( D6 J1 G$ U0 k9 |2 u
dwTmpSkLevel = 5;
8 V$ Q3 [: ]6 U5 F* w
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% Q$ m+ H! j: W1 q
{
. A" Z, R+ \' ?: G& {4 P2 \ Y
LPSKILL lpSkill = &(m_aJobSkill
);
7 L+ K3 [. t4 n* f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& I+ A) j9 Y: u+ M! l9 F, n. t
{
6 o f& {3 t: T5 g0 y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 S% Z- ?' A. s; l- b0 M
if( pSkillProp == NULL )
4 C6 d& X( ^" Y+ o' A
continue;
% z1 J7 N p4 D! b* V7 V+ o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, C" t8 A, _: T, `! H" p
continue;
' [. j# ]' k9 g
lpSkill->dwLevel = dwTmpSkLevel;
% F: v: ]5 d' w8 y# b. P
}
8 o( X& z! r& l$ h/ I! I& F
}
9 J/ l8 f; `7 |8 _* a% O
}
- t0 ^3 J. g, `7 a7 u
else if(IsHero())
, o! A# O! w- s' `: a: z# U
{
5 e: }, X! d. A1 h" q3 o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 M8 j1 Z* Q/ ^6 N) [6 D
{
- t6 l H) H9 s4 n) l
LPSKILL lpSkill = &(m_aJobSkill
);
& N1 R( Z1 L5 K' J
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 \% f0 ]8 G" ~/ ~6 o1 K% d
{
1 r% e8 h8 g8 [4 B6 ]' [2 C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. N5 q. l! x( ?: K5 m: N7 P- G
if( pSkillProp == NULL )
% ~. G% ]+ ?) H) ]% \, r3 T
continue;
- o: `# e$ d1 m' C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% @3 E# C8 H1 i
continue;
y7 S* n7 }- z8 }
lpSkill->dwLevel = 5;
* A5 p% ]. ^4 {4 O# R3 A
}
8 c: e4 e1 e+ H( O' R0 X5 }! N
}
: B% ]$ M+ E7 R+ |2 W' h, d8 z7 X
}
0 S+ M9 d: C, Q0 _
else if(IsLegendHero())
a( m, ?, O+ q' s
{
; e- ?, Q0 c/ O" n
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 K% K* r7 d* D% K
{
! |3 i1 v1 u, P* s
LPSKILL lpSkill = &(m_aJobSkill
);
* t, ~# I( C Z2 I5 @* g* q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
?* @, G( a; a: ^/ h1 w; H3 D+ S
{
1 x1 U4 }- K2 F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
j, o& h/ y- t/ b. z) C1 L
if( pSkillProp == NULL )
: b8 c i! @5 K
continue;
+ h( G$ O) z' C& K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 |9 x0 z% ]% y6 A8 [" d
continue;
! s) Z6 `# i; ~2 h
lpSkill->dwLevel = 5;
( o( G# u4 h) m) B* Y6 e
}
' U- \' p/ ` t
}
1 b, N' D* N$ g
}
' U2 X/ o4 e6 ~: ?
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
w7 c9 v3 \3 ?% Q/ g: ]
if( bGamma )
, R& o/ i$ D+ y" F
{
1 Y# R0 y$ Y9 V, t4 \
m_nExp1 = 0;
# D. {0 q8 G* E$ y- g' i
}
2 K3 `+ g$ v8 A8 R- e
2 y4 n4 d6 z, J9 { i
( (CUser*)this )->AddSetChangeJob( nJob );
9 N& v/ w& `7 j9 R8 f( j6 A7 X
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) S7 g% {( n& H2 s
2 y" z0 q. t6 f9 f5 j) P" V
- |. {5 r+ q1 e% u1 O4 \4 w( y
#if __VER >= 11 // __SYS_PLAYER_DATA
4 F5 p, q8 O- f
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' X `3 h+ R9 }( M
#else // __SYS_PLAYER_DATA
; f0 X, H/ L( f/ t$ R
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ G0 s$ r* ?+ R0 r4 j
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 M, c- s8 \6 U: h+ c% o
if( m_idGuild != 0 )
/ G4 e+ v1 l2 N+ i( X' V$ O) y) {
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, @; r& d' I! {. F; k
#endif // __SYS_PLAYER_DATA
/ Y3 ] J1 m/ _) P
SetHitPoint( GetMaxHitPoint() );
) x) |$ X) E1 Q
SetManaPoint( GetMaxManaPoint() );
% L* K' L/ S8 m4 Q4 d! R1 @* R
SetFatiguePoint( GetMaxFatiguePoint() );
5 ^1 S( Z! X' e8 J7 b5 k
if( nJob >= 1 && nJob <= 4 )
3 q( L4 {$ w. [3 w
{
! n) U- y# F' t% U- ?: ?& c
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; a0 y' u. \. J) Z4 M) ~+ H
m_nRemainGP = 28;
- w2 A7 S% _% ]' l
}
) j6 e/ H* a) o: h' j% B
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 `3 }9 [/ c! J3 n5 ?) k: ]' z
{
/ Q. ?( |) a) E
m_nRemainGP = 118;
" U: s5 o# X" }( |; W {
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
8 w# K) |: }* S( ~; J
m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 C' f* R: L% A8 p
}
0 v9 E# j: K2 U! j. \1 h+ {
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 z- R5 e0 i7 l: R+ `3 O7 u
{
/ n4 e- ~* P. P4 ^/ }# u
CItemElem itemelem;
2 T5 \/ \+ N9 F$ x4 W: {7 H
itemelem.m_nItemNum = 1;
$ {. A* ^& |% @1 s3 ] W* e: s, f
itemelem.m_bCharged = TRUE;
( J- g* _* b/ g D
BYTE nID;
, v, g& |8 @3 Y- r* L
; o7 j% P1 {2 D9 H$ g
if( nJob == JOB_MENTALIST_HERO )
: C* j2 J* h" Q% v, k
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ \; H, [' q9 X5 p3 v4 W. \
if( nJob == JOB_FORCEMASTER_HERO )
) x$ |& j: Y. E% ?
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, K M+ Q( B) n) V4 B( ^/ _2 M
4 n' t$ x' _! I' x0 ]% o8 b
( ( CUser*)this)->CreateItem( &itemelem, &nID );
. d* n# I+ e9 m; G6 u
}
, U( u: ?0 `/ v ^8 e( h
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 K' B; {/ s n' L
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& t+ L; H7 z+ t' z6 c; X, {% E$ @
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 U$ U6 y% M2 R3 @; d) Z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
X& G& h+ R' Z( U- _4 E; L
( (CUser*)this )->AddTaskBar();*/
/ u- M9 A3 Z- q+ g
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' j$ L( a" q w) o5 o( t: d" v
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- v5 \+ k( f6 e# s& k1 d) |0 R
((CUser*)this)->CheckHonorStat();
, F- ^9 O2 n5 Q9 x) y) ]
((CUser*)this)->AddHonorListAck();
* ?" u/ I/ c2 q2 v) d) E
g_UserMng.AddHonorTitleChange( this, m_nHonor);
* q. y$ Z. \! t; m/ B. K
#endif // __HONORABLE_TITLE // ′Tà?
! i1 j* B/ |2 e% T
}
' w! ~, W/ @9 [
#endif // __WORLDSERVER
F9 c, z) P, c6 w' p5 j/ T+ l T# m+ U
}
! ^: l2 E/ }; `
0 ?5 a( R* [- Q, c/ l* v
然后你进入functextcmd.cpp并添加以下
- Z! t3 @1 `# g' @- R' W
( {3 M3 @* I+ v0 N) E, R. `
代码:
: r! t V9 S% ^% S2 F, p
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! l6 a6 s! W* n7 d. B6 @2 M
下面插入
! E/ W5 n1 `2 E/ o0 T
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! b- y9 `. {& v9 K
t; i' J5 p. }0 P& ~
然后你去
9 y7 F; B% F+ d7 D
' n5 @5 W) Q0 r# V0 X
代码:
) n" l1 u4 x4 c o$ K8 R
代码
1 [6 y U3 x' e8 {- [ R
BOOL TextCmd_ClearPropose( CScanner & s )
7 r7 ?$ B; q; R# m+ Q% K, {( C( u
{
, k9 ]( K; S' t( F
#ifdef __WORLDSERVER
9 O) }5 n( v) n7 N& A- S3 U3 o4 l
CUser* pUser = (CUser*)s.dwValue;
0 @7 N; p/ M2 b* W |" h
g_dpDBClient.SendClearPropose();
% ]; N9 l- M% I8 c k$ O. N
#endif // __WORLDSERVER
7 ^9 X8 ^" k5 l/ B" U! p
return TRUE;
; X6 R- n# p/ ?# r! z
}
" t V" t& D% S7 m$ V* R ?' i: k: \+ Z
下面插入
Q' S& ?/ J3 C; T( k9 H
BOOL TextCmd_rebirth( CScanner& scanner )
( X9 ]7 M4 [3 v. D1 O1 }! h a
{
0 |) D/ d+ O* w
#ifdef __WORLDSERVER
& m2 y: K5 ^& a" `
CUser *pUser;
: k4 e J# g+ Q# U# _
pUser = (CUser*)scanner.dwValue;
$ Q- V8 b1 v" d7 {
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! M' I8 ]& Z4 X3 V2 ^5 Q! Y U6 z( W. b
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
) S2 k s2 T0 N# A8 S: [/ U5 v
else
( n3 P4 Z# J9 f$ S H
pUser->AddText("你还未达到重生条件!");
" E8 t8 P9 o' F7 V
#endif
9 D8 ^3 _( e* Y% C- w; j7 J* f9 k
return TRUE;
6 O, S0 E' U) j
}
" {, r& v0 k- _9 A) z1 q8 {: t
3 |2 o1 \+ i1 T- L0 X. a' F
! Z! Q' _9 X. o6 Z, N/ S
( s& M$ i: i8 A1 m0 ], ]- z
5 h/ U1 D W' V# {
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2