飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 g9 U: ?, O, O& K( t2 G c; a6 _, p
1 u% d6 C6 l8 F
Mover.h
( z# a) R' _' K' t! _' c& M# G# r
代码:
2 q- X+ | ^2 P9 H
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! T- L4 d5 x P1 r
6 f* m4 k( p' l
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: I9 {! R3 J! |+ I* i
0 H3 q, u; {2 @, b5 V
然后你去mover.cpp添加
, r" u6 i% Z4 u( h* G7 E" G: |' C
% Z7 m3 U, {0 ?6 G. R9 b
代码:
' E$ U# l" ?1 r! k' o4 T: N
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- @* R& G% K. U+ V- d9 w1 W: b6 i
{
a6 U+ W* z {7 k* G( A
#ifdef __WORLDSERVER
. H4 j0 @) u. [; V5 m) U
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
6 b! [/ N4 {2 N& f/ @
MoverProp* pProp = GetProp();
+ @" C6 Z) s- i$ v' Q. I$ o
if( pProp )
" S; E5 v H. e. n1 i' F$ s
{
) G7 T: K' O1 ^0 R# Y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 ]$ z2 ]5 S) V' S4 n2 v* n
{
$ d+ \0 @2 }6 b
AddChangeJob( nJob );
5 G( f: Q. S9 H1 a9 m
}else{
! @! `9 S# ?, _- j( M: j
return;
6 B/ W. _( X8 B- _" o5 ]6 X
}
% N0 o, e* P3 |' z
int nPoint = 0;
" w8 q1 C# B6 S# W
if( m_nJob == JOB_MERCENARY )
! l4 L0 N" `$ l. Z; T7 T0 F
nPoint += 40;
* H, Q2 X! x9 R$ }' m9 }( k
else if( m_nJob == JOB_ACROBAT )
3 V9 z7 F/ S: k' p2 e
nPoint += 50;
) F# y* s2 c, C
else if( m_nJob == JOB_ASSIST )
+ Y* M# a3 S$ B- s/ o: F
nPoint += 60;
, ?: E& e9 u( k! U
else if( m_nJob == JOB_MAGICIAN )
6 ]* j4 B4 @0 n+ f2 v6 w7 e
nPoint += 90;
) \2 S, z5 `# v$ Z% v! N
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 A! {& z- k$ [8 `' r
nPoint += 120;
~ r' F9 w0 x3 w3 B8 ]
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, e; l: E" Y9 d. [5 p
nPoint += 150;
2 W- ?, {0 n! n
else if( m_nJob == JOB_RINGMASTER )
, }! h4 g' z7 u; ~# y4 j; H
nPoint += 160;
# b( m8 ~& E8 U
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% T( H$ u4 C1 ^( P
nPoint += 180;
$ f. P5 b* ^3 Y6 f9 J/ z8 |
else if( m_nJob == JOB_ELEMENTOR )
) h, g5 ]4 j0 V1 c$ S8 e
nPoint += 390;
! x) t$ ^8 p, H3 p9 M6 K3 D2 X( X- p, b
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
; m9 Z" m5 |$ O b4 X% Z
nPoint += 120;
0 r2 @1 m" F2 \/ S1 t( |' j' K
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; `& u& h, k/ }
nPoint += 150;
8 C. o/ k5 T8 U6 Q& o, [' t: w
else if( nJob == JOB_FLORIST_HERO )
" M5 U) p" c2 Q5 Y; a
nPoint += 160;
, \8 I7 K0 H* f; ?8 L$ j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( @2 I, Y& Z/ h
nPoint += 180;
) g$ }9 `- A% w; m9 Y7 W6 p. k
else if( nJob == JOB_ELEMENTORLORD_HERO )
) d: [2 q# P$ {0 S! Z
nPoint += 390;
/ ^& C% P* _5 k. m I& n5 y/ n
' t7 B1 L1 d; V' C \$ \
AddSkillPoint( nPoint );
" q1 |( N8 S( b' _( W8 ~0 e8 j9 y
m_nLevel = nLevel;
( Q1 {! F( w' M3 c4 f
3 [* w: |7 U3 P4 b. A
SetJobLevel( nLevel, nJob );
0 u; M; ]1 C& w$ v
m_nDeathLevel = nLevel;
1 \& e, Q! T" t
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' r3 |7 e. m/ E: Z3 M/ D
if(IsMaster())
. B4 d& B) q! j' J
{
: p% D# O1 O0 S8 \8 s6 i% d; O6 F) N
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: z! z- o6 l" U. I5 g' ?. ~; U
if( nLevel > 59 && nLevel < 72 )
3 S4 m/ i, R* F, U G' S& l
dwTmpSkLevel = 1;
& {9 R; `! x1 s) a& X
else if( nLevel > 71 && nLevel < 84 )
+ k: h: `2 y" |# L6 q
dwTmpSkLevel = 2;
, W9 R' ~) x ]# l- Q
else if( nLevel > 83 && nLevel < 96 )
9 l5 u9 y$ t& a
dwTmpSkLevel = 3;
& _# W1 P& H9 U- z' R5 W7 K
else if( nLevel > 95 && nLevel < 108 )
3 B9 y8 u# g4 b
dwTmpSkLevel = 4;
5 k$ g, Y: z% m
else if( nLevel > 107 && nLevel < 120 )
* C' o) G/ a' e: e
dwTmpSkLevel = 5;
3 E9 U- s& C* ?$ Z+ J
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, X! p S4 _7 E) j/ z4 j% }
{
2 a3 z7 _/ C" g5 ]
LPSKILL lpSkill = &(m_aJobSkill
);
1 @9 X( G& b$ M
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- q1 W4 e3 h" P5 x( C
{
- V" x p' m8 O9 F# T. [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. E9 c. l$ t6 J5 V( M7 u D" @
if( pSkillProp == NULL )
5 \# U, d9 j2 @: I
continue;
8 T+ y# F/ ]: U0 [+ ]2 _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 h5 X% d& q5 W! D* B) Y" {7 q- f; v. v
continue;
+ |) J6 i4 T. A
lpSkill->dwLevel = dwTmpSkLevel;
9 d ]4 ^6 B2 Y6 e
}
7 x" k m6 ]: I# `( r" X4 S
}
- u5 g5 z/ r5 j" A8 H' |
}
& K6 ^9 Q& m. G/ z& L% K
else if(IsHero())
& Y2 J; A" F) }
{
& w/ a0 ~4 \6 p. l7 u4 {7 F
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 r7 G+ O& o5 l. @: V! D% q% V" D
{
% [. X) w1 x( B/ y
LPSKILL lpSkill = &(m_aJobSkill
);
7 M# a# k* R% A) k$ h" e
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. J: K3 W5 B$ Y+ A/ R9 e4 e
{
# T1 ~. g; H% `# l/ W% z$ ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( f/ w3 b4 J- a0 [$ }# [
if( pSkillProp == NULL )
. {6 \2 \, i! h! X6 \/ n
continue;
4 Q' I1 n: z2 t" L' |( p: J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' r( m- q- b" I G
continue;
, r" {' n0 L$ G, n8 V
lpSkill->dwLevel = 5;
0 u. S4 C7 J) J4 O1 j
}
, t. S$ g$ N( O. ?9 }2 U
}
/ T5 Y4 M0 F' ]; j) F9 G
}
" q' P% m( u5 A: P2 \
else if(IsLegendHero())
9 \: H8 S' d( s/ ^% L/ x
{
5 ^4 _& k" f: i7 i9 i" c
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, N! y+ R g" h4 R' z
{
l, b4 s* n5 l! t/ Q3 s1 Z2 P
LPSKILL lpSkill = &(m_aJobSkill
);
( M' R7 Y) {) q6 u: V! a, M" t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) W+ ~ P6 Q3 g9 { A' C
{
' q7 L; m! K8 t5 `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 V# M6 V0 |9 l: b
if( pSkillProp == NULL )
$ `0 N$ }. |6 ^- E1 x8 G
continue;
2 k) }& x( U$ F/ t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 F9 L1 w% P: j) C( N+ t. m
continue;
% X& }% a# b- Z5 ]8 [3 j
lpSkill->dwLevel = 5;
( E2 N( Q6 P6 Q1 o6 I
}
o b. x* x; j
}
# ]6 L" y2 r+ `% l
}
6 U9 N8 T9 \/ Q& U
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* z! n3 q. P( a* f" C" a3 d
if( bGamma )
4 o6 k5 k- n. M2 T( H$ L
{
+ B' u( G$ r$ y
m_nExp1 = 0;
: K/ F8 s0 o+ O% D0 A
}
$ k& u; v p$ j$ `& u# H% K0 X
! ^, K+ k$ K& k7 h+ M
( (CUser*)this )->AddSetChangeJob( nJob );
* I# u2 X" n) F8 i3 `; t. `! r, D
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
8 o3 l( W( M8 K, }9 L+ T. m
; ~9 q$ w# k+ a2 Q J2 G
: g. i8 u' [9 `/ q& L! c
#if __VER >= 11 // __SYS_PLAYER_DATA
- e# Z' ~4 O" x0 V) b1 O/ G
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 R, u1 u, f, z4 n% A5 H( |3 H) B! w
#else // __SYS_PLAYER_DATA
# Q9 ?% ^* {6 e8 S5 J
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( i g) ], z( y" r
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
; ?1 ^& c* i; b8 d* t' o8 t- f
if( m_idGuild != 0 )
" p+ L Q, y% }; p1 y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
! T. d+ z& g0 Q% t$ E% o% S: Q
#endif // __SYS_PLAYER_DATA
) k! a9 {0 A. e. N0 W$ A, ]
SetHitPoint( GetMaxHitPoint() );
2 L# C/ K+ I4 b: h) w6 a$ U( p2 |
SetManaPoint( GetMaxManaPoint() );
7 c- r& l- J L, P8 K
SetFatiguePoint( GetMaxFatiguePoint() );
- x- h% u- d8 W* R
if( nJob >= 1 && nJob <= 4 )
) x: s* C8 G, R- w* L: t
{
3 F/ M! Z& J' _( G1 \, t* z! ~
m_nStr = m_nSta = m_nDex = m_nInt = 15;
& q. c: ~, B- l; C K* b; _
m_nRemainGP = 28;
) ?/ ^4 r5 ?; a" P; Z# n& E9 c
}
( G" I7 g' `# J h+ [$ ^+ ]" {1 C Q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% n2 p' J! b0 {0 p1 [
{
, x; p$ e/ {! P7 P- w& W% U$ E
m_nRemainGP = 118;
0 ?# s/ S9 j+ q; E5 E9 k6 }
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
8 e. v5 P U: E# Q/ y: }
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 ^0 F* M" O( L, V. h( i
}
( |6 g* O1 o* Z: l
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( k8 J0 y2 w9 F7 ]
{
4 w7 L" q) Z2 Q N' r4 O
CItemElem itemelem;
: U+ j$ X8 z* o9 O
itemelem.m_nItemNum = 1;
^/ l' W( X- W2 j
itemelem.m_bCharged = TRUE;
1 V0 n* V# ^. {4 u: g& H
BYTE nID;
3 ~) U# n! i3 M3 e$ r# V, m
6 g9 q# N" ]: d$ Q& @0 x
if( nJob == JOB_MENTALIST_HERO )
6 z7 p% f. s' k
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
4 r U2 j& F- w6 Y* {& `5 R% k; Z
if( nJob == JOB_FORCEMASTER_HERO )
7 C4 ?5 Z2 d+ J1 C
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 F6 L9 u0 I2 X; T- D
7 I: e* P& u6 R1 H
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, \7 C- o9 U/ {; N
}
, B7 s; a+ l2 R8 C( [
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 o7 w1 P7 {2 Z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- n; ], O$ p3 t" e5 ~0 h
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, ^9 T6 ?' Y7 a" b+ b
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 \) L0 X& b9 @
( (CUser*)this )->AddTaskBar();*/
* y ^$ |: h9 @
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ y, o+ r! N6 j9 D8 ?: N; b
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: z/ ?% K6 ?( v" F; O& F9 t3 q" Z& q7 v+ }
((CUser*)this)->CheckHonorStat();
8 I% b0 r8 f. E. X9 e- n' x' z
((CUser*)this)->AddHonorListAck();
, U( Q( }0 i+ z3 O
g_UserMng.AddHonorTitleChange( this, m_nHonor);
S; d3 Z; d# y
#endif // __HONORABLE_TITLE // ′Tà?
, F) |1 i0 a2 ?
}
$ \3 y* `+ h3 _2 ^/ i7 \
#endif // __WORLDSERVER
3 p5 Q6 O. k C3 { }) X, o4 {
}
! V+ w. @! y7 o3 Z' [$ s
3 Z M2 D) B6 g
然后你进入functextcmd.cpp并添加以下
% I: A% l+ t( Z X2 |- A. E
U& _9 V- T' _4 G1 ~1 M
代码:
& v" [/ W6 z2 [9 _
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 o& Q, R" R) Y6 Z8 ~
下面插入
; q, |. s% m9 ~9 K: G
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 ?) E' v; I0 L$ q& z0 J( R
( Y+ g u0 J6 }9 e/ L) n" q
然后你去
/ |' Y0 l& P6 E3 M4 o$ S; A
, y9 R% U L8 @7 w
代码:
6 r' O8 E: F( |9 {* G: \3 ~
代码
3 o" }3 u) @2 n7 `
BOOL TextCmd_ClearPropose( CScanner & s )
6 D q5 {# O& g
{
6 P8 [# ^1 O+ [# U1 w2 z) g: Z# t
#ifdef __WORLDSERVER
. J2 ]7 J( d: o1 q) }
CUser* pUser = (CUser*)s.dwValue;
- g. L+ P$ A7 O* R+ F) \
g_dpDBClient.SendClearPropose();
/ N, H$ Y! c( j/ Q$ Z
#endif // __WORLDSERVER
1 S5 y. [9 H1 g. {$ \* ~+ |/ Q
return TRUE;
. u% `# W4 k8 Z) I7 o7 s1 |) D& @' Q
}
. q4 [$ [3 A4 w6 H# `
下面插入
: N- `% D/ D8 q9 M/ i
BOOL TextCmd_rebirth( CScanner& scanner )
# ^, ~; W' e A; m
{
F' b. z% i% I& M+ L5 }1 X
#ifdef __WORLDSERVER
) Q+ q8 R* y) R; i- G0 O
CUser *pUser;
7 |. }5 F3 B7 Q- M2 _# z' t) P z
pUser = (CUser*)scanner.dwValue;
& a7 A4 N0 S8 E+ q4 W5 B: A4 u
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: o! V2 m: Y" Z' q9 j
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ ?9 d( \7 K' ^+ x5 C" o
else
: R% G: I* u/ `- C2 B* w" t
pUser->AddText("你还未达到重生条件!");
9 s a. R' T+ k/ b* I
#endif
( e/ ` M4 U2 P) B6 h1 k
return TRUE;
1 I! w' K% B0 K9 {8 y, }
}
: b* J0 s5 K* u4 O, `
$ j( v @ D) z0 p
( U' M, q3 g/ w9 f
, l6 e: Q( j1 k3 W8 x0 ]5 v: c& X
. S! c/ ?; G3 L- [
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2