飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. i5 x9 F4 K4 i$ q* Q4 w
( K' J( q1 v) J6 \, g/ z
Mover.h
" f! v6 H( q0 P# H! [
代码:
+ ~* W/ R% Q. N. p* [
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! O1 {2 A! @3 B, k- H: i4 c) ^' C8 H( S
% i& V- T: h& Y' f. Z! M1 j
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. w! s" _2 o9 K% Q- R
" i- b3 l- u* d! t, h. r/ F0 A; b( u
然后你去mover.cpp添加
4 ^, [5 R/ ]5 B3 l& h2 c# i
. C% { w) i+ k; ?
代码:
; y6 z. {1 M% N4 y
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 q. O3 g/ B' D# e0 ]: L1 p
{
1 f% Y4 [1 F& Y! v
#ifdef __WORLDSERVER
$ }" A+ c# u1 k9 F- f
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 @1 z8 w+ S# f% z6 T
MoverProp* pProp = GetProp();
" f* R' U# k' R( F7 W: C- ?. a
if( pProp )
2 u) }/ f$ S, w' K9 }5 W; j
{
# @" l$ ^6 J$ l5 _8 B* e
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 O9 j; A' b4 B( `
{
8 g( Z% I% Q) z* ]6 c$ i4 L
AddChangeJob( nJob );
A) M0 q" T _2 |- {
}else{
! i0 \; I8 O3 y% H6 z, g, u
return;
* X8 t* u. s4 K4 [4 i
}
. U6 T0 L, C7 D, J' p& P
int nPoint = 0;
$ s5 s5 O% P' m2 U+ G
if( m_nJob == JOB_MERCENARY )
/ t$ D; z8 a! u- a6 O
nPoint += 40;
2 \0 s" u3 z. M+ C: Y+ s; P6 n
else if( m_nJob == JOB_ACROBAT )
& O5 `2 r$ v3 \/ a; ^9 P* J
nPoint += 50;
" N8 M, Q7 q& ~" G( W, Z( s( z
else if( m_nJob == JOB_ASSIST )
/ N4 H. y. ]4 F( J+ q& V( W8 Z
nPoint += 60;
3 }1 v, h5 l$ b2 i; t: B
else if( m_nJob == JOB_MAGICIAN )
+ s# ?; m5 h# X' O }
nPoint += 90;
( v2 p' [$ ~. U, m
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 ~& P6 b9 e5 I( l4 U- J9 E9 B/ e
nPoint += 120;
) g* F: J4 ~7 v, g8 m
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% w4 h& G; R# a! T" n
nPoint += 150;
; `$ x5 \/ |' U8 n7 `
else if( m_nJob == JOB_RINGMASTER )
0 y ^) ~. A4 s! @
nPoint += 160;
5 e! V+ L( p% D1 {( [+ {) Q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' e& h' M* a/ d3 g; `
nPoint += 180;
: k- P; q9 k4 d6 J6 ?- w
else if( m_nJob == JOB_ELEMENTOR )
8 v4 k+ ]0 T- l5 h0 o t8 }* _
nPoint += 390;
! i( A& a1 ?, y' P
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 `, G' l8 ^( U+ h. z
nPoint += 120;
1 u8 {% |# R! ?. |0 |
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# z! m. w" Q) R
nPoint += 150;
7 R* h: I5 x# U1 f8 l5 g
else if( nJob == JOB_FLORIST_HERO )
( F7 B1 _% k$ g; _- }: }! |
nPoint += 160;
2 j8 r% N# r3 n2 @
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& U. u% h* r* W& C2 X
nPoint += 180;
! e. Z0 O. |4 r5 N; V' Y0 X% Q
else if( nJob == JOB_ELEMENTORLORD_HERO )
( m2 x# a& Z# ?
nPoint += 390;
+ c- k0 W3 l! b
& l b2 n7 [" D* P" u6 q8 m
AddSkillPoint( nPoint );
7 ]- A' T+ O) b2 Y6 v" O
m_nLevel = nLevel;
3 J; ~% z P2 z! V5 ~5 \
& s3 x3 j6 m3 c+ ~0 {0 I3 l* q
SetJobLevel( nLevel, nJob );
" k; E' P/ I7 ~+ O0 G7 h: m- s
m_nDeathLevel = nLevel;
+ T, s7 u2 }- Z! o1 r+ [4 ]" I. }
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 O9 T) k/ z6 ~; g( ], ^
if(IsMaster())
9 y2 b/ Y5 h( t: @
{
- x5 c! U$ D9 X& W$ A7 [
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) _, y# w' g& M; { W1 v' w$ {6 l, w
if( nLevel > 59 && nLevel < 72 )
$ B7 e0 X6 X, C6 O2 v- V
dwTmpSkLevel = 1;
+ u# d0 T/ V' S- D4 v, v7 @9 i
else if( nLevel > 71 && nLevel < 84 )
% m. v3 Q, c7 g9 Q
dwTmpSkLevel = 2;
x6 q( }& Q# g% n! z$ d u# ^# S
else if( nLevel > 83 && nLevel < 96 )
0 G6 B1 ` F4 p9 s
dwTmpSkLevel = 3;
- Z- k, E F9 T( }
else if( nLevel > 95 && nLevel < 108 )
# t; v- H: H" l4 z3 q1 J; n
dwTmpSkLevel = 4;
- E3 i8 z9 Y4 `
else if( nLevel > 107 && nLevel < 120 )
6 Y! {& v V m. h
dwTmpSkLevel = 5;
$ I7 N) {2 o% P* Z5 O% a9 H& g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; D+ X5 j5 Z ~% Y
{
1 j# t! \3 `* H2 W0 @- i
LPSKILL lpSkill = &(m_aJobSkill
);
" Z' d; c7 C& p* L8 E. O0 M
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# E7 a3 l0 ^' B& S2 V( U
{
- g/ C/ }* F: C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 C- r( U3 W p
if( pSkillProp == NULL )
6 h, j4 A6 U; V9 T2 Z
continue;
! d; K+ g; g, K- M* G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; Z, O( }; }8 N1 |1 O
continue;
0 b' c4 G. x3 x9 T1 C/ W
lpSkill->dwLevel = dwTmpSkLevel;
9 g+ {: i8 J5 g% `
}
: X' _. k1 h4 B4 l6 W- c# ?1 p
}
. H1 z# H7 _5 R
}
! M% i7 q" f$ \& L5 y3 M* ?
else if(IsHero())
( m( ]! | ?5 Y5 j) m# P) L
{
- n' r) _9 U. W- ]6 c5 B) v
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% D( [4 T3 d5 S' s+ W0 N5 ]2 X
{
+ s! @0 U* @ C0 e
LPSKILL lpSkill = &(m_aJobSkill
);
: d) j- i5 j7 S! M R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' l9 a; |7 w7 y8 h) k y! [& I
{
" T# K7 X" ]. c! J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 v1 O7 G1 ?3 H9 F3 D
if( pSkillProp == NULL )
" n" E1 J8 {" V5 U9 P
continue;
2 [5 z0 j) x4 F# V7 M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 A+ U1 `+ M/ f
continue;
/ a0 l6 q8 E% R6 Q7 J
lpSkill->dwLevel = 5;
8 |2 _7 x# ~3 ^- e- X+ t U
}
5 E: x% L0 N6 Y
}
1 a# n5 m2 E- n7 F C+ h7 x: b
}
+ S+ f/ ~' s7 a+ b6 f2 Q7 I
else if(IsLegendHero())
% Q' T$ s4 q! D, v" M2 s* ?
{
4 m1 ^8 @6 @0 Q- M# ]
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ T5 _! m4 _0 |8 J
{
/ L( H9 U7 f1 y9 {
LPSKILL lpSkill = &(m_aJobSkill
);
& n0 {0 I* L- l, g: K- ?. w
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 O& r. w& l8 ?- n& V
{
7 x, M5 G0 d0 H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& C* J2 q: h% u/ m
if( pSkillProp == NULL )
. K# v& H( M" U4 c- P
continue;
4 V( n' w1 T/ D( K8 ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 _* J7 f' g3 n ~5 L* Q, K
continue;
5 [7 E3 U' L o3 Q; t
lpSkill->dwLevel = 5;
$ u8 e6 Q+ @8 n' e
}
7 K/ A+ x8 g* e: A2 c; V: e% n
}
0 S0 L( V! ^* w, T( `3 p$ \
}
; p$ j; ^& [, E, V0 S' \
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 ^6 A( b; y% b4 A
if( bGamma )
9 U# g( e3 q* U
{
5 M) m( f- |( r4 s3 i
m_nExp1 = 0;
' p$ g+ T8 F' ?
}
# a, }, n- S$ ~, ?: E
, A" J9 Q+ _& U6 I6 J$ y" z
( (CUser*)this )->AddSetChangeJob( nJob );
$ |4 t8 ]: A x# H$ z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 @3 o' m' K# U* w" l0 h
$ m9 R' _$ }( g& |, b1 D: ^
3 r P7 z3 p* Z' d
#if __VER >= 11 // __SYS_PLAYER_DATA
; f. }, T( p% e. |/ w
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 {1 k. K& c; }8 a
#else // __SYS_PLAYER_DATA
( K+ M5 i& h& L/ X/ w) [ {
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 U0 W k+ \( Y4 R) h! w
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
/ t! g& D* q) U" M$ c3 _$ X4 ?
if( m_idGuild != 0 )
- `! W( P# q4 K
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) G; q) f* O. }- {/ U$ C' b9 {
#endif // __SYS_PLAYER_DATA
' S7 u+ f% |! K7 p+ D, F# C
SetHitPoint( GetMaxHitPoint() );
. z0 [! X( m" y6 Z3 l- `
SetManaPoint( GetMaxManaPoint() );
' ~- ?5 ?0 G2 x
SetFatiguePoint( GetMaxFatiguePoint() );
6 f3 N! e% I V/ z2 X4 a
if( nJob >= 1 && nJob <= 4 )
5 \/ e: ?/ _5 Q# f0 c& W- { z, l; p
{
9 S) Q4 l9 q1 X n# ^
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 r4 m. [. c+ y# s3 k
m_nRemainGP = 28;
0 A, m0 F5 y( n) s8 c
}
% h; U4 ?5 M3 {
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 b+ g0 P3 W# `, q; t9 X/ t
{
. W8 o& V+ }7 P: w: U
m_nRemainGP = 118;
, a) ~% c8 e @9 c- t
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: G' {0 u% m/ o. c% }1 C
m_nStr = m_nSta = m_nDex = m_nInt = 15;
& b2 F6 P+ m* ~' @! H8 \5 i
}
3 t% }4 v8 T% R" P
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 \& X+ C# E; O7 x9 \' i. u
{
! T& K' W' T, E9 a5 b3 u \- x
CItemElem itemelem;
( W S* f" u5 B, f
itemelem.m_nItemNum = 1;
! M- a- ~; ~( w; |8 M" V( W; N
itemelem.m_bCharged = TRUE;
) ~, b7 z/ x1 U: h( y) Q! o6 c+ d
BYTE nID;
' E8 l0 g: D9 y1 s
; X' R0 |# G9 i0 |
if( nJob == JOB_MENTALIST_HERO )
' ~1 c+ i% w2 t4 d
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
& ~+ ?+ A n/ U g4 |. z
if( nJob == JOB_FORCEMASTER_HERO )
) l2 I0 }- V& H
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 W* O9 |& `/ S. }- N( e' w* F
* I. f. `$ O4 e, U
( ( CUser*)this)->CreateItem( &itemelem, &nID );
. F3 k, h* f. I. y0 Q9 V1 ~3 a- K) i
}
% s7 O7 n6 L* U4 P
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
- @- o1 M* M7 ?* q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. ?" G) |2 r+ u' l7 ]
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# M+ @7 F' ]; o
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 j& X ^; _. A/ d" f& \3 d
( (CUser*)this )->AddTaskBar();*/
9 F1 A! K& H- h& c8 q& ], P2 w
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
) i( D# s q) [0 Q7 P
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 H0 k% a8 M$ j0 b, |* P
((CUser*)this)->CheckHonorStat();
5 v. ^9 _1 b: \7 Y! r5 ^2 q7 i
((CUser*)this)->AddHonorListAck();
+ E! _& ~4 \' M& ^' f
g_UserMng.AddHonorTitleChange( this, m_nHonor);
# z) u; k% r7 ~" [* q4 ~/ V% N
#endif // __HONORABLE_TITLE // ′Tà?
! f/ D! O' N) I8 S; }, E
}
- |7 o! I0 m/ k" j! w
#endif // __WORLDSERVER
/ D' Q8 \; D0 S& m: C( n3 o
}
8 ~1 N% z- j* r6 d4 I) H% P6 [
, J* l2 u" {( _/ I
然后你进入functextcmd.cpp并添加以下
7 X# v0 ?, L5 M% Q6 q2 S6 b* z
. C& {' g0 P+ F3 w6 h6 `& w
代码:
( a) E3 L; ~. p9 b- G
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, k4 M# i; H# [: ?9 J% A
下面插入
. s: Q2 ]5 Q" L- K7 h& M& X" b& M
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* u" d; e, c- \
! F' G( i* U0 b. L. q2 A/ K
然后你去
) f/ T9 W8 ]# J
8 z! y* z9 {4 g2 i
代码:
, j' @8 h8 o, a5 ]* G
代码
. g$ k$ o% ^* o0 ~' H
BOOL TextCmd_ClearPropose( CScanner & s )
, z4 o3 C5 C0 [% L1 i( |9 N
{
$ V0 N$ A% Q3 ?) S1 ]
#ifdef __WORLDSERVER
# `/ n/ g4 t5 O: P
CUser* pUser = (CUser*)s.dwValue;
* t) R* e4 y! @; V) F" P7 N, Z9 g
g_dpDBClient.SendClearPropose();
) D+ i& _0 o+ o# {. j- m& ^
#endif // __WORLDSERVER
; |1 g1 B* W; X8 ~. W
return TRUE;
8 k3 a* l7 i) `/ U4 ^7 l& n
}
5 a* h9 X+ f+ ]/ F
下面插入
# U8 `7 T, A, t/ q x
BOOL TextCmd_rebirth( CScanner& scanner )
- Z$ L% p2 k9 y* v$ f4 p$ \
{
/ O# p6 i6 D5 D. ^
#ifdef __WORLDSERVER
. K6 L; ^! G1 G9 l2 D& T
CUser *pUser;
0 ^' q" \4 Y( e8 t
pUser = (CUser*)scanner.dwValue;
& a# ~( G2 N3 v* m% J
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& x3 z9 i+ `$ [! l* ]6 d0 Z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; |- C9 c7 _2 U, i* E Y" l: y
else
, W. Y# g* u; u- {0 L! Y# m
pUser->AddText("你还未达到重生条件!");
% `. ?" x7 ^ r6 e) e
#endif
$ k, I S- @% C0 l- D1 I! F
return TRUE;
' s* p+ U. I# N( l) F5 J
}
3 a$ R# w! }, ~4 Y. \( |
" _7 c0 F. p9 q) r- J& V/ N
3 _! x5 Q( T& V; b
: W- F" j2 u2 Z+ d; s5 Y2 ]4 @, s
: ]6 q7 B7 p; Z4 V- j2 ^2 Y% F
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2