飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ K. h8 M+ Y |" v" {8 D
5 F8 t1 l- ^/ O2 ?* u( ^/ H" ^
Mover.h
5 L2 m3 A( t8 r0 {1 l4 _
代码:
4 Z# J( ?$ x1 L
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
" v8 u8 P, N9 B# N- A' R( g
! L3 S# n' a3 |5 |! |. S
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
8 [$ w8 P3 T1 u! C+ L
7 _# E0 g5 T. {4 m4 }' K
然后你去mover.cpp添加
7 S- G! s U# Z+ Z O0 W$ _
" _4 {, G0 @9 d. `
代码:
$ V0 I. P& ^1 @6 R3 B& F
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, T' y) f5 l& g
{
( n0 Q# Q! u( O5 S1 G$ S
#ifdef __WORLDSERVER
) N/ ?9 k! P7 g1 j8 a7 t
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
0 v$ f1 {( W) L j/ P
MoverProp* pProp = GetProp();
; n5 p) v( S" h
if( pProp )
5 S0 D1 n/ l4 e% F& E4 J' J
{
& M4 U1 w: M: e4 [8 P5 ~, R
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
O6 C; {' b( _, ~# l( n
{
+ z) o5 j) o) x2 q8 r
AddChangeJob( nJob );
- f9 h+ R; u3 `% ^: I, K
}else{
% s0 a* B3 l- ?2 b( t& u
return;
! u7 M! s) K& W3 l0 L; Y# f
}
_, _# K5 e/ l8 `8 _ J# F3 _
int nPoint = 0;
G8 f, X8 y1 _, Z- l+ I. t1 w$ ]& Y
if( m_nJob == JOB_MERCENARY )
`: a$ Y M1 s
nPoint += 40;
# N( {' M' |7 p; C, v3 h
else if( m_nJob == JOB_ACROBAT )
+ @; v5 w- v5 \1 E. a
nPoint += 50;
& W K( C- E. A0 a9 _
else if( m_nJob == JOB_ASSIST )
& O" C6 X9 U/ |, g2 m9 Y
nPoint += 60;
7 }! O, V) m, i: L# ^/ ]8 a: K
else if( m_nJob == JOB_MAGICIAN )
3 l7 k6 C( C6 |# r. ~7 k2 b
nPoint += 90;
4 f2 n9 m- G& L0 w ]* m
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 G5 n1 q1 w8 @1 `6 j
nPoint += 120;
& D: [: J9 z2 t
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 e: y9 _& ?% N
nPoint += 150;
" n7 e" |' e5 S1 m. h0 T5 |% b
else if( m_nJob == JOB_RINGMASTER )
* D' v; R- C% {# A
nPoint += 160;
7 L9 Q4 }! M; i4 v% a" G
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ `8 T% `- Q R
nPoint += 180;
* ^3 Z9 H. @) G- Z: f
else if( m_nJob == JOB_ELEMENTOR )
4 Z8 t' e* E9 C* V' c
nPoint += 390;
/ k; I) O# P+ v& y& e5 [, `
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. v$ b$ D' f2 h0 O5 D
nPoint += 120;
3 V% g! H. `5 V. R$ w7 [3 W2 P6 H
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* C5 e% e. i t" U- r% y
nPoint += 150;
9 n; g% b7 x: n5 b
else if( nJob == JOB_FLORIST_HERO )
) m# F4 J ]4 H5 T# X( T2 S) U
nPoint += 160;
6 W- P- | C# |/ ? S! c' j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- B+ O) V+ ^: h% t# `7 v
nPoint += 180;
( z: i( ]# t8 @& P
else if( nJob == JOB_ELEMENTORLORD_HERO )
! r( s. q3 G$ C2 ]7 ^1 }
nPoint += 390;
+ h3 E+ f6 `9 w2 ~! I9 g, D
1 z. T$ G ? }/ V
AddSkillPoint( nPoint );
+ l+ x. U' r+ K+ f% E# H
m_nLevel = nLevel;
5 h( u* X6 w8 [% z4 f
/ O- t- x3 }3 z5 N
SetJobLevel( nLevel, nJob );
6 R" {" v) i; e9 x( |, M
m_nDeathLevel = nLevel;
6 O7 v# `; |6 ]3 \6 K- p
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
M5 Y2 f9 M1 t. ?. W0 t3 l- l
if(IsMaster())
t+ _1 W: e X% A
{
9 H9 z$ _3 g1 k
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! f; O4 t: R5 w$ U5 d& p4 m, F6 E4 B4 K
if( nLevel > 59 && nLevel < 72 )
6 X% ]6 B/ [" ] b9 q# P ]% ^% ]; T
dwTmpSkLevel = 1;
* q3 v) O0 O- G6 T
else if( nLevel > 71 && nLevel < 84 )
7 w: k& L% i" b( X
dwTmpSkLevel = 2;
- Q0 [/ U; I# V+ F
else if( nLevel > 83 && nLevel < 96 )
8 p5 H% q7 f1 X% Q
dwTmpSkLevel = 3;
3 h4 x7 G1 Y0 @1 m) \* K! h; V
else if( nLevel > 95 && nLevel < 108 )
& u, N1 I( C! ~6 g) m- [
dwTmpSkLevel = 4;
4 x/ q3 j' ^0 T- t, y
else if( nLevel > 107 && nLevel < 120 )
; {5 Q( M9 Z3 S3 B# e9 T
dwTmpSkLevel = 5;
: t# z8 |+ |& B+ s9 ^1 b# }
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) N+ `0 n% k6 g, Z) m+ x2 X
{
9 r; V. |0 h& T$ N! v
LPSKILL lpSkill = &(m_aJobSkill
);
+ L k! i+ t% G
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" U- p. s& N) R$ ]" U
{
9 c. X( h/ o# X( d; e7 r d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 K7 D8 ~2 \# j! L* O! x' x( K& o: t, A
if( pSkillProp == NULL )
$ g8 X. [: o, X# h8 f! M
continue;
# M+ B* |5 J0 ~7 X+ n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- ^% p& E4 O# z
continue;
% e. \2 i, w3 n8 e+ f
lpSkill->dwLevel = dwTmpSkLevel;
( V9 }, x9 I4 u6 B: K0 x3 f
}
% V9 |2 ~! c) ~ Q, S
}
5 O8 z) }! R' Y' b5 y u
}
( z. p' u* o$ O G; v9 L) a
else if(IsHero())
# v" Q9 E9 E' t, O, ]
{
- e2 B6 T" v' h' \( Z! W2 x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
h3 Y0 ^7 e" P" X, H
{
/ x. i: D0 U+ {# \) U( j X! Z
LPSKILL lpSkill = &(m_aJobSkill
);
& V) \% @. U7 \# l5 W: j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ v6 y" M* |% P8 g, L& L& T6 A5 Y
{
, M9 G- L& a, m1 t1 P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ R! K9 Y8 {$ U" U* A
if( pSkillProp == NULL )
8 }& z) E( V& v m
continue;
1 k; R, t& }0 E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 s7 S2 n: P, i7 P( n y
continue;
; f$ ~2 C, A2 O2 w3 E
lpSkill->dwLevel = 5;
A$ F2 x e7 O. }5 n' p1 u
}
$ x, Q5 [' ^$ l
}
4 Z+ `6 B; W+ p7 b E2 v
}
f, e1 O& L% Q$ ]
else if(IsLegendHero())
( n% u; C. A5 Y9 R+ W0 C6 R5 S
{
! c/ ]' s# W) R( x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& W# w$ B e+ a) j3 z5 ?
{
4 ~ g/ I0 H8 B+ U
LPSKILL lpSkill = &(m_aJobSkill
);
. ?& z. M) ^$ x9 z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" z1 R. y5 z0 r7 o7 E M
{
# y6 n: T( B: V% W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" _: Z/ ~" D# E2 p
if( pSkillProp == NULL )
0 s0 _/ U4 w8 r
continue;
& {! Q! Z9 P2 s; o- {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 B* k7 T" p6 |. m! V$ v
continue;
/ b, ^" c& r: r/ h0 K
lpSkill->dwLevel = 5;
0 `0 e) _6 I( d' n) o
}
: R4 A, {+ ~/ w; K a, M7 g
}
" ]/ \3 ~. A @9 U3 K' r5 _
}
2 l* w( i& V3 t7 D$ Y( k
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* J) i3 ~- z/ {4 _% A: c
if( bGamma )
! d- |3 K/ v. |3 ]
{
. H! r$ E, I4 |+ \5 \: v
m_nExp1 = 0;
2 I$ k4 B( J4 h+ @ r$ S: P
}
2 u7 G# W! n: R( F
$ }% S/ t4 u v3 k
( (CUser*)this )->AddSetChangeJob( nJob );
% H7 q; ?. }; H2 G7 |
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 _% k# v* Y6 ?" @
J* c% e+ {) x% H1 B9 ^- L
3 p) w: D# m# R1 M" Q- b
#if __VER >= 11 // __SYS_PLAYER_DATA
; y) w, s2 k @; U4 J/ v
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% F1 ?7 _9 o( ~7 q' V; y
#else // __SYS_PLAYER_DATA
8 K5 }3 d# k! U" m$ v8 u$ m6 D
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 r3 q6 N+ r/ h
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ |! S! d }' `5 m f( q8 z
if( m_idGuild != 0 )
! o& ^3 i# _' q* O2 E
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 i8 ~% j. N3 I+ b' Z
#endif // __SYS_PLAYER_DATA
. s/ u/ ]5 B3 w5 \. J7 X! c
SetHitPoint( GetMaxHitPoint() );
" Z: E/ J1 \! s V) ^ g* k2 f* y
SetManaPoint( GetMaxManaPoint() );
2 K- v9 R& i& D8 X& n9 d5 U
SetFatiguePoint( GetMaxFatiguePoint() );
) u9 O4 O. o% V# |6 c- x1 @
if( nJob >= 1 && nJob <= 4 )
7 P) q z- o: b6 J: E
{
" z, K# i1 U' S2 m& q) N& _
m_nStr = m_nSta = m_nDex = m_nInt = 15;
_9 \8 C1 ^' O& x1 N5 A! Q
m_nRemainGP = 28;
9 r3 x: @" P, B5 C& o! Z
}
% {( p0 }1 D; k, }4 M
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- P2 u( t+ ?: j0 a- }# |
{
7 U) L0 @- l @5 M9 {
m_nRemainGP = 118;
0 K H5 u- ?4 r0 S3 X' Y) Y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
_; f% E8 d& ~, ^2 ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% a1 c$ I) {3 Q. k0 z% w
}
& R* R# ^$ m( ^
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 {( m3 B. V$ a1 D5 q
{
& y; D6 c5 F: Q' {$ h1 k" }2 N
CItemElem itemelem;
; c% z' O# O* [* o
itemelem.m_nItemNum = 1;
t& D5 ]+ `, @; n; B
itemelem.m_bCharged = TRUE;
$ a; e5 w5 C# g% `/ C- k" X" }
BYTE nID;
7 t/ Q9 o) Z8 e9 X, A
; w+ W! v1 W! X! L o) @- c# w
if( nJob == JOB_MENTALIST_HERO )
, Z3 j: T6 C2 N X J7 U
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 S7 F( s, C J8 u9 K
if( nJob == JOB_FORCEMASTER_HERO )
3 {/ [) \+ ^ e: a4 h
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 `) h0 y: F x) Q6 b+ v
) q' I8 f/ D W* F
( ( CUser*)this)->CreateItem( &itemelem, &nID );
- y3 t! ~ a& p' I. a; _) G
}
' ?8 c- z5 C* X# `! g& L5 j
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
C& ?) t+ p: e; K. @9 d0 G
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# H, ? k2 x6 P+ r& ^5 w) h9 ?4 w d
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. l# b# o! Z, p! l" n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; p7 b2 S3 [/ U! y6 O
( (CUser*)this )->AddTaskBar();*/
- O8 b, Q7 d7 z$ e; n/ ~; P
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, b2 Y7 s& X% X# A9 s3 y
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& Z4 j1 K) D( Y* D1 N3 X
((CUser*)this)->CheckHonorStat();
% ~7 W% `6 x! `1 h, V$ Q ^, U
((CUser*)this)->AddHonorListAck();
: T1 S1 f0 w3 b. J6 Y
g_UserMng.AddHonorTitleChange( this, m_nHonor);
7 Z/ K& p+ ~: [$ R7 B. p( V$ ?
#endif // __HONORABLE_TITLE // ′Tà?
, i v. C# n# ?: L7 l
}
9 ~3 [" V0 P$ |* v" J' q
#endif // __WORLDSERVER
/ D4 |+ t e7 F. b& a
}
1 x5 G x; K+ s; J% b- Q6 ?
! P! \5 L {6 j. d+ Q
然后你进入functextcmd.cpp并添加以下
. A7 I6 K" v5 k1 e2 H
7 T3 u$ K) O1 G- H. c3 _
代码:
7 g3 u5 {6 f4 X4 B3 J
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 j" s. D( P! K1 h3 d7 y
下面插入
" p5 w6 R/ b" ]( G/ m
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: ]* Y& L' {% v8 y- d
- h# h4 ^ V+ J" W6 e. S7 B+ L
然后你去
1 V- X# v. i% s o* m
: F4 [2 x. a& T2 B$ a+ S' L" [
代码:
; C9 G* A R5 u4 n! e
代码
+ @2 [6 g' u8 \! c- k
BOOL TextCmd_ClearPropose( CScanner & s )
2 }) E) r1 c# J, Z4 Q" v
{
5 o: A" T I" C0 f' H
#ifdef __WORLDSERVER
2 W, j- P4 ]- A+ F
CUser* pUser = (CUser*)s.dwValue;
: y4 N3 R' h% _4 E& J: j9 G
g_dpDBClient.SendClearPropose();
8 M% P _9 e4 ?3 O+ G+ e+ {
#endif // __WORLDSERVER
5 v, | i' @& \# `
return TRUE;
" g8 ?7 V% P# k) }" w
}
4 Q1 {3 `8 c1 ?! q
下面插入
! X/ O/ E0 a) t& \
BOOL TextCmd_rebirth( CScanner& scanner )
% I' A1 h2 ^- W0 s
{
7 x& P4 }7 W d
#ifdef __WORLDSERVER
0 [- v3 Q' P3 E, D# H' F
CUser *pUser;
1 p+ H$ y) n I$ ]8 o& N
pUser = (CUser*)scanner.dwValue;
% ^. M1 h* T4 [; K
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
6 x6 {. ~* n$ n N# Z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 }" g5 Q n; g9 G0 O, j
else
& x7 d. j% g4 w7 t
pUser->AddText("你还未达到重生条件!");
4 U: v* p, ]- }2 D% |$ V5 a
#endif
2 O- o$ J( ]: Y
return TRUE;
( s1 W- g5 m! n0 r* Z
}
" w1 N. I* { O2 @
4 Z( E& b1 O) N0 o# ^
8 C P+ z7 [, ^! v
6 ]# K% D; Y' @$ J, t
; v6 I2 C8 {; Q! s. K5 P# s
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2