飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: K; i; r& I/ \* w
4 @6 Y5 E$ C5 K1 y" ~: \
Mover.h
# M5 k; w4 r' V/ d: Q
代码:
0 Z" E! K8 M. [
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: V3 z7 j+ Q) N& s3 H
& n2 y' g. F3 A, ?
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. R( h9 Q. G: X$ P& ~
5 C; [- Z, ~; ^5 r
然后你去mover.cpp添加
: c+ R% Z) s: v" O0 q) {# g
- Z! L8 K) n6 Q. v
代码:
; w4 `7 u& E4 G; X8 T7 }7 g! V$ o# V
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
! O9 [8 a9 w6 h, @
{
7 g. U {( T. I B( e
#ifdef __WORLDSERVER
+ ?3 t' e1 y% [( t0 A6 I( \- f
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& `( S: \/ Q E0 z0 ~8 Q& c; J
MoverProp* pProp = GetProp();
. i O0 C: x" i" m
if( pProp )
/ K. N7 {: U! n
{
4 w6 _( S n* S' q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 w% t, E2 [" {- }9 S8 a
{
1 P# s* k. H5 ]; \/ Q
AddChangeJob( nJob );
v2 L+ ^0 i- ?( Y' ?
}else{
; b# K. P3 u/ L' L. W* j
return;
6 I7 ~" D. U+ X. Y
}
6 l& D9 e6 O f0 r1 F
int nPoint = 0;
, D J3 i4 B# u! |" x+ g9 W" Q
if( m_nJob == JOB_MERCENARY )
* U- \* p" |5 u+ t$ I
nPoint += 40;
% E/ U' O; L/ G% w7 e5 p4 y
else if( m_nJob == JOB_ACROBAT )
7 P7 U6 {/ x) G& T. x+ `
nPoint += 50;
: |( U3 D# F) C/ \; g: e, O x
else if( m_nJob == JOB_ASSIST )
4 N& ~4 D& v) [$ s- Q% Y
nPoint += 60;
7 z' ~" C7 B3 F; L c" C
else if( m_nJob == JOB_MAGICIAN )
# ^3 k% [! q# `0 ^/ v
nPoint += 90;
' x7 r' n7 m2 W: Z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( z' y+ k0 K8 _ \& R$ L% v
nPoint += 120;
4 I8 Q) S! v! z2 r' k
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
0 q8 }" a6 p5 q- {$ n( e1 D0 `
nPoint += 150;
5 M) I& O3 w( a f1 c
else if( m_nJob == JOB_RINGMASTER )
4 i" K% s$ H T) c
nPoint += 160;
* U- W4 i0 A5 P M m, |) d
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 e; X5 `$ J7 `. Z# F
nPoint += 180;
* B1 j9 v/ @% q1 Q
else if( m_nJob == JOB_ELEMENTOR )
# a( [- W& i( q* T
nPoint += 390;
) x" f0 Q$ A v7 E
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ c( M5 p- U) p/ Q7 R' [
nPoint += 120;
7 l9 k" s! Z& C* U5 a
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! _. T8 X4 q Q
nPoint += 150;
9 p! h) v1 N( _/ O
else if( nJob == JOB_FLORIST_HERO )
% m; \) o' h8 p" Z
nPoint += 160;
3 x$ V5 X i& e2 Z9 [$ J# m9 {
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
5 ^' d% F8 }8 ~( C9 p% j
nPoint += 180;
% O" N4 b% {. \# O
else if( nJob == JOB_ELEMENTORLORD_HERO )
; H% Q/ s w h2 \8 a3 b
nPoint += 390;
4 w7 B# F/ M% F8 f4 e
( }: p9 F# _4 q' S6 Q+ I! ?1 G
AddSkillPoint( nPoint );
% s) |7 l" |" E3 E3 ?
m_nLevel = nLevel;
+ c# h" _8 H* J
* A; Z5 d% @4 P! W( M& X6 P
SetJobLevel( nLevel, nJob );
1 E& z0 N' b( L( L$ ]' l& \
m_nDeathLevel = nLevel;
+ H1 `; ^; ~. `( Q g: F8 @
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' Y" K2 e2 ^; ?( H& I" V5 g
if(IsMaster())
% A7 ]/ @& n" T9 Z: ?- s2 ]# E5 M
{
! W$ ^) C# n+ n/ r( D: B, g
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% ^5 D3 d, c& ^
if( nLevel > 59 && nLevel < 72 )
1 ]5 \) ]9 I% g( b7 j) [! v# W
dwTmpSkLevel = 1;
% i0 w1 p4 {" H. W
else if( nLevel > 71 && nLevel < 84 )
' N" w4 H1 e. v/ I5 X
dwTmpSkLevel = 2;
, M) f1 H4 R) O0 y" G8 u+ a2 e) P
else if( nLevel > 83 && nLevel < 96 )
" q; v |# z5 [% d5 R# h
dwTmpSkLevel = 3;
, r3 M7 \' T0 B
else if( nLevel > 95 && nLevel < 108 )
; X/ [/ g9 V$ i9 q8 V8 u& l! u
dwTmpSkLevel = 4;
8 {0 f6 M: b2 X, z' S! m
else if( nLevel > 107 && nLevel < 120 )
; _: V( }2 A9 |9 J* d! f
dwTmpSkLevel = 5;
& U; B9 ~- ^+ _, @
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 c4 ?: S+ g# r% Y w( s) ?$ L+ C" ]1 l
{
9 C2 ]; I6 w8 o: L9 j
LPSKILL lpSkill = &(m_aJobSkill
);
9 ]. r' _# v! s4 k/ D
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: g7 A( I$ J* W' d
{
, I4 H, d4 \: |2 u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' E; j; J3 b1 n# S$ c. x, ^
if( pSkillProp == NULL )
. q& e3 q) H6 S- t' m# T
continue;
8 h& t ~. x% o7 d, q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 [8 |0 ^$ F r. S
continue;
- \1 `& |& j4 u( r/ J5 Y1 P! a8 M9 g
lpSkill->dwLevel = dwTmpSkLevel;
5 p0 [+ p0 w2 w7 D
}
2 F+ W8 @% _, h3 e) J! Y c+ z
}
) p5 D [" ~( |0 M; D& [& J) V
}
: Y& H- t2 g. }/ A
else if(IsHero())
% g) ~* X+ Q0 L) _$ m7 _
{
9 u; N. P% d! c6 n# p7 X n, l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ w9 N; q, D. Z
{
! N2 J0 D5 j) A8 ?$ p! q
LPSKILL lpSkill = &(m_aJobSkill
);
' f2 f }: w" m5 a
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ k0 O6 a8 V. z. |) F! x2 O |! _
{
& S3 D- ?* J8 \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; u( z( m% O7 U& v; R- x9 t' E
if( pSkillProp == NULL )
0 p, ~+ g2 ]) z/ h. q* H
continue;
8 N7 d6 i7 { R1 L% U8 ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 m. N2 a1 \6 C- y+ ~! P- J5 L
continue;
4 P0 ^$ F$ h# j8 v' v4 h6 f. x
lpSkill->dwLevel = 5;
- ] L7 y. _2 F5 n$ g- n
}
, W- g7 E* _ C; [& ?+ U* ~/ o
}
" r! E7 p. L$ U7 K! O l8 q
}
3 ^, B$ A4 i8 i3 G3 h2 t
else if(IsLegendHero())
: E4 k9 {7 ]/ c: v# s
{
+ i, s* n# Q' E3 V9 l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( E2 A1 b; `9 Q% y3 y3 O
{
% f1 r, W' }4 J, d4 k; b. O. w/ @
LPSKILL lpSkill = &(m_aJobSkill
);
S( ^* u# y7 o+ R# M9 f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, F5 c* }6 ~: I8 o& F+ q
{
& y9 g. a I( A$ Q- a9 o! f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" q0 R! z1 X4 |
if( pSkillProp == NULL )
9 m6 K w% F$ p6 o+ {3 f
continue;
6 s; K6 l% n; O5 |& ]6 g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 m8 }, k0 R7 `% e$ u, ^: [
continue;
/ O) t, c! W7 m( l5 V
lpSkill->dwLevel = 5;
" x; T' @: I* |, S" l9 m' T
}
|7 D+ x* K4 X' G3 M
}
; I, o# r( A" |4 C
}
4 g+ H# V. Q7 g# Z4 r$ A; ]& c
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" q; n0 x/ A$ x) J0 O
if( bGamma )
& d: e8 v+ @; f6 N) K, P- C; n. J: i ^% Y
{
3 i- j7 f$ R- g! i7 ]2 w
m_nExp1 = 0;
3 M+ t4 L: F, \" L5 T( E0 b
}
( b& G- b) H# G7 e# l" g' T
- w% }# d# t9 M2 m
( (CUser*)this )->AddSetChangeJob( nJob );
6 K* B- z% [( N+ q5 D# L9 c; z
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 P, I: e1 Z$ V; q' v0 V! X- K ]
8 T' i5 u2 |, H# a
; s& \) A! n- G% b* U4 a& e$ T) P U
#if __VER >= 11 // __SYS_PLAYER_DATA
e$ u7 l" R: L$ d9 P
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
J+ E- G1 f% t3 m" ]4 n
#else // __SYS_PLAYER_DATA
4 }# P7 e- H# s9 H; I
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
' G- p; h9 [ [* E, G
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. h$ x* h+ E3 ?9 |4 ^
if( m_idGuild != 0 )
! T+ a+ z0 W4 N$ G0 v
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
# q# B% `3 D' t/ w
#endif // __SYS_PLAYER_DATA
9 }4 k5 ~3 n0 Y6 R
SetHitPoint( GetMaxHitPoint() );
' r* K% U" @- ^) ^, C3 u
SetManaPoint( GetMaxManaPoint() );
- a+ L, p' w, Z% R& l: H
SetFatiguePoint( GetMaxFatiguePoint() );
& q, y5 N- [7 x8 `
if( nJob >= 1 && nJob <= 4 )
& k" X6 l$ X1 `; P' O& y' W
{
1 x& G4 e, S( b* G
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* [. M* K: R* o; c
m_nRemainGP = 28;
& }+ H: G7 |, k7 ^# o4 \6 `2 e
}
% f+ ~% L( K4 s" l7 h% O
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
& s1 P+ F/ k& l. q$ ~ u) x2 v
{
3 O8 ]; r; x ` M4 p2 p8 X( i
m_nRemainGP = 118;
2 X8 j: p9 D. b
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
! y- L: u. a- b" c- v/ M$ o
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# T8 R% \( C4 s1 f. t! r
}
- A& I- J$ f3 U
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. q" n7 r1 T, M! G
{
5 }4 L: ]; ?1 X
CItemElem itemelem;
* r$ M4 ^/ c. y+ s0 m) A% j
itemelem.m_nItemNum = 1;
; h& d; v; o8 u' l
itemelem.m_bCharged = TRUE;
2 O! D3 n1 v* u$ Y1 H
BYTE nID;
0 Y0 V0 l2 e/ i) j& H# T1 U j
( ~7 |. D4 h: u
if( nJob == JOB_MENTALIST_HERO )
7 l! s! A1 x+ r9 D
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# v u4 ?2 U) @" j
if( nJob == JOB_FORCEMASTER_HERO )
2 ]4 i V- Y% g4 K
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 ?( `. f% ~+ O6 g! [4 d4 A
$ ]$ F6 H4 B% g9 X
( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 I+ n; d9 Z/ j
}
9 ~/ ^0 b; P' Y9 Y% I5 m* K
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, k5 i3 K, D; ]/ N' J& p
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
+ }! k8 l1 Q9 t; d$ F: {& E
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, |) q# ]5 Y5 n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! d) J3 I) s: D0 Z# A- k H$ b2 m
( (CUser*)this )->AddTaskBar();*/
- R% J: `1 r2 V; X
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. I& U* O. A8 E y2 ?
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 f1 e* H7 N+ y, p
((CUser*)this)->CheckHonorStat();
% w2 |7 R, r3 m& I1 n
((CUser*)this)->AddHonorListAck();
4 w/ u/ o' ?. ^# T: j9 |6 X% t, `
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 y3 P1 g6 E; i5 F+ D
#endif // __HONORABLE_TITLE // ′Tà?
y7 @ Q% L9 ^" ~' J8 E
}
6 ?( A4 Y0 O& c% a& X a
#endif // __WORLDSERVER
' }( b. q2 d" _1 D
}
) ~) e/ G q' C3 M
: r5 V* Y. Y, a$ O
然后你进入functextcmd.cpp并添加以下
, `# r. E! w8 [ X
. L9 d3 a0 `$ @1 X, x* {- [; E
代码:
, ~1 d2 o C1 }
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 i3 |1 X, C$ _$ ~
下面插入
) D2 z F9 u& r' E5 d. T
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ [( o7 v, ?. @- c# F ]
0 X& l4 v- N& K. o2 i c# d1 a
然后你去
; }. D6 E% I2 u6 o }# G0 F) R- v2 y
6 L; s* L* ]1 x
代码:
, D3 K" E6 C" N7 O i( s
代码
! r) `: `$ R F& [' K3 l- i
BOOL TextCmd_ClearPropose( CScanner & s )
5 O& a8 I$ m. o8 v( [; N6 Q$ f
{
" N% |* {+ m% q* }% \0 z
#ifdef __WORLDSERVER
9 Y5 y8 Z) V# j+ {. V
CUser* pUser = (CUser*)s.dwValue;
+ U, i, b5 t4 t& Z# s2 `7 R8 C: m
g_dpDBClient.SendClearPropose();
" u: e6 L5 S8 |- e+ a( `' r
#endif // __WORLDSERVER
% T% c! D- T8 e9 U; j6 j) |) f! O
return TRUE;
1 u: W3 h1 y4 b* I
}
. V6 t& O" f5 q% O0 P& e( k! L
下面插入
1 B2 \6 [, Y% a5 ~( K# H3 g" t8 R
BOOL TextCmd_rebirth( CScanner& scanner )
- h) G4 K6 s- I/ d$ ]
{
2 `1 [- d9 ^4 C% h1 S! t' S
#ifdef __WORLDSERVER
7 G9 W' T0 R: F6 ]
CUser *pUser;
0 K4 O" S) I* s! X. {
pUser = (CUser*)scanner.dwValue;
, K5 N& q5 Z# O2 u
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 B7 g1 T) q: |6 O' ]
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
+ k w `2 e2 q3 H4 c
else
0 Q- S8 M/ `% e
pUser->AddText("你还未达到重生条件!");
3 a% ^+ f) {; u. y' e
#endif
" ~) ]/ @1 q8 g, H& [9 Y, C2 a
return TRUE;
1 n: z: a# {% {$ \$ i/ D: h
}
- G: t' J9 \ `/ N
; q& V" E0 F2 y7 [6 d2 k b
3 u! U( I& D/ `/ E# K+ K
. l" z, {- x& e4 ]/ |) i, j" v4 p
2 ~ N7 x+ H+ D: o+ T5 f: N3 Z
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2