飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 a3 o4 ]' P. C1 y% D* x
/ }2 N1 \, U( V# N' o& B4 Q! d
Mover.h
3 a9 Q# q3 M) n! E# d- [
代码:
2 L0 q- x/ F1 i$ E$ B9 F j* w
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ |$ \8 ~; b3 Q+ ?) v# x
! E' \5 C( V6 k9 ?0 y
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 k: h6 {3 }! A( y+ T' |
: H. E; o- X& |1 H4 x
然后你去mover.cpp添加
) `0 k3 P- O- \0 s; X5 J* U' v
' E6 N: x: |( _3 J' ^. e
代码:
2 N& E m; F6 b1 O( }
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 @4 v1 h+ D1 h2 G! _% p
{
' I" `3 Q% s" e1 c
#ifdef __WORLDSERVER
8 f! j: U$ [) g/ N# Z w S7 A
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 x* ]* f; x" ]) ^1 R7 V) y3 a) ]6 {
MoverProp* pProp = GetProp();
1 ^3 F6 `5 @( i4 w
if( pProp )
. d6 T: _& b4 E7 _% ~
{
' C! m) A9 e, Q& ~3 e
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
$ o* ~4 o4 C" i/ Y2 E: ~+ N
{
0 h* c' L1 R5 m8 a6 ?- c/ r3 |
AddChangeJob( nJob );
' S3 F8 @9 H- \! a" }% j
}else{
$ m) q9 J( N( l
return;
$ o; u2 B! S% V u. o2 M: G) P
}
0 F+ G" k1 v) R! `: l7 U4 g
int nPoint = 0;
/ d0 o8 ?7 Y, Q6 t
if( m_nJob == JOB_MERCENARY )
+ |7 }- p5 r' n! P- Q6 p1 r1 ?
nPoint += 40;
. x7 d3 {' \; X# G0 m# S, M+ d
else if( m_nJob == JOB_ACROBAT )
4 G: K7 J- l+ R- x
nPoint += 50;
p% Q% i. ?! r6 v2 n
else if( m_nJob == JOB_ASSIST )
5 K3 f8 `3 h6 g8 D( H& Z- S+ N
nPoint += 60;
( o) y% b( t) K& W+ ^
else if( m_nJob == JOB_MAGICIAN )
+ N$ n' O' u4 i3 T" |9 l
nPoint += 90;
" C* H6 X2 k) g# L/ t( k
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 z& K. X8 p( U( b
nPoint += 120;
4 u( I" p- N* |# y7 t
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 h% ^- J4 A* D8 s% o
nPoint += 150;
0 g. h9 {+ F; S$ j7 n. E, C
else if( m_nJob == JOB_RINGMASTER )
( d1 y* d+ {' ]8 t! [% t
nPoint += 160;
8 g0 e7 Y4 E1 b2 v
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ s8 H9 f y) S( k
nPoint += 180;
7 \' a6 |7 \+ x8 }) W
else if( m_nJob == JOB_ELEMENTOR )
5 q0 c6 M- X+ _9 ?9 n
nPoint += 390;
2 n! E' Q$ b1 k/ Q
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ H9 ]0 J+ V2 F X. t$ ?
nPoint += 120;
$ O F/ M, k) I
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( N1 q, X: |% ^
nPoint += 150;
2 W) Q; u% E0 S: ]9 C/ R0 j
else if( nJob == JOB_FLORIST_HERO )
" L) R7 c+ O, O+ S- y$ i
nPoint += 160;
1 \0 m" d3 u0 E9 T8 ^! {; _) N
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 G) m9 i8 [$ y- a! g( F
nPoint += 180;
) U$ |0 Q7 M* M/ O5 d
else if( nJob == JOB_ELEMENTORLORD_HERO )
. M+ n* Z# i# [/ D- f" B. m
nPoint += 390;
+ c, C; \$ T9 ]* F* T, j
' s: S3 w) L; h. a- h! T
AddSkillPoint( nPoint );
- n7 p& g: w7 k) e' q6 D
m_nLevel = nLevel;
3 c# L- m& y, @, S9 X0 X
7 j& Z0 m! z* `" c" B$ i. y, ^
SetJobLevel( nLevel, nJob );
0 F7 d: e% X3 R) `4 k% b
m_nDeathLevel = nLevel;
@+ p* a2 A" p# v" C/ E3 V
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 {. }: g O+ P, n6 }9 H I0 G! o2 w1 g
if(IsMaster())
# Z" {# T$ F' d+ x4 x
{
( J+ y3 w0 C& A. y9 n* O) d2 s
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 U& E7 ~: I" E
if( nLevel > 59 && nLevel < 72 )
w( K* g2 m. q: T8 S& V2 m
dwTmpSkLevel = 1;
5 L# w. [; \" F
else if( nLevel > 71 && nLevel < 84 )
: H" @8 l4 L' W8 l
dwTmpSkLevel = 2;
9 `9 n9 E# z5 v# x2 U1 @4 x
else if( nLevel > 83 && nLevel < 96 )
! q3 ]2 A. v. H
dwTmpSkLevel = 3;
. g4 |$ D u: }
else if( nLevel > 95 && nLevel < 108 )
2 F: `9 s w5 ]5 \9 e6 G1 y$ U
dwTmpSkLevel = 4;
7 i' Q( N6 r8 h
else if( nLevel > 107 && nLevel < 120 )
( P$ Q: d+ f2 N( L K
dwTmpSkLevel = 5;
2 g' J5 \" j+ i" X1 f
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% b2 m5 G) K/ y s$ J4 K( H
{
+ t7 z% e7 N$ J- n L
LPSKILL lpSkill = &(m_aJobSkill
);
$ v% }" j6 S. ~8 E
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% x( D" @8 C# U R( _
{
3 U8 z& e* r8 ?+ H W1 W- d. @; P% L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 h8 z& y5 B, y& {; n
if( pSkillProp == NULL )
. `8 E0 P* z" T# ~! Q( w
continue;
3 o+ k% H1 r" m' g# a+ B ]# ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: m4 j$ u" m. g; W9 E$ K
continue;
; j2 z) b1 u* S) T4 [
lpSkill->dwLevel = dwTmpSkLevel;
% Q% ^2 b+ h3 g' Y: }
}
* f( _# \* ~6 A! i: X% `1 e
}
) B: P+ w6 j2 g% l5 C
}
5 q+ N8 |+ v; |$ k
else if(IsHero())
; a3 I$ j: F$ s
{
* Z5 D' K3 e# k" i: y) `
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 P, E; R7 x& R) _
{
; k- ?, y T$ J9 G5 c7 n8 d) z! b
LPSKILL lpSkill = &(m_aJobSkill
);
: Q v1 S) ^% N% i" r% _+ a
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; v6 t# p1 E" C: C+ V
{
7 u$ H8 F1 V" u) p# v5 g3 y. @" a+ z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 w+ E$ Q `2 i2 W" @8 c; j
if( pSkillProp == NULL )
a! W$ J3 c4 E" @7 Y* R$ k. D% M
continue;
3 ], J4 t" X3 n0 D5 x4 o( Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! ?4 r* h3 q2 L/ M
continue;
/ u% f- K: l1 ~8 ?# W! {$ C
lpSkill->dwLevel = 5;
& Q0 M& r! [- _! D' H8 O6 i, Q& q
}
+ X" Q8 D. L% Y2 X |" w
}
; {# M+ A8 `6 Z3 k: Z3 B5 G# y2 M, S
}
* Q* b( S+ ]8 c5 ]6 E4 {" e: G
else if(IsLegendHero())
- R! Z# N* Q3 X4 \" }; r9 n( j
{
4 g9 |% P4 X5 P' e- ?! H$ `+ [
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 c8 a# z, n F
{
! p( B% u6 E+ T0 x( Q( }
LPSKILL lpSkill = &(m_aJobSkill
);
& Y* z( b" K7 R& x) [
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 x2 D( V1 o/ ]/ g
{
; h. z8 @0 m3 x! @6 E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" { ]: g2 X# X* [. w
if( pSkillProp == NULL )
- J4 k+ y4 \+ O' D. B: W
continue;
7 g d. `+ x% P0 O0 j8 K# q9 ]; |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 k: ~, r G! ^* B& I: R
continue;
) v1 k8 s# a4 o+ i! x g# p# @
lpSkill->dwLevel = 5;
% L) c' ]2 x% f3 |
}
7 m! J; y( @ }4 C% Q0 |! u
}
5 _! G' O8 G4 x7 E. r- S
}
1 p2 V7 ]7 Q- f- P. |: c
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- I( Z0 c- N4 K
if( bGamma )
D! V" P6 f8 | k; n+ g# E
{
8 E7 M% J$ N' b9 o$ s' B! L
m_nExp1 = 0;
4 ^+ g- p) `/ J. }$ a0 z+ D
}
! _- x M, _5 M* m
% n E, x% z9 r! K6 B: X
( (CUser*)this )->AddSetChangeJob( nJob );
% w0 J/ |* H u7 ~$ m" x5 ^
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) @5 v" c6 R2 u4 H
2 s/ O9 g. A% o. K
1 g( }2 w# K- n' A1 |6 J! O: N1 t
#if __VER >= 11 // __SYS_PLAYER_DATA
- _8 i2 j# C( q: R" X, g0 j7 c( f. H
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ O m% g- X% L; m
#else // __SYS_PLAYER_DATA
. m8 f$ o: ^) Q) J- R
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% c8 {! J+ z) a1 U+ g
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 n# M7 N5 [. a. y2 C( q
if( m_idGuild != 0 )
* {7 K) Q# C7 \( i" i
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 _ O0 u$ a6 J4 X
#endif // __SYS_PLAYER_DATA
' d; J$ j8 q$ L* U
SetHitPoint( GetMaxHitPoint() );
$ p' F+ o9 H- b* c* p" {
SetManaPoint( GetMaxManaPoint() );
9 [+ t( E) V Z# }: X/ K+ y) I
SetFatiguePoint( GetMaxFatiguePoint() );
8 f9 z5 T2 q5 d2 Y8 O4 }# J8 V
if( nJob >= 1 && nJob <= 4 )
; U: B# F; u! D: H
{
' {4 T4 V$ y" Q: ]& `
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% p, U3 a8 A. d9 [: w/ E
m_nRemainGP = 28;
1 K) K# _( s5 w5 J5 W/ c
}
7 [ m" e; \0 i# R! D4 m
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! C' i; L Z& g( ]. m+ v
{
* B; C" J2 |( Q; {) h8 E- ]
m_nRemainGP = 118;
7 [' O u' Y* k
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
( j: T9 Q0 T$ Q2 x
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 {1 h: ]. n& R7 ^$ M @2 v
}
6 w1 y$ s& M% N" c6 n0 O7 `
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 s% x/ f, s1 [5 N/ r: W
{
h$ I: F1 `+ u3 E ]! B
CItemElem itemelem;
; S+ a% }2 B3 ^. n
itemelem.m_nItemNum = 1;
3 M6 k X! [/ A' r
itemelem.m_bCharged = TRUE;
) y# o5 [8 A9 w- B3 G/ \" l
BYTE nID;
6 s$ R. y2 W9 I4 c) L4 Y
8 ~- U' s" {# _; A$ U
if( nJob == JOB_MENTALIST_HERO )
) A- _# i6 x* [" L6 V3 G2 ]
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ x9 c! _( l# c- t
if( nJob == JOB_FORCEMASTER_HERO )
$ J* E. B- n$ w, z2 O7 X6 [
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ M# ]* ^4 b5 I5 _( v& y' p/ T4 ]
1 ^- s: h) o. i7 w9 }
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 N7 ?' p) @( A$ R0 Y
}
+ }* P) A6 P# F, |% y
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
' I- e0 w P' E. P6 p
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ t* N$ S- z) W, e& o
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
/ c" @' Z" l" @0 E
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% J3 q$ I$ O$ f. I; j7 k i
( (CUser*)this )->AddTaskBar();*/
* ^% n& ]4 S3 x" q3 ]$ h' X
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
# V* V0 g6 t' j6 i' c* N# l
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 s: B3 Y7 A0 A/ A
((CUser*)this)->CheckHonorStat();
, \: H0 f( p# b: R6 p
((CUser*)this)->AddHonorListAck();
1 g3 K+ C! O) t/ M
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" ]( t4 x2 K" n; V+ T. C) t8 a5 K0 T. m
#endif // __HONORABLE_TITLE // ′Tà?
6 M$ Y: t0 b- L5 s& m) @, t
}
! K- k. I9 Q- u5 [& E
#endif // __WORLDSERVER
! X! R- m! Z: L: N8 M
}
* {+ |4 ]$ K+ q) r- q' G) u3 l
% P! v- K3 J$ z' o! U+ O a
然后你进入functextcmd.cpp并添加以下
7 i0 g" a' V( K' U0 C, L* ]3 ?
: W- f3 A) I* v
代码:
: `# }7 p* V: @% Q* v8 c. L
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ h% @/ r4 \* q& |0 D. C
下面插入
0 V5 P h% ~4 ?2 B, j$ b
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# B3 n' s% K' y9 p2 U( f; U" l
3 J( x" F6 W, S6 K) Z3 L
然后你去
% I8 X% N; g$ @ W
8 _9 |/ {( N& a8 `$ G7 S$ b
代码:
m( b9 R/ Z) t! @% F9 z. ^
代码
$ }- u! S8 F+ r9 E
BOOL TextCmd_ClearPropose( CScanner & s )
" b1 }8 k2 e0 {7 A
{
; a! N& f0 A2 r( q- c! f+ T
#ifdef __WORLDSERVER
9 ^ u7 s, X1 n# p) Y4 U
CUser* pUser = (CUser*)s.dwValue;
; q' g" p5 S% j
g_dpDBClient.SendClearPropose();
+ u O+ W* F+ N( b
#endif // __WORLDSERVER
! p! T6 Z& u- y1 R
return TRUE;
7 c i# \( L; ]" D# t
}
3 U5 X$ X7 C+ r$ C: R3 e q( T
下面插入
2 e9 D+ Q: K7 _/ p2 Y: x7 I7 p
BOOL TextCmd_rebirth( CScanner& scanner )
2 R% J8 M0 M8 i6 y# ^
{
% Q; R6 w# `$ [& U) b3 m
#ifdef __WORLDSERVER
* i: Y0 R) L* s# P
CUser *pUser;
9 C0 S/ T0 j F3 T$ C
pUser = (CUser*)scanner.dwValue;
: l; {# R7 e0 J. w
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
6 K7 C' F: z4 K% C' _* A$ ~' M
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 v6 x; e, m+ W, {
else
( a- _( r% E! F+ f& M5 V8 L: N
pUser->AddText("你还未达到重生条件!");
1 K7 k/ G# l+ F
#endif
1 Q% Z2 s$ N/ `3 f
return TRUE;
5 t" b- _4 e0 b! O5 U
}
8 w/ Y. m+ s e8 x
2 q8 Y/ W) a7 ~; q9 L5 K
- T* a+ Z- X: p/ F
0 N; U f9 L, p0 B; d7 }& U7 e- E
* W- u9 V" o; @& ?" C3 f |
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2