飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. C! {! D2 W) R
7 b9 V9 {. ^% k, I. s9 B) ?
Mover.h
& w6 T; X- X7 \' T( [6 p
代码:
9 c; n+ K" C9 Q, k# V1 ^
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: T) @! T& n* l% _9 e! B
& L2 j. P3 L5 W# h! W: Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 d9 o* U) z, W
4 Q, V& D( T, c1 f& E) P
然后你去mover.cpp添加
% U# x4 O+ f' Q
8 h/ R" c0 ~' v6 f* m
代码:
! l7 v/ q4 w% `- ?5 C) l8 n
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 X1 J. D0 P' p2 X/ P/ z( O
{
5 t6 u7 Z. q: T: {+ J! M
#ifdef __WORLDSERVER
1 z* X* P' I: t" X- J5 K+ ~; t; V' ~7 u" `
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 f L v- b% @: g$ z
MoverProp* pProp = GetProp();
% v# w. E8 Z) j
if( pProp )
4 ?* E0 [2 Q. R( ?
{
1 \' P) n1 z6 G
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
$ {" L: h! [2 j* @% o
{
3 H. d* N* w; d2 C8 Q
AddChangeJob( nJob );
/ U' \; u& _2 \& l$ r
}else{
, {) {6 X, z: l$ ^6 ^3 m9 K" O9 W& x
return;
1 y6 z7 h8 A/ j. e) v+ p- a& L! [
}
. }! e. e- [# s3 y6 {. n
int nPoint = 0;
. p2 b$ h( l! N" k1 ]) s- N
if( m_nJob == JOB_MERCENARY )
! Q8 H7 O1 @9 z2 C
nPoint += 40;
3 m/ S+ P# m) h6 ?& k* B
else if( m_nJob == JOB_ACROBAT )
# t% l7 G3 R) _) K8 g
nPoint += 50;
0 D( @: M* b# V: w
else if( m_nJob == JOB_ASSIST )
7 u9 f# Y4 b! w2 _% l" l
nPoint += 60;
; Y. E/ F% M: X% d- ~$ [' Z
else if( m_nJob == JOB_MAGICIAN )
$ R8 Z z9 m4 P) c5 o) {
nPoint += 90;
3 m( Y# K; W% v4 d0 Z5 o! W' a
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! T J0 i6 j1 w4 D: X2 }
nPoint += 120;
( D: [ T! m6 l* P( x& K+ @: S
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
{% l) u! J9 |3 b
nPoint += 150;
9 y# v. |; V5 n& n
else if( m_nJob == JOB_RINGMASTER )
0 ~6 X& I Z1 |' G
nPoint += 160;
# K6 N" @ D! C1 c
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' F" g$ |" K# G% p! w
nPoint += 180;
- ^3 H( h* z, h! a
else if( m_nJob == JOB_ELEMENTOR )
& z$ K& r3 t3 h P9 E* t
nPoint += 390;
# H7 u y* y$ [0 V8 D" g+ n
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 ~0 S( ]& u* k
nPoint += 120;
) y3 U$ K$ a1 U2 P7 x
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 Y# I! }) ]* b8 f$ } C
nPoint += 150;
: G& B& T4 D7 X2 J, r
else if( nJob == JOB_FLORIST_HERO )
8 ? m9 n' c4 N: p1 H
nPoint += 160;
; L( X% _; v4 ]2 n/ H+ F# m
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' i8 {" u" a. I" e( {
nPoint += 180;
8 v X v; b3 s- B# O$ K
else if( nJob == JOB_ELEMENTORLORD_HERO )
' j2 c" K. ^ e3 m* X; W9 N
nPoint += 390;
1 j% ^0 ?$ `; g
2 c2 D) n G* C+ k4 A& d6 ]
AddSkillPoint( nPoint );
" o& {; R3 P3 K; k9 ]1 f
m_nLevel = nLevel;
! u) f" }$ c4 l+ A! I$ u
4 e& a. z. r: v
SetJobLevel( nLevel, nJob );
9 w* Q. s* E$ J$ l- [* {
m_nDeathLevel = nLevel;
! J7 E" ~( Z( ?$ @% I. O
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) G. E- t! ?0 H* o! v& ^
if(IsMaster())
( k2 H" q$ H2 o
{
6 Y2 h/ ?9 g' g4 U
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& J& H& j6 V. H. _3 _8 }
if( nLevel > 59 && nLevel < 72 )
5 j3 [9 ~: a' S7 G8 h
dwTmpSkLevel = 1;
& ?% b2 Z( t! B
else if( nLevel > 71 && nLevel < 84 )
8 S- b: _: E; g
dwTmpSkLevel = 2;
* ?! x6 K9 K9 s# l$ ~* D9 a
else if( nLevel > 83 && nLevel < 96 )
" L: [; M4 _6 e8 }' u
dwTmpSkLevel = 3;
; g! v( [4 V1 \* Q$ q! _
else if( nLevel > 95 && nLevel < 108 )
3 M/ e; ^9 w# W
dwTmpSkLevel = 4;
6 N( D: d! O" G& d% U; ^
else if( nLevel > 107 && nLevel < 120 )
0 p9 f( M' t4 h o; G, x
dwTmpSkLevel = 5;
0 ?& v" q' ^! ?$ O7 F5 z% \: r# R
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 A0 d) x$ ^: `# V+ i
{
8 \8 `5 L( y+ Z. q- D2 l
LPSKILL lpSkill = &(m_aJobSkill
);
% }' F! J7 s2 V8 e3 q; L5 z0 W
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 B6 x1 M# e8 c9 F7 U
{
. d. c* O4 g5 ?! p! Q, u) \2 I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, J* U! Y" l# _" V5 n4 C8 K, {
if( pSkillProp == NULL )
2 J$ }9 v$ r- M; Z6 l
continue;
! `) x4 r w! i' t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ z9 j! |/ k! X+ j1 o! k
continue;
5 u. \- ^+ b) l$ m
lpSkill->dwLevel = dwTmpSkLevel;
! T( [2 m8 _: s5 \ z
}
5 V0 | R! Y/ d" m" p7 v, ^
}
! U' Q7 R/ K! n3 q. u) b
}
0 ^# s% E# B6 J# S& H
else if(IsHero())
; k) w9 c7 n, [* K2 C" q
{
& |+ j: m/ a2 G1 \' a, N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ k2 ^+ {" H0 E5 m& s
{
8 w2 o, {! ^1 }' Q
LPSKILL lpSkill = &(m_aJobSkill
);
- S( c; p) O( g& J, q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: M/ E4 B6 M' }- k8 ~6 h! _
{
! d! L. |2 L* C/ J3 x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, c6 _# m1 t6 N. @
if( pSkillProp == NULL )
8 j, K$ j4 X( S5 j3 p
continue;
9 D6 o! N. B, E% g8 B1 l8 P+ a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
N9 I S; b# O9 b6 Q
continue;
_ k. S# f8 [; e' j! d
lpSkill->dwLevel = 5;
; F7 M" {9 b! z) X4 r& o
}
2 m# `4 G2 {3 w& @, L0 X) |
}
0 Y9 I7 j. p% d* t" v0 s2 q$ j5 B, V! Q
}
. \0 B6 ~& x6 N; p8 P9 e! T
else if(IsLegendHero())
+ y- {- x) V. T1 C/ c5 ^( b
{
% f# [1 G7 a: ~$ t( A/ q! n
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; R- \$ A: a, R7 H6 t W8 G1 z! f
{
; B1 d5 G: k; B
LPSKILL lpSkill = &(m_aJobSkill
);
3 M- C4 Y4 ]5 {& s, |
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: R3 Y6 ]; ?. ?5 [$ \1 P
{
5 ?6 R/ b7 {& g7 f$ d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ w) o* ^( ]3 [6 o3 Z. i; i: }
if( pSkillProp == NULL )
. a" X- s! t1 Z! z8 ?* K
continue;
9 ~; L* E0 Q5 h* s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, p3 {; f" p2 f' c* c2 U/ V5 ]% q
continue;
+ k6 X" z3 ~8 `! G9 |
lpSkill->dwLevel = 5;
; U" U* R5 s' X" E8 P
}
8 |0 E; d# S: H7 b2 `3 d# U* D
}
& c$ i3 ~+ t8 }9 y9 T+ {: u- Z
}
) [$ z( `9 t' \) n7 X( q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ c1 B( r, D! b' d; [5 h# P1 V* A
if( bGamma )
1 l+ `1 R. ~+ F: D' W
{
h7 D! ]8 R5 a9 W. N% |
m_nExp1 = 0;
8 Y% e6 @4 `& q- Q1 M X
}
2 T% I' j) R5 o
) B2 M. [9 K3 z- f1 o. Q- S8 v5 {6 P
( (CUser*)this )->AddSetChangeJob( nJob );
_5 h% ]7 w% _/ j6 ]6 s: s
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' I$ C' w; U# `9 b4 I/ ]0 ~
+ b# v8 j$ G7 c4 [- B
8 e1 Z" S% D1 d$ ]0 V# F
#if __VER >= 11 // __SYS_PLAYER_DATA
8 x+ q6 i# y8 i* Y
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; \' R$ D6 H. Z* J5 H- B
#else // __SYS_PLAYER_DATA
$ ]+ v$ V- T8 \
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 L9 p9 }5 V" Y3 n# Z+ b$ |
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
" w a0 E1 o$ P ?, e* O/ r0 s
if( m_idGuild != 0 )
+ M2 w5 s' f. U: O$ n) `* p6 K1 ?1 e
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 @( \& u" ~: g/ Q( L" F" I+ S
#endif // __SYS_PLAYER_DATA
) O. d# X, Q; Q4 s E' B1 H$ z
SetHitPoint( GetMaxHitPoint() );
+ V% p5 c6 x9 R
SetManaPoint( GetMaxManaPoint() );
w$ E: ?+ ^2 f
SetFatiguePoint( GetMaxFatiguePoint() );
% D% Z( o, F$ d+ y; l3 N/ ?
if( nJob >= 1 && nJob <= 4 )
( A9 Y% ^2 T4 A5 |+ ]
{
- b. R. }' \& |! H, a& r
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 ~4 q- w+ X+ Y
m_nRemainGP = 28;
0 j. R% Y! U* o
}
% |: Q+ o; @, X4 T2 w& w Z+ z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
+ @0 W4 d1 R0 v! |% k2 o0 }$ G# f
{
% v7 d F$ c* X" F+ L" Z% z$ B
m_nRemainGP = 118;
, }* m0 }, }( x; ~! X) ~
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ K2 _4 @+ R0 F# w
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( s$ v2 A7 w- Y/ R+ P$ P5 Y
}
' `8 C- E; p" J0 K: V7 K
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; L# d$ Q9 U6 J( m
{
6 J' d: c2 F3 x: [5 Y. k9 N
CItemElem itemelem;
0 Q" d" c F) Y
itemelem.m_nItemNum = 1;
* W; C3 U, r* |) P* ?& i
itemelem.m_bCharged = TRUE;
3 q& M+ m( {* u- [
BYTE nID;
! m6 d: |/ `0 W6 v" u
& O2 a8 _) Y) E+ r
if( nJob == JOB_MENTALIST_HERO )
% P+ V1 w6 p* L8 r/ |: T$ S z1 j' [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
: a E, [/ d2 b- U9 E' `* e3 h
if( nJob == JOB_FORCEMASTER_HERO )
% O/ K8 f9 N. p# L) g
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 d% `: _! i( |) _0 U* q! v% l e
3 B8 q4 h- W" c c: L
( ( CUser*)this)->CreateItem( &itemelem, &nID );
; }3 j5 j1 j3 h, G
}
D. W* b; f; o
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ |8 n& j2 t& a9 ?6 n
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* q e8 L9 S, G5 Q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. X6 F- Z) N0 u& P1 Y; m
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
2 c7 Y6 J( D/ f0 V- N
( (CUser*)this )->AddTaskBar();*/
. F s6 Q- _* L `6 A
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: `* K% s8 \, q. h: F
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 ~+ L. B3 S& C
((CUser*)this)->CheckHonorStat();
. h' ~8 u- O Y$ ~: N
((CUser*)this)->AddHonorListAck();
/ M% j5 o; }) Y6 H9 v3 j
g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 E# n6 ^5 X1 x' s
#endif // __HONORABLE_TITLE // ′Tà?
' W% h& X% o! B: w7 s( E
}
' J& B; q4 N; A* \3 X# r7 m. a" N
#endif // __WORLDSERVER
$ i: U. a. |" f
}
! f4 r6 v. z! ]
3 H! p$ U2 h9 e1 I( y! E3 c7 @
然后你进入functextcmd.cpp并添加以下
* }; ]+ ^( K6 l. m+ `6 l3 D0 B
' \4 B0 y. n* M' V
代码:
1 p2 }9 B- A5 m- }* x. S
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 }6 M! N( b" W6 q0 M7 h
下面插入
& c" \: ?; u! e5 P+ d4 J
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 y# u, }8 h+ d M/ ~+ n
, F1 N- Q( H! j9 I
然后你去
. g6 r; r9 |0 [/ d
; v1 H, q8 y# ]5 }
代码:
: b9 x& _0 M8 J
代码
% }, U8 z5 c1 l2 P, v. ]0 m$ t) T
BOOL TextCmd_ClearPropose( CScanner & s )
) ^: ]+ }& k( f! M
{
& ^0 @9 V& I1 t7 w
#ifdef __WORLDSERVER
' D4 v6 `* N* [5 Z) Q; a
CUser* pUser = (CUser*)s.dwValue;
6 h3 w* ~9 t; a$ d7 B
g_dpDBClient.SendClearPropose();
8 c, j4 Q) _% g! f% h
#endif // __WORLDSERVER
; m% r: y* {; C9 O
return TRUE;
& N; m6 y+ h7 r# a+ b
}
. h% d4 ]5 _0 c* a% N1 ?; m4 y
下面插入
% |& I4 U7 s- N. n+ T4 j
BOOL TextCmd_rebirth( CScanner& scanner )
, r! [6 J" H5 z/ `% @- X5 L8 ^2 a' a
{
+ C3 G# Y0 \* W( n+ R
#ifdef __WORLDSERVER
4 _# R' e% r6 I* u
CUser *pUser;
$ @3 A5 a2 a" v p9 d8 B- R
pUser = (CUser*)scanner.dwValue;
+ U0 O8 e& U7 B/ D
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 N9 r: U& G7 v1 W* g+ h+ o- I
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. ?. K& V! K$ _* p4 }
else
% p3 m# L- {: L2 N/ e& V1 P
pUser->AddText("你还未达到重生条件!");
) p* ?0 _2 K& g; e4 T
#endif
: \$ i$ J S3 k
return TRUE;
5 p6 |, b6 ~ N# C
}
0 e/ B' `# ]2 m# b3 S a4 w4 }
* \/ U W+ [1 a+ y O4 v
! {, i1 B1 j& H! J) D5 I
, L% Z+ J% \% \7 R I( Q
3 r. v" _5 v- k# K
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2