飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ ?( N% n& z @: l$ ^
# Z7 }: }6 T8 D$ i
Mover.h
% W* }3 W& V7 T, b: q7 v
代码:
$ S4 w0 `: z3 [0 P" T/ r+ E
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ ]0 h6 Z. T |8 U" N6 c
+ \' r. x3 d4 |& g( \
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, ^2 J1 p5 z) ^+ e" A
5 O q- g6 y, L0 Y4 ^# J$ d Z
然后你去mover.cpp添加
" ]& a& I& n! A6 G0 P( i" k
; g# C, [8 ]+ ]$ _
代码:
{# |4 e3 [+ T8 q
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 h/ {; V. y$ a6 |
{
1 ?4 y( R. V4 f- t) P+ y# w" z
#ifdef __WORLDSERVER
( a( {6 o b! l+ T+ q
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, W( F& R# m0 C9 `1 b
MoverProp* pProp = GetProp();
. m0 R- Z+ B5 w
if( pProp )
' q" r& i7 G" P. n
{
9 c! R+ S" K1 u& K9 e) A9 V
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) o* f, B" v' B. v$ L' N, T( ^
{
* ~! i) S E) g
AddChangeJob( nJob );
4 @# z/ S9 U t, F8 S
}else{
' _% O# q; ^; g
return;
3 u0 |* _& f+ [7 H
}
$ Z' b( p" Y# K. y
int nPoint = 0;
2 K; Q2 W/ l1 Y4 M& {
if( m_nJob == JOB_MERCENARY )
8 L. v6 j9 M' D0 F
nPoint += 40;
) g& O" p2 S! L& V: o
else if( m_nJob == JOB_ACROBAT )
0 ?9 m! H- P( k, g2 M- F
nPoint += 50;
+ y, O" T# T1 \% f6 Q- \9 [( {
else if( m_nJob == JOB_ASSIST )
# x$ ?' P$ ~0 B- h& `
nPoint += 60;
" u& j) p$ g; C: r: Q* G
else if( m_nJob == JOB_MAGICIAN )
1 G+ w3 I/ s1 W% `& A! K5 [. D" \
nPoint += 90;
) {* f# s! u# Y- |+ l; g' J' M
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ Q% @& q9 Q9 c- B
nPoint += 120;
! e; h4 P. H/ r) D( q
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 ?1 n+ z! @# a# }+ V, X
nPoint += 150;
: u6 Q9 L! z0 C7 Z; B: d
else if( m_nJob == JOB_RINGMASTER )
# u; A0 @; R" t. u" d& v; `
nPoint += 160;
! R$ e3 t2 p& V+ v
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 V% q; K h$ b$ L
nPoint += 180;
' ?( U5 D- u4 M; V# ~" J d' z
else if( m_nJob == JOB_ELEMENTOR )
& ?4 |. R! m: E* v. u+ [ Z
nPoint += 390;
) Y2 ?* n8 G1 i
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- K+ h: s: z+ @
nPoint += 120;
, G. f3 E/ e, Z2 p0 }+ ]3 _" J3 G
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( F! s5 \3 Y$ ]6 m& `, x
nPoint += 150;
1 I9 {2 P% ~) U& ?4 q$ B8 w
else if( nJob == JOB_FLORIST_HERO )
2 t8 M2 z: d6 Q
nPoint += 160;
; e1 c" d5 [$ x) r9 h+ v
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 @9 Y D o5 D. ^
nPoint += 180;
& o2 ^8 k/ S; o! E5 }+ \9 u
else if( nJob == JOB_ELEMENTORLORD_HERO )
# a" v# C: P" V, ~
nPoint += 390;
# k2 n) t1 ~/ |' H9 c
: L4 x" T2 l! E: o
AddSkillPoint( nPoint );
) z' E) A! z& T- B% |( [1 I! Y; N
m_nLevel = nLevel;
5 c: B/ F, l6 J
, e+ R/ {/ I+ U3 n7 L
SetJobLevel( nLevel, nJob );
$ j! _$ Y/ D5 z3 |
m_nDeathLevel = nLevel;
; r1 [) s! w4 S5 v0 n4 Z7 T3 G
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- I* z' a: X2 i) n
if(IsMaster())
5 D* |% y0 e1 {
{
: _! z) V5 @7 R$ J
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ U) Y, `8 w! s4 W: Q% y
if( nLevel > 59 && nLevel < 72 )
8 x2 I6 w7 y& [, \
dwTmpSkLevel = 1;
, L- ^. G& ?4 l
else if( nLevel > 71 && nLevel < 84 )
. r6 K X) `3 L7 M0 K
dwTmpSkLevel = 2;
) |1 [ }0 l+ g) @) i3 d5 r
else if( nLevel > 83 && nLevel < 96 )
, ]8 ~ y. [7 M* e' O/ i
dwTmpSkLevel = 3;
+ X3 }' d0 F4 a( i5 e/ `
else if( nLevel > 95 && nLevel < 108 )
# `( K0 K0 k& H0 ~( D) u& B' K! u
dwTmpSkLevel = 4;
' j# i) z2 S3 a2 s5 {
else if( nLevel > 107 && nLevel < 120 )
/ w3 D) X3 ~3 O$ ?7 p) b5 P
dwTmpSkLevel = 5;
( N0 s7 i0 A4 n+ o* ]8 K; A
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" z K7 j2 e8 T: |) H1 G4 W1 {% N
{
& g( e' m5 t( T3 q
LPSKILL lpSkill = &(m_aJobSkill
);
* [% Y+ f5 E, e2 E+ s8 {
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* W( {; s* Z! o+ x/ {, C
{
$ M- ^5 W# x+ s8 L, v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( v o2 D# \, G- ?+ o
if( pSkillProp == NULL )
: h2 h; Y; P8 P$ P, Z7 o
continue;
! T, ^: K) S0 H K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% H( Q: O3 _3 l2 g/ Y
continue;
9 C: L- g2 q0 t/ t/ }* X( c
lpSkill->dwLevel = dwTmpSkLevel;
& V3 P. g1 @7 J! u/ b" V# t
}
& M/ W% i% b3 |' E5 Y
}
8 N& y5 d$ `- M% w$ W
}
u: `. l& x5 o9 z, N* S+ w. j; ^' Q
else if(IsHero())
+ Q+ ]0 A4 [( _. S. q
{
$ O! M& T* n0 K; L' A
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, P9 l* s ?: Z. R
{
( e$ g. y+ C, I5 E9 R# K2 [, q" B
LPSKILL lpSkill = &(m_aJobSkill
);
# f, r9 X+ y/ X) `' V( ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ l7 D, e1 M4 Z( `: y
{
6 W1 W/ `# ^- T- m1 g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. f" O ?$ s0 T5 M
if( pSkillProp == NULL )
) {; Y/ T# b1 |
continue;
# W& R& V& D* ]2 ?0 Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 s2 L, g, d, q- Y& m5 z8 X
continue;
: z! S% o j e, q( t
lpSkill->dwLevel = 5;
. Z# J& @+ J) J0 z
}
; ]. Y W6 L" o) E/ v: a8 Z4 \
}
: {2 n- v3 ?2 w4 U1 Y* @& @
}
5 O! t- D# L" ^5 C8 a
else if(IsLegendHero())
7 x8 |0 m4 T$ p; ~2 `( [
{
$ [ O% s; n# E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 W; x: L" W+ O
{
8 R! V, s; y5 D" L! ~4 ^
LPSKILL lpSkill = &(m_aJobSkill
);
% M: l, q# t% K: g9 c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, N8 _1 ^6 G; K3 J
{
% z/ F( _, d2 J4 k$ h5 M/ e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* }* }; X# i4 K
if( pSkillProp == NULL )
3 P% U: f+ ^! O0 V8 z" @# p
continue;
7 N, o9 R; D! w" X# }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& g. Z* k" S' O
continue;
& ?# Q$ p3 O6 Y1 e) z
lpSkill->dwLevel = 5;
) W& A' y2 P# g: U
}
2 ?$ \9 i% ^* T* v& N; X5 v
}
$ c# ?) w2 _/ |
}
" Q& q: g+ n8 r1 o2 z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 d! r7 C1 M: s! r' U/ S3 g8 P& @
if( bGamma )
0 A. n+ k9 C# {( Q- V
{
& v1 Z" J. |% f
m_nExp1 = 0;
, _8 C" n. B" {% O
}
/ j! ~/ H: k9 R# [: \& m
* N% q! x% N5 F
( (CUser*)this )->AddSetChangeJob( nJob );
3 [" `+ o4 _/ j& k
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' C( y9 B9 a: Q4 m0 ?5 H
( H% y D9 I7 c& p3 X. Y+ W( q
! J: J' {! l" ?+ @
#if __VER >= 11 // __SYS_PLAYER_DATA
, K' \5 j7 m; N, I% K& _/ T; \
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ h: h3 r0 \$ C# K, K3 u0 p1 X
#else // __SYS_PLAYER_DATA
2 I0 G! t6 ~8 T# j* W: p) k0 x# M. B
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
! @/ d) D; o0 @. U1 h, P5 N' e
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, N: [% O: E3 ^6 e3 {- Q
if( m_idGuild != 0 )
6 F* G6 e7 }* _! c! w
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
L/ n: f6 ~- f8 [4 Q; [
#endif // __SYS_PLAYER_DATA
- g. @1 I1 S4 L2 f- R \( ~5 ~
SetHitPoint( GetMaxHitPoint() );
, L7 S4 k0 y. g5 R/ s d
SetManaPoint( GetMaxManaPoint() );
H7 l, ^9 {. x
SetFatiguePoint( GetMaxFatiguePoint() );
/ K; I" x$ C2 m5 n: L- w& ]
if( nJob >= 1 && nJob <= 4 )
! f! v% O' i( Y6 |; I
{
4 _" C0 {" F; k b
m_nStr = m_nSta = m_nDex = m_nInt = 15;
& Z: P! _7 F7 V- h" w- q/ ?
m_nRemainGP = 28;
7 d G" T% F" V( E5 B6 n
}
( {0 S/ J2 F: j2 N) _4 s
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 I9 I, L5 Q+ N* |1 s0 v
{
. L* u! \ V% J% Z1 N5 t. I O$ i
m_nRemainGP = 118;
% r" k8 G3 n/ f# Y3 A
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ _2 u; P. I" d7 W1 h/ c
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; }0 A; b% g8 D1 V4 w; S, ]% x+ U
}
- x- u2 G; V; ^
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ y% X; N |7 I6 A! z3 A$ g9 I
{
F9 y: E- x# ^% T; L% R1 O
CItemElem itemelem;
& F9 X) v( x4 _
itemelem.m_nItemNum = 1;
4 N+ p: {$ \7 _$ T7 e6 z
itemelem.m_bCharged = TRUE;
. K4 g5 J, n6 w1 [7 P: x/ Z/ u1 Q- y
BYTE nID;
3 i1 b6 q' V+ h5 K& R
0 s7 [( t* @/ x9 W
if( nJob == JOB_MENTALIST_HERO )
* p' z- k8 k- d- O; K
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 f* v3 v( R, B1 }
if( nJob == JOB_FORCEMASTER_HERO )
P: H9 ~' r ^, t2 C4 L) Q& u
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
~ h0 @& ~4 ^. G# I
) z2 X1 B. z1 s) j5 y1 k; I
( ( CUser*)this)->CreateItem( &itemelem, &nID );
. v; z/ j: z9 L' ?: P
}
/ o0 Q# X1 L- R4 w* V1 v& b6 g
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
' X2 ~6 m6 r# w5 O- |4 R3 H
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& |6 {- r' t5 ^+ E: U3 a' b7 j
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. _3 y; V1 o, @& F+ E* D
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
4 \1 o5 X8 A. w( x* Q9 |7 ~
( (CUser*)this )->AddTaskBar();*/
& ]% A$ ~: L8 Q4 n/ b% O) r
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 U) p; F/ K, f+ l, I9 H, |5 _
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ }7 Y8 c2 K$ b8 m% J
((CUser*)this)->CheckHonorStat();
; O: E2 X) l& _. F
((CUser*)this)->AddHonorListAck();
; t* Y5 u; f6 K, c+ X9 E
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 a* D+ ^. m& B# N6 m0 y
#endif // __HONORABLE_TITLE // ′Tà?
7 Q! K' r/ S/ e% m0 j4 D$ A
}
* B) N8 G' R1 ~6 M( h
#endif // __WORLDSERVER
& b2 D# g- D N! v2 C
}
7 |0 g% s) e% _% p& b
& {7 D! A4 e- }; T, ]
然后你进入functextcmd.cpp并添加以下
' i' \/ ]& {* f, q$ e' o" p
/ [, d7 ]5 `1 C! Y H$ k5 G
代码:
; P3 S& ?, m$ ~( D
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ Y. ]) s5 t3 ^' Q* ~$ b0 C
下面插入
; G. _3 q3 z. I4 [1 l( D
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" T$ S3 q, ~$ s, c& [7 t( B
8 d2 t: l& A0 ^: l' z6 O" S
然后你去
# _/ N7 l, ~2 I. D! P
4 o$ }$ T- v5 p6 m7 l
代码:
% Z! }; s' k9 ^) M/ m1 v
代码
$ V- ^' a% Y' `3 m8 S
BOOL TextCmd_ClearPropose( CScanner & s )
f! e7 @7 G4 ?2 u' P0 H
{
, e) n9 o0 C6 ]7 {: r7 L
#ifdef __WORLDSERVER
, b' h& ~6 Q9 b2 u4 i
CUser* pUser = (CUser*)s.dwValue;
8 B0 A8 Q' U& _5 r1 K
g_dpDBClient.SendClearPropose();
" u. H$ V1 C/ T. V: Q
#endif // __WORLDSERVER
+ l1 l4 G( q& i5 f, E) f
return TRUE;
+ l2 U9 K1 e7 f! l
}
c5 k9 {; o e0 Y/ M
下面插入
8 L: V* [0 g6 g; q/ c+ s6 M! |
BOOL TextCmd_rebirth( CScanner& scanner )
# v; ^0 \* R6 p$ P
{
# a$ [. f- N& N+ g
#ifdef __WORLDSERVER
; ~- Z3 u6 _+ ?0 E8 h7 t
CUser *pUser;
3 b4 |6 a8 q" p" v+ K
pUser = (CUser*)scanner.dwValue;
& g1 m: l2 b, @! o/ G8 S
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' z c: d ]. ?
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 s& [- Z% q% V# W9 h& W8 l5 B
else
) ^/ R7 h5 [8 C! J
pUser->AddText("你还未达到重生条件!");
8 G& \ K4 D* I7 {
#endif
% V6 _6 m# S, s9 W" r7 x4 }
return TRUE;
# g+ v3 T$ M/ s3 v' t) D9 W6 ~% u
}
1 F. B; S2 O7 v9 {; c8 {
( k0 ` N( w+ n! J& d& [5 ~" Q3 q# ?
; v( k! g, J+ }- d* _ s/ u( M
, z Q" X# K, U, i# M
# Z3 o5 d# U( P3 I
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2