飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
1 h+ ?- Y, L& P2 K: ]$ D
! @2 d* D+ \; p' q- T4 X( z8 ]' O
Mover.h
$ }+ {8 @2 {5 n$ r
代码:
. H. S l% d* g6 M. U- k
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ T0 B2 d2 z0 |1 I9 j: I1 f0 u
$ r, L6 D1 [$ f
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
+ a) ?5 Y4 b8 O. S% R
2 q) R+ t: `" v1 |% c! d o
然后你去mover.cpp添加
+ Y1 Y8 H) J% D1 Y1 B' g& G8 H
8 N$ q+ v1 E* v8 z4 T- U9 ?
代码:
/ i+ i2 u) y7 Z* v/ l5 L1 S" u
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 t4 A# T( R/ |9 @/ s
{
1 G. R2 \8 X$ o8 \5 c
#ifdef __WORLDSERVER
( }. |) k# C& p+ a H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! U* J- L# ] M, G0 |8 N c
MoverProp* pProp = GetProp();
! `6 K( Y! K# T) y
if( pProp )
. k/ B9 \5 o: z( N0 y% c& I& @
{
/ a2 V% z2 H+ ^% x
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ D+ _1 h* a5 F1 V5 S
{
' j! S4 ^! ~4 B4 T+ C, I
AddChangeJob( nJob );
d$ Y4 h" P- A4 j
}else{
% S9 M( N) m/ v2 V+ [. A+ {$ @
return;
* m! v1 `+ _1 S2 ~2 f
}
2 N$ ~( t, S4 X8 X
int nPoint = 0;
3 {6 X- I6 h" m! B u- b2 D7 X
if( m_nJob == JOB_MERCENARY )
3 y! M7 Z1 `. z' k) {2 }
nPoint += 40;
0 V/ V0 V% L" ^3 P/ S
else if( m_nJob == JOB_ACROBAT )
& E6 {0 i6 w2 |. c/ n3 u3 A. V
nPoint += 50;
# P0 ?" f8 o- B+ O0 w! l. {
else if( m_nJob == JOB_ASSIST )
9 x# G4 p6 `, d% Z" @
nPoint += 60;
% R3 P% D: z- g
else if( m_nJob == JOB_MAGICIAN )
: \. b9 W' F) }4 S6 X
nPoint += 90;
6 q4 ^& O0 x# {( i# z. z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 Q( G0 D: R |) x
nPoint += 120;
6 ]; k; I4 X7 [7 K/ C' ]( `+ ?$ @3 G
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: B: G6 i9 X9 V
nPoint += 150;
3 u y7 f& J* W* @
else if( m_nJob == JOB_RINGMASTER )
6 j2 P7 E" y1 \: i
nPoint += 160;
! B: p2 b1 @# n3 F" l* T. M
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
3 v3 b% y) f) d6 m
nPoint += 180;
- I1 T. c* b. h2 i& Y* G" f; o! K
else if( m_nJob == JOB_ELEMENTOR )
6 i3 v9 C* m, o- b4 d) K8 X
nPoint += 390;
+ p) ?" z% z, _# I
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- [% A9 Q. Q( T, s" Q w
nPoint += 120;
9 o1 B' h8 r9 D" p2 V n) ^1 \: Q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 J# _+ ]8 P( f2 x0 H
nPoint += 150;
+ M' E. C% E: l3 p7 Y: X( N
else if( nJob == JOB_FLORIST_HERO )
$ A6 n9 ?% p$ h
nPoint += 160;
4 i: U* h( c5 _! Y' E( N2 B; d
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 w- R) t3 A% a; J* i$ _
nPoint += 180;
- x: d: i; T; e
else if( nJob == JOB_ELEMENTORLORD_HERO )
3 h4 ~7 b2 z* m: P
nPoint += 390;
" H# K7 Q$ ^2 ^8 \% E! C/ l+ M' Q" @
! G4 I- k6 u' e( b" ^0 c
AddSkillPoint( nPoint );
! Z. W0 G0 n* H6 b' l1 R0 d' G
m_nLevel = nLevel;
# N2 i0 Y1 I* G2 T/ R7 P+ @
) e) T) _- R% B! H/ @" {, }; A& i
SetJobLevel( nLevel, nJob );
+ d5 S4 \6 H ?1 k
m_nDeathLevel = nLevel;
* Y' N# z1 c; s9 k/ f& C* }
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 e8 S4 s! y, |
if(IsMaster())
) y* k6 Q9 [: T/ ?+ M
{
2 ~- n8 t2 G! a7 c. i1 h! d' g+ p
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
( }6 Y+ Y8 f% e0 z: l, K
if( nLevel > 59 && nLevel < 72 )
) o% J# k# m0 \* C
dwTmpSkLevel = 1;
* B. W1 G0 n7 E2 f0 Y4 K0 n# `
else if( nLevel > 71 && nLevel < 84 )
) U8 [9 Q* m2 B$ ]( ?0 ^3 r
dwTmpSkLevel = 2;
6 k: E0 s3 i O
else if( nLevel > 83 && nLevel < 96 )
* T+ U, Z8 L, J1 y6 ]
dwTmpSkLevel = 3;
2 d( z8 u% Y! y% E# r- `: ]
else if( nLevel > 95 && nLevel < 108 )
+ u0 v8 l+ N$ _/ H' l
dwTmpSkLevel = 4;
1 I$ i! O6 T8 C% F2 ]
else if( nLevel > 107 && nLevel < 120 )
; ~$ H/ m3 g7 d$ \
dwTmpSkLevel = 5;
. I( M+ U- F8 c t+ K5 Q9 N6 H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 B) l5 J. _6 }9 |# e+ l
{
# ^. {. S- u: V! E i
LPSKILL lpSkill = &(m_aJobSkill
);
% K$ O1 R* X# G/ t9 q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" Y9 ?$ F' I0 R# x% [+ ?4 @
{
9 D% w( M& o, L; i9 s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ X, q* K3 ~3 z' j
if( pSkillProp == NULL )
4 S# ?6 n; P0 S0 x y4 M) k
continue;
, T; n6 {2 h. ]" Q( C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' ~, S% u( A" |2 k! w- i
continue;
: [% n2 D* N/ P% E) ~
lpSkill->dwLevel = dwTmpSkLevel;
3 m! O+ t6 c! f7 B
}
' K. B4 U5 D2 W
}
& x. s/ W+ R* V) ~6 J: x/ a7 }
}
8 @9 S9 h8 y) i. L
else if(IsHero())
' f0 Y# o7 T+ X2 }" W* L" l
{
# ~2 `% D9 V4 q9 E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
A3 z! g- v8 j' F
{
: @2 ~: W& {' D( C5 [
LPSKILL lpSkill = &(m_aJobSkill
);
* W4 l/ P/ z% A0 T
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ V0 M4 l1 \: @. S8 }* @4 M
{
2 J+ n& M( Q ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ W5 }0 U: _# b% F; a- u1 @$ V
if( pSkillProp == NULL )
4 v! J3 n0 t2 t6 W
continue;
1 ?0 @+ x9 o0 ^1 t4 U. K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 b! p/ P% j, [ R& S9 p
continue;
0 Y2 P T' p/ i7 L6 B6 f
lpSkill->dwLevel = 5;
' v4 U% U- u! r
}
: W9 r, |! P2 [9 C" l' s# V
}
- I% c/ z- R C: r! Q
}
9 G) U1 c# }- V3 |, U1 q! a
else if(IsLegendHero())
0 ~3 @# Z# m' [) @
{
5 O. r7 h+ ~4 l) B
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 i7 U2 J% F0 z4 U
{
9 {: ~& o+ D" [$ _7 Y
LPSKILL lpSkill = &(m_aJobSkill
);
+ Z* b9 a9 Z- F! E9 Q7 a: V/ ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. M3 c* B) L. c6 y4 s, L( P
{
$ E0 W4 f4 v5 P7 O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 u$ q* v) w: g9 n# f
if( pSkillProp == NULL )
/ t& Z" M, H! m f! q
continue;
1 C7 s% E; j7 Z# j: v9 y& s- F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ G4 B+ d5 p# O6 n; ] u0 t; A( I9 M
continue;
+ [+ X- b1 Z0 I4 ]! t3 ?) W0 _
lpSkill->dwLevel = 5;
( ]. @, u, R. M6 q
}
' V& M1 H" a% b
}
5 E0 y/ K6 `. m& W
}
1 U# B4 C0 ] ?+ ^$ V- `: U/ S
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 M2 l- N* X7 C- r7 A9 {
if( bGamma )
0 _8 U8 [- S" O4 Y
{
$ {* r2 e& m" T# h
m_nExp1 = 0;
- |2 A3 t, i$ D* F6 D8 G
}
! X _) I- Q, E' C* u+ m2 U
) c: Y% V: X9 Y- h2 K- A9 m/ S3 G# s# C1 T
( (CUser*)this )->AddSetChangeJob( nJob );
$ H- J/ f7 Q. l: m
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" }' M/ k% T. D8 x" z7 o
( r# @# }9 M" B8 m8 f* \
, N% c5 D: i2 T9 R
#if __VER >= 11 // __SYS_PLAYER_DATA
1 p" J: Q4 a& g" _6 J. T0 C$ k! V" E
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; C! P' A$ P; ~8 O
#else // __SYS_PLAYER_DATA
/ e2 d! R$ d6 ~) I5 f
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
n' Q x4 i& n1 G2 u9 e. w
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) x# g& l$ \) b1 x# z
if( m_idGuild != 0 )
4 P% k5 q* m* G. a& g; K
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ B+ a$ \% ?' S& b0 r/ `
#endif // __SYS_PLAYER_DATA
3 u4 p& e$ E9 k8 K8 ~
SetHitPoint( GetMaxHitPoint() );
. e l' b1 J# o2 X
SetManaPoint( GetMaxManaPoint() );
b* h/ R9 G* t
SetFatiguePoint( GetMaxFatiguePoint() );
: H* u: d: `1 Q$ a: F4 [
if( nJob >= 1 && nJob <= 4 )
: j/ {' i/ p+ C0 B G% P. j
{
$ ^' @6 K0 [! h9 @0 h) \
m_nStr = m_nSta = m_nDex = m_nInt = 15;
& w6 ?8 t3 H* ~
m_nRemainGP = 28;
& i7 v1 w- k$ O& ^1 K$ A U
}
* c1 [7 i+ K# @* L u
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# _; [0 N2 v: ?9 H$ _; f) k( [
{
5 ~' R$ j# Y8 t. R, g6 J, O
m_nRemainGP = 118;
& a4 _5 C8 j4 }
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
# n# W+ Q: }; @* F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' u: p( J0 V+ n. q
}
( z' d4 p2 W+ ?
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 g2 ~) W3 e( L% f5 z3 h7 ~+ J
{
, ~1 m" x g' k! ~7 B
CItemElem itemelem;
_, D* f7 a7 Z4 k; w
itemelem.m_nItemNum = 1;
/ W/ x- a8 H; `: `4 X
itemelem.m_bCharged = TRUE;
2 S' G& a. d" u$ Q
BYTE nID;
% o- ]! F3 u8 J
/ E/ G, x/ X' v, e* J" u1 z
if( nJob == JOB_MENTALIST_HERO )
% v1 h" Q5 M: ]- G
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
P+ |$ g! r4 H; R* p$ [" m, H
if( nJob == JOB_FORCEMASTER_HERO )
3 M J) g- @/ Z- `4 Q
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( J" a w0 i! A3 l$ Q1 O
3 s7 Z. q- W9 J, k( ?8 Y% s5 h
( ( CUser*)this)->CreateItem( &itemelem, &nID );
2 N' I4 l N* s$ K
}
2 d" @% ^5 C# r- q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
: X* j( h- M* i/ I, t0 ^
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
+ E5 y' A) n3 {) [* }# P
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
8 c! Q2 a" _4 r. e3 i% @
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 I. W" h' X b; A) `7 D; _
( (CUser*)this )->AddTaskBar();*/
7 U( I: m; z0 V$ j/ r" ] l, p
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 {/ k. |1 F- a' u! M( l
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- Y6 n4 _- z; K3 H+ W' e! O! O" @
((CUser*)this)->CheckHonorStat();
0 ~& o; }$ P4 X/ j3 u) {/ w
((CUser*)this)->AddHonorListAck();
3 m. R. F( v4 Z) \* P
g_UserMng.AddHonorTitleChange( this, m_nHonor);
, y, e6 O- I* M4 c! S# z3 M
#endif // __HONORABLE_TITLE // ′Tà?
, g. s9 l& ]# L, a5 M
}
) y; ]7 o1 a; ]# l
#endif // __WORLDSERVER
O/ t; x' \. @7 _
}
' h% H# A5 j. S, s, @: c5 W e
0 R$ q6 D' ~+ a# I9 D, I7 j5 i
然后你进入functextcmd.cpp并添加以下
5 n7 [; n1 p1 l6 l
; h2 ?1 x8 I; x( R4 y9 o# q
代码:
7 V, }) e$ M# E; m5 l& V% Q" v
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 k; O# y% r" y& f
下面插入
5 t8 j9 m, D; t/ }) q
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ T0 X/ q9 p* m- f3 g5 y
! B! ? _ m2 z) [
然后你去
. h/ n1 A6 s1 `$ Z% w8 V# m7 H
5 k7 ]: Z' s# x- t1 J
代码:
' i( r4 z$ z, I& H# p- A( g
代码
+ u+ B# e8 Z6 l3 O) a/ z
BOOL TextCmd_ClearPropose( CScanner & s )
2 S- F1 f- H- B. u) n
{
$ u+ a- V& @0 {& s4 v: K8 F4 F
#ifdef __WORLDSERVER
5 Q: V2 ] a; h# o/ _% c/ X3 x8 x- O
CUser* pUser = (CUser*)s.dwValue;
' O5 X! M }2 V- z, l
g_dpDBClient.SendClearPropose();
* L3 z" t& U% w1 S
#endif // __WORLDSERVER
8 |% b% v# @# h1 d& w; {* F
return TRUE;
4 ~4 z8 D# [- }: h% E3 h
}
. W9 B2 ?9 H2 ?0 \% W2 F
下面插入
9 t' p* d# V$ h& N6 r4 \
BOOL TextCmd_rebirth( CScanner& scanner )
, X$ f- ]/ y% k/ r
{
: x. A- V) @( F1 x, G
#ifdef __WORLDSERVER
, H* J1 }3 h' N; w1 v2 o
CUser *pUser;
\9 U' B6 J/ |8 k0 k y- r
pUser = (CUser*)scanner.dwValue;
4 \4 o- d/ T+ z$ g+ k9 `, ^
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 w+ u% Y' s8 E5 |" n k8 w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& \0 Z$ ^# `+ E) N
else
( W" b0 X7 b$ U% z' h l
pUser->AddText("你还未达到重生条件!");
* |: I0 a/ M: G' ~3 v& i7 j
#endif
5 [& K( L& X F; K
return TRUE;
7 b; N" {% P7 @- `9 A% E. M
}
& l0 z0 V& w+ Z7 j5 l" Q3 Z
5 I1 ^8 o) |! M8 B) c8 t
. w2 h( r8 | J" N* X+ \
) `: G4 e( l1 x5 b3 J: Z1 g6 n
, N$ O! l* H- u' k) E0 J
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2