飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 R( R, J. T5 A) ~5 @
8 V& a; ~ K* ^9 s
Mover.h
1 m( b! x& k& K& a1 g8 p
代码:
& U6 [6 ^! Q# @4 Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 |" \! T2 i1 Q, k. b& V6 p
, @+ \, Z, ]# j. Z6 f2 t% O& c
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 } I4 [, \0 m! v- h
6 O6 Y- ?6 Y& w: F, m
然后你去mover.cpp添加
& I1 y0 V# F% {6 T. R
+ |& W5 A/ n r- v
代码:
: y% U# L! _0 u7 A
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
j$ u o/ d% i; |* g! V
{
0 \8 C `$ b9 w# T9 o
#ifdef __WORLDSERVER
6 G7 B1 e6 c d2 Y6 p3 k& D4 h
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 x/ I+ U4 ] E4 U* @ O. h
MoverProp* pProp = GetProp();
( Y2 K7 f$ _! k/ T
if( pProp )
! U& s3 S) \3 s1 t+ d; L
{
$ D. T+ k5 S2 L- E) R
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% ]6 g1 v+ `8 S; O
{
' ~# k2 D# {- t8 \# n7 y: ~% D
AddChangeJob( nJob );
0 Q9 \! a. E0 e+ g9 J/ O' U
}else{
/ L& V/ y5 ]9 L
return;
* Q; R# F1 ^9 u
}
2 q0 k# N% U8 J
int nPoint = 0;
& ^4 B9 o: n5 d
if( m_nJob == JOB_MERCENARY )
2 k7 s) E( ^5 q
nPoint += 40;
6 [; Q) ~* j e1 @# d4 k
else if( m_nJob == JOB_ACROBAT )
, O6 A2 U. U# R/ H/ I
nPoint += 50;
3 R% W: T7 ~ J
else if( m_nJob == JOB_ASSIST )
4 ]1 r5 R" |2 X% v( F4 R
nPoint += 60;
/ t" D: ?* D3 O. W8 H6 F
else if( m_nJob == JOB_MAGICIAN )
5 V V6 E4 a1 g- y5 Q4 M
nPoint += 90;
6 o4 a- g I) ]8 U6 j9 L$ g
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# K8 O: S) v' ^+ A+ }
nPoint += 120;
3 V- S0 `1 _8 ` n7 y, I- Q
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 n* {7 O- x \! B# F" V/ V$ Z
nPoint += 150;
1 a* ?8 Z, n& `! _
else if( m_nJob == JOB_RINGMASTER )
* b9 z% A( o; _# L6 Q) L
nPoint += 160;
$ f! ~1 I* F+ y, Q9 g3 Q* d3 ?' j
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- a: _: [# W- j' V2 i6 j" I
nPoint += 180;
& V" k, {4 X; d# w4 \! L
else if( m_nJob == JOB_ELEMENTOR )
( a( b9 R. P8 d, ]& Y+ M
nPoint += 390;
0 h7 w8 x7 M# b8 D, k6 a
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ w o; Z* y, f6 B5 `: E, J
nPoint += 120;
+ i& p* n; k( e1 ? t
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 J# S7 T. ]1 L- X' P
nPoint += 150;
9 I4 Y, x5 y3 b& v4 Q
else if( nJob == JOB_FLORIST_HERO )
" E: j/ h0 n" D/ Q
nPoint += 160;
" [ j! F+ t+ ]; J& ~" `
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( N6 @4 y2 x( M1 c$ q- ]
nPoint += 180;
3 z9 C& I% J7 A
else if( nJob == JOB_ELEMENTORLORD_HERO )
* X5 z' e) n+ p% }$ e7 b
nPoint += 390;
; V$ ~) s7 q8 w0 D: H5 d$ w/ C, l/ p9 h# y
7 {/ y+ Q: u2 U6 C( S9 Y1 }
AddSkillPoint( nPoint );
! f2 d- v* y l ?
m_nLevel = nLevel;
" B3 u4 F) ~, r/ `
$ @: g" G; x: E2 M1 B! h1 ]- [
SetJobLevel( nLevel, nJob );
e4 C, V2 t4 I$ \) Z7 @
m_nDeathLevel = nLevel;
3 ]. t3 H8 _* B( U7 t5 r
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 g) M+ A4 n' |. [
if(IsMaster())
6 J1 z$ [# n( [8 |0 n* R7 H
{
. K" K5 l$ M$ \* c# j, ^! Z7 r
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 o3 p% t7 ~" ]
if( nLevel > 59 && nLevel < 72 )
) F! t/ J) C$ j
dwTmpSkLevel = 1;
2 M. g6 Z( U. g4 Y) o' f# j% v
else if( nLevel > 71 && nLevel < 84 )
1 Q( G& G$ R# q9 |1 I) |
dwTmpSkLevel = 2;
! M8 ?1 d2 U. ]2 ?( X) o
else if( nLevel > 83 && nLevel < 96 )
3 J& A; X4 g5 V) I; R
dwTmpSkLevel = 3;
" E8 C! X5 g* E, U" V
else if( nLevel > 95 && nLevel < 108 )
. m8 Y" W- [: l. d
dwTmpSkLevel = 4;
# R( i: ?; I Q, Q/ v. W
else if( nLevel > 107 && nLevel < 120 )
& [ A9 E, q. R( N. o* H6 ]
dwTmpSkLevel = 5;
& e5 Y1 n1 v( `, ~+ u; _
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 R' }7 ~ T X/ o7 E! Y4 J7 c$ v
{
; F `, B) c' t* g) d
LPSKILL lpSkill = &(m_aJobSkill
);
& {. w7 Q) D' ]9 a8 J1 X. `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( m! n/ J6 Q( T7 q0 i
{
8 }1 l% K$ z2 ~0 e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( J' `; j1 |0 O t) ?9 G/ l; w
if( pSkillProp == NULL )
) ~' E2 C+ r( ^; m: Q' T# V
continue;
8 J! e1 A+ `/ {- n( S3 J6 `' @ {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 k# q: c! P# x- C6 a: S# e# m( v
continue;
) U$ _' w1 o( I( ^9 R
lpSkill->dwLevel = dwTmpSkLevel;
! L5 K9 n8 P' n. {; I% J) {6 S
}
2 V( F' T4 v, Q5 [
}
5 y3 [) |5 z& y
}
! k* X _' J: \9 u) |& t
else if(IsHero())
* a4 a' R: B6 E k
{
( M. a# R3 w% r( w
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 @2 O6 b5 w: d0 ~9 n B' i6 k* k
{
, [& x- a6 u, s+ ~/ Z( M, f
LPSKILL lpSkill = &(m_aJobSkill
);
; p1 ]" M% c0 G" u2 t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 T% N; O F4 w5 G# u' ?
{
. c! u( ^# Y$ F2 X9 F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 y9 S1 x o8 }9 z. Y5 i0 L- C
if( pSkillProp == NULL )
* U' v! C6 W! E' b- Y2 _
continue;
$ ~& O- g7 R* U5 [, B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) |9 m! r) c/ H" ?+ j6 O
continue;
}8 J$ x6 k5 Y/ V9 G4 \ Z4 N
lpSkill->dwLevel = 5;
, N& k/ ^% w; q7 \" [8 q
}
: p; _5 g2 L5 ?5 o" a
}
1 W$ C: e4 _' d! h2 y; g7 T# w" K
}
' Y. G# ~: ^# z/ k( U% S) o; \) C* q1 P
else if(IsLegendHero())
1 [" `2 |/ k8 U
{
4 P( x+ N+ E& C) x6 ]% R, `
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% i% W: O, ?6 E# w
{
5 U/ a" O* O, y1 t/ w# H+ C. u! q" C* R
LPSKILL lpSkill = &(m_aJobSkill
);
- m1 ~6 c4 ]5 V' K0 d L
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- |# c# |* K# n2 ]. x8 z+ i
{
1 ]1 ]+ F+ c: M; P) M9 y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: f* ~8 x* F2 e- |
if( pSkillProp == NULL )
3 \% W, Y) O5 }2 N
continue;
4 c$ s6 G+ @' L* N3 r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, C1 e& Y" u" D% h- b1 K2 j
continue;
* P" p U4 |& ~- q( O7 D1 X
lpSkill->dwLevel = 5;
4 G- W. T$ m! X: |9 a
}
& c9 C! I8 T6 J7 f8 n D% \
}
& u8 z% J; Z p8 v8 y1 D& e
}
3 G0 I$ \9 G# g1 I
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& r! E: Y& f% L. {. ^
if( bGamma )
9 y& y2 K! O' Q. y- F
{
4 X* \, c( J- y" C/ s) M
m_nExp1 = 0;
+ x) f" Q2 h# U8 P5 W$ A3 k
}
J6 |2 I% Y. L8 X
5 l: K+ A; [# `4 I' y* t1 V* b$ Q- `
( (CUser*)this )->AddSetChangeJob( nJob );
: P! P- q4 C' s; A' l
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ O; }2 \6 F4 R: z& H
4 X# M8 L; u9 d- z! A
) a4 T7 X5 t& G4 p% C
#if __VER >= 11 // __SYS_PLAYER_DATA
6 c' K# x& P% t! z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
" S% v" N2 x2 c1 l D2 R h
#else // __SYS_PLAYER_DATA
% X$ s1 r# M) }) N( W! v: W! p
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# G! z* N2 U& b6 q) c
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( Z/ i5 o8 H% y7 k) {
if( m_idGuild != 0 )
5 N4 q0 z8 O8 `& q' a
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, b; q. `+ S. l; \& t
#endif // __SYS_PLAYER_DATA
! j' x( N# f; l+ _7 B; ]! c+ g2 V
SetHitPoint( GetMaxHitPoint() );
. D! i% _% P% J+ e
SetManaPoint( GetMaxManaPoint() );
0 i9 ]1 H ?4 r) o, ~
SetFatiguePoint( GetMaxFatiguePoint() );
* P5 e9 y# Z1 B8 E* @ U
if( nJob >= 1 && nJob <= 4 )
b( o; P. j. T& d/ T
{
- Z9 f' a, I7 r& u
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 N+ v8 \& Z3 B" \
m_nRemainGP = 28;
9 h/ ?+ ^3 L1 S: u. t
}
) n8 b( Q! ^, [! O0 _( D5 e$ n
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! _) V+ z9 w# B8 ]6 M/ l
{
& E# e) d2 Q5 ]3 L+ u5 ]
m_nRemainGP = 118;
) T8 M8 U* E3 S N0 s
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 ]" v! _: {; o* D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. B$ A4 X! H6 R$ v
}
7 ?$ X( e$ L) R3 \+ n- j
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" P3 O) H3 o I9 @5 g: S; ~+ V- G
{
$ H- P( O+ e9 E% ^" ^1 L, q
CItemElem itemelem;
$ M' c* _) k- l0 w1 Y
itemelem.m_nItemNum = 1;
8 m( T1 F% }1 V/ s4 z! {
itemelem.m_bCharged = TRUE;
2 W. e9 Q/ z( N& v" j
BYTE nID;
& H& Z1 {. t3 w9 Q4 h0 m- Z9 x- J
& o- Y R/ E2 t! r: a
if( nJob == JOB_MENTALIST_HERO )
& J1 V, F% c6 |5 N& M
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. q' M9 H6 | d! E$ u- q$ v9 w
if( nJob == JOB_FORCEMASTER_HERO )
( Z! x& W' L9 O3 Z/ \! K% ]
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 H, q" Q" m d. @3 }( v
0 m5 O3 `3 ~8 U z, s
( ( CUser*)this)->CreateItem( &itemelem, &nID );
* m# G% ?4 L6 {, L, e
}
& {% M3 k9 {' X% x6 Q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; W: t a: |3 F6 ^* D
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
7 D$ d* V( J3 V* U6 r9 o; x: Q2 d
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 I H. s& b6 s
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
0 V/ p- ~2 l. Y+ E
( (CUser*)this )->AddTaskBar();*/
9 N( P3 l8 ?6 {
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 @8 g/ X. R% R. S2 g) I5 E2 A, C
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
6 i0 V& N& @ M/ A
((CUser*)this)->CheckHonorStat();
. g0 _ P* p& |
((CUser*)this)->AddHonorListAck();
: f, X" Q1 K5 k: z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" y0 Z) k" ^; ^& X3 c
#endif // __HONORABLE_TITLE // ′Tà?
/ F# R* @( E% G2 L: A" p
}
8 O0 D$ I+ r# q0 x+ C3 U
#endif // __WORLDSERVER
! u! h5 @; b& E6 j
}
+ M. N* P9 u! Z ^ {* M
; R+ t' t1 S% l/ M
然后你进入functextcmd.cpp并添加以下
, e% v+ v+ j& X% }/ s* V2 S4 c/ Z
' U% B. V$ ?1 q; k Q" |; F2 j
代码:
% @+ q, {/ D4 e4 Q' l; i
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
* {- g( D2 w2 J+ n9 L& A9 m
下面插入
. |! j7 J9 ?/ x
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 Z7 T D$ q1 p1 I+ s- @% d: ]
+ I+ M! z7 B9 s1 B/ A" A
然后你去
1 X% W: a" A$ R+ u {
' `$ h4 H- U6 w. L
代码:
7 L: P( `1 w! i, m* U
代码
) c! W! `! T( a, U3 B
BOOL TextCmd_ClearPropose( CScanner & s )
/ T% c: B' Q! `2 g
{
5 c0 _5 v. q- S6 ]' T
#ifdef __WORLDSERVER
- [* k" I- g/ O/ e0 V( }
CUser* pUser = (CUser*)s.dwValue;
; i5 |3 a0 H- k% o
g_dpDBClient.SendClearPropose();
, z1 B$ T% o9 W& \1 w0 L @
#endif // __WORLDSERVER
1 j4 x! |% r* d- \
return TRUE;
! p+ s, d/ b s# M/ Q* M
}
( T" g* c# ?( S3 `8 L: |
下面插入
$ G2 r* y+ r- j/ J2 a2 W+ N
BOOL TextCmd_rebirth( CScanner& scanner )
J' k" X1 T7 H6 n% Y! r! I8 J
{
}6 K4 @) r! h3 L
#ifdef __WORLDSERVER
* u5 M( ?4 {, @/ k( t
CUser *pUser;
% Q9 X5 h) h* X. O4 V. s1 J
pUser = (CUser*)scanner.dwValue;
. g) s0 P" M% g3 R+ [7 Y' J/ r
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, u7 U' z- r# }- R! h
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- K& y3 [; [% R w9 s: Z9 K. m) i
else
; i7 D, N0 g$ E0 |6 X; g, F2 b
pUser->AddText("你还未达到重生条件!");
# y( |2 y' @8 }( h% T# f
#endif
+ X1 w" F- C: `6 R+ K( |$ S$ E
return TRUE;
1 u: W# ?# P, t; Z
}
8 S' M+ f/ `& h. s4 Q0 Q; ~+ P0 n
% {2 b8 n) s% ^4 G# Z. B- t
x- K3 _- @; t _0 P* x$ F. c2 c4 I
( N$ l3 x( @: Q# J8 r- k3 V
$ \' y% O1 j: ^, p/ i- K. s' X
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2