飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
& T# \* o- L# a/ ?
% L- [' m4 u) N( L( D' |
Mover.h
' i. s6 E& M( b6 G5 B M
代码:
7 B/ S! W; F8 B4 B0 K/ w
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
5 H; }. p" D& R& E: Y
7 T2 ~: r$ y3 t0 x
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" O+ x3 |7 p9 X) g5 I! x
. H( a8 s$ b: \. x
然后你去mover.cpp添加
- F2 q! Y' I1 `4 P' t
f6 ]% d; a1 Q6 t0 V
代码:
8 c; g$ ~/ y e! ^+ ^
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 n% r1 f$ |4 D# D5 U
{
C( Y/ U0 R. i, q5 b
#ifdef __WORLDSERVER
2 H8 ?# w2 s# d: E
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 C* H9 O" l" N0 \! N1 J
MoverProp* pProp = GetProp();
2 F+ f9 d1 _1 |
if( pProp )
6 i% W6 Z8 v$ }) V8 Y
{
p; @% }; y- Y6 q+ H6 p
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. c( N+ k0 S& H
{
[2 j$ h2 S1 D+ v9 Y
AddChangeJob( nJob );
$ Y: c1 L$ j9 T- H
}else{
2 ~% @4 v+ N# `7 }" d/ h8 m3 A6 j
return;
& J* x0 i0 c6 A* Y( y
}
; x1 ]. ~) u9 h- `& D
int nPoint = 0;
! ^( Y7 w8 J, ~& \2 K( f" e
if( m_nJob == JOB_MERCENARY )
* u& p, \: h, v7 H
nPoint += 40;
9 P J7 D5 R- S" s4 S9 A
else if( m_nJob == JOB_ACROBAT )
: j2 a) L7 m; R3 {9 M7 M
nPoint += 50;
& z. p& }/ S& ^9 `6 l
else if( m_nJob == JOB_ASSIST )
& v! O6 M0 [ }' y( z& u. C
nPoint += 60;
& t+ E" t* U+ v% |+ Q* O6 `
else if( m_nJob == JOB_MAGICIAN )
& ~1 F& d6 {* f9 p* \( G
nPoint += 90;
+ @+ @1 w& h: v. g6 C6 K1 G
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 L' A. V6 J& f( V/ P% ?3 ?3 [
nPoint += 120;
8 _/ r g& P+ |2 @
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 i# j0 P- W4 s9 b
nPoint += 150;
! e- v' R6 e% B" b
else if( m_nJob == JOB_RINGMASTER )
3 [5 U: t) ]: U' D+ x0 E
nPoint += 160;
7 V; [8 ?$ D& L2 R% I0 E- p
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 [% D; T9 f1 {% R' b/ k
nPoint += 180;
% F8 @( M' K$ \2 H: n* d, K
else if( m_nJob == JOB_ELEMENTOR )
M9 F4 P- a* t: x8 T& [
nPoint += 390;
3 H6 |: ?; }: b- ^7 C7 b: ?; S
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 S3 x/ Y* i% y( F; ?0 w
nPoint += 120;
2 @; c' z4 c3 i& e. i i, k3 W. A
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 `& P: Z2 z1 `0 D; c# B! s$ Z
nPoint += 150;
: G1 }" e6 m! j# e, e5 [2 |/ T
else if( nJob == JOB_FLORIST_HERO )
' T. q% o/ d# V& F% N9 R. ~/ s& n/ ?1 {
nPoint += 160;
2 q4 Y+ z- V$ O6 K/ j/ Q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( l4 U. o2 }4 ?8 U( U! p
nPoint += 180;
3 J& U p! b; J2 j; c2 G
else if( nJob == JOB_ELEMENTORLORD_HERO )
7 {: X2 L( i" q6 Y$ r) C
nPoint += 390;
* n M1 O/ `' g- I$ Z
! i( ]* h! v9 P
AddSkillPoint( nPoint );
) F( ?6 t; ~% u! h) Z( G6 b- F# x) C6 V
m_nLevel = nLevel;
% ^+ x4 n! a- D
2 S4 A. h, p+ x! s% [. ?& Y
SetJobLevel( nLevel, nJob );
$ }) Q) h2 S8 g8 P2 L
m_nDeathLevel = nLevel;
+ ]6 x z5 T' b1 q) r( T, q. h! ~
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 @/ v2 @# _! s l' Y! \
if(IsMaster())
5 u9 N3 ^9 \! K+ l& k, N& a
{
: E% J' Q* b5 S% }( m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: T8 F% H5 b* h- d& Y7 z. t
if( nLevel > 59 && nLevel < 72 )
" F1 e) e l% Q
dwTmpSkLevel = 1;
( ~ _+ b. H: L" E
else if( nLevel > 71 && nLevel < 84 )
9 N1 P3 \+ H3 W
dwTmpSkLevel = 2;
. f! _2 c' M# ~# c( h% Z& c. C1 \9 h
else if( nLevel > 83 && nLevel < 96 )
6 G* d. N A; d) u& b
dwTmpSkLevel = 3;
! \* W, C6 V: q6 R# G5 ~
else if( nLevel > 95 && nLevel < 108 )
( q9 N% {; v/ c s( M
dwTmpSkLevel = 4;
( \- g, K4 B. G. Z
else if( nLevel > 107 && nLevel < 120 )
2 p9 M D3 D* a6 p& u
dwTmpSkLevel = 5;
5 Z( `& l/ @+ G6 ?' y: N; _# C8 w
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ F) T5 I: D, L$ \/ [) g" Y2 q# V
{
; k. o! A' u; a s2 B; n% ]
LPSKILL lpSkill = &(m_aJobSkill
);
" ~6 ?. R# _: D2 Y/ K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 T8 {3 C+ k6 E3 `- h* u
{
3 D7 R1 v; h5 r
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# C Q/ m* v" ~0 q* X
if( pSkillProp == NULL )
4 I3 m$ {4 w! F1 b' w, b" c" O
continue;
8 m9 n+ R3 F+ q8 W6 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 `0 S2 O6 g6 _7 x# g$ b
continue;
6 P& s8 Z$ x; \
lpSkill->dwLevel = dwTmpSkLevel;
) E, q P8 G; D. |
}
; c& z) F" K' m* \" S
}
( B2 t) |: [4 H* u7 B0 F
}
" _, A8 V. V* {$ B- {2 ~* d) c
else if(IsHero())
$ v) g9 _7 t' _; J8 g: ]" \
{
- ^- ^% Z% I- p8 @ k
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ S) y* {# R* z* Y, q
{
+ B4 w) a( D# L$ o( ~! T
LPSKILL lpSkill = &(m_aJobSkill
);
. W# M5 Z; P2 I1 S/ p2 {
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. B$ [8 m6 b7 z8 Z# c' }* z: B
{
% e# t7 ~( d$ r ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& f! s' O* j: H8 {
if( pSkillProp == NULL )
* k" {3 a4 R7 }- ^% b
continue;
( x/ s+ h& v7 G' w6 B# w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 l+ V* u$ [7 Q% f4 @
continue;
' Q9 L9 {7 G1 d
lpSkill->dwLevel = 5;
" T# `6 D4 f' F, [: a1 g
}
4 ~ J0 y: m/ b9 E
}
}# b% R7 E9 A; B3 ?0 K) P
}
0 g D: c) y2 k$ X
else if(IsLegendHero())
* k B9 R# t0 \* q y
{
$ C/ {# S8 S% q o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 C- N' U% |& F8 q' k
{
+ b( ]( }6 _ I- U7 w
LPSKILL lpSkill = &(m_aJobSkill
);
]0 J; R! F) p& L
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 G: w+ N5 A) l! n; m% f ~3 n
{
& E- F2 _* ~6 |0 c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! Q+ Y0 B9 H8 }0 k1 m. m5 N; b
if( pSkillProp == NULL )
. N- C _8 z/ Q; P
continue;
0 e6 Y8 Z& J5 d( S) V! W$ \2 C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 n( o6 Y a6 ]' G; n5 x
continue;
9 }! {) ]$ I( V& G; w
lpSkill->dwLevel = 5;
8 Y8 \3 _6 O/ C6 `5 r: H
}
/ S# w6 N* T& |) H
}
- O2 y5 a5 @7 f# ^' _) q
}
9 e5 y- A" x5 x u( d7 M. J; M
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 V, z4 c' l. h7 h
if( bGamma )
2 O4 C/ b; \# H
{
7 n) r1 t" ]8 A A
m_nExp1 = 0;
- Q+ ]+ i& p- g3 s! j* b8 a
}
1 x! m( @* b0 r7 |6 ~% V
9 f9 z& N% {. n3 |5 w' W! C) {
( (CUser*)this )->AddSetChangeJob( nJob );
, d! t/ w* t4 L/ m
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
1 g! F% o% W0 B# ^
# q6 G @* ~: a \$ F' k+ ]
; o9 j) W% G( v& C; W
#if __VER >= 11 // __SYS_PLAYER_DATA
- e8 }( L) `1 D1 D5 i
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( ]5 {7 g3 M& G: J$ d2 Y8 L
#else // __SYS_PLAYER_DATA
( C1 T8 S* x# I; M1 I2 q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
' k2 z7 l( F2 W
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' A: W' r5 N. ?* S( ^: N
if( m_idGuild != 0 )
7 y1 C1 B: ]6 J( j" k2 J/ Y- j) h9 C$ W+ \# b
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 f7 s5 M2 o4 H$ K
#endif // __SYS_PLAYER_DATA
* m1 ^) s% d" c3 _1 J
SetHitPoint( GetMaxHitPoint() );
1 g8 j) b9 m$ t6 i
SetManaPoint( GetMaxManaPoint() );
! D% M! W7 B" H- g6 ~
SetFatiguePoint( GetMaxFatiguePoint() );
6 b3 j9 W$ {& @: ^8 B
if( nJob >= 1 && nJob <= 4 )
5 b* a( b* ]$ e6 K! H) U3 N" f
{
* ~& G* s3 g2 }- ~: e9 j
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* c3 z$ p. v/ Z" F0 w
m_nRemainGP = 28;
% O& d: x2 L, l5 ~' j8 u- b) \
}
+ A' s7 k% ]& k1 `
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( C# g8 D9 h; I% t
{
5 J8 `4 p1 A7 F0 E+ X2 B& K( B- g
m_nRemainGP = 118;
) @) W- x2 A# K
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 s, i. i+ j6 ^4 v
m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ a8 v) X) ~. y/ P0 `1 ^
}
( v9 L* f9 M: g6 l4 e! W/ }
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 e4 l- |) T* u& a: ^9 K
{
7 I5 ^4 g# ^0 C1 k: }# J! n
CItemElem itemelem;
) R1 I" B% U6 r! G% s# Q
itemelem.m_nItemNum = 1;
; j$ e$ H2 _4 Q* p; a; u5 Q
itemelem.m_bCharged = TRUE;
* a1 L6 f( u6 w# m Q6 E w
BYTE nID;
7 _9 u( ?, ~7 v' D. o5 d1 V" D
9 M3 w) h; d" u% S9 m4 v
if( nJob == JOB_MENTALIST_HERO )
, j3 @4 ]0 Z$ m% w( n/ J
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 i) ?: @2 u U8 J+ `( @
if( nJob == JOB_FORCEMASTER_HERO )
( a4 y5 J5 \) Z& S7 c
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% V5 P) r* B( w; ^9 N& e
: W0 L5 p! j. G$ G$ X ^
( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 F6 _4 I/ _7 U1 M, {0 Q5 }2 C
}
# D& n$ e: N) V, q3 h
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# k8 A7 V6 y4 Y! l) `3 e( T9 f
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: X$ z4 Y) w! h* w
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' `4 S; j# ?6 V! ~: m7 q" f' U
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: l" h7 q1 X& F/ L' x" E! R* ?
( (CUser*)this )->AddTaskBar();*/
; z7 R: L4 E5 \& m! ~
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* f: j% X j- T' e% s/ s: E
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 e+ a: ]+ C0 p/ B# N' }' a
((CUser*)this)->CheckHonorStat();
4 u& S; f) l0 {. @6 @; v* r
((CUser*)this)->AddHonorListAck();
0 J5 q4 e2 E$ R _# u
g_UserMng.AddHonorTitleChange( this, m_nHonor);
' v+ a3 @9 n- e. S, x9 ~
#endif // __HONORABLE_TITLE // ′Tà?
( U1 \" N% V; D% F
}
2 M! d( h2 p7 u3 E
#endif // __WORLDSERVER
# d; q) v" ]' N4 G, ^: }! f1 V
}
; J1 `" A. O3 ]1 k; y. c1 ]5 t
3 P1 B& d) M9 c) T$ r# @
然后你进入functextcmd.cpp并添加以下
7 ]6 `; ]! N' b, ~( U( T
; R$ f; T" i" q1 {+ |2 k( Q
代码:
, Q7 C6 l* }) J' O" o
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 @: r6 A& S) I5 h5 O
下面插入
3 \- f% h6 @# |; h
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 |1 b8 T* @* M9 k6 a8 E: _6 [* t
( L0 X6 [* f6 B& g) e( M' y
然后你去
5 E/ |" W! o. L. P n! D! C
! p4 X7 T3 T' T, A0 P% j
代码:
+ g# [/ u$ F) V& s# _+ W) n8 V
代码
1 D2 c3 _ _3 I9 p7 C
BOOL TextCmd_ClearPropose( CScanner & s )
0 }% M: U0 f8 {5 s8 h5 x+ F9 a0 m4 o
{
5 A$ }' i" u3 v, ?* V8 }
#ifdef __WORLDSERVER
) ~8 B, B& J5 t- H7 n2 x! D9 T
CUser* pUser = (CUser*)s.dwValue;
( _) \$ N. y ?( J5 n
g_dpDBClient.SendClearPropose();
/ z" N0 _3 K$ r8 N0 r7 T8 g( p
#endif // __WORLDSERVER
) M3 k+ p4 F$ `' Y# {+ @6 n4 @
return TRUE;
5 Q6 A$ _) M0 I5 a
}
- u% P- e& L4 h+ B
下面插入
; U- h/ \; l, N6 T* A7 ]: w+ L
BOOL TextCmd_rebirth( CScanner& scanner )
5 Z1 x; G! _: b% ^; j4 A
{
3 s4 d! f: s% Q9 K' a" u
#ifdef __WORLDSERVER
7 J" D1 J+ `! h
CUser *pUser;
6 q4 O% C& M# A4 V" B, b' ^
pUser = (CUser*)scanner.dwValue;
+ R. J5 J( h: G$ C( V. L5 a+ `
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 m+ _( B n O s6 G* V( c
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
/ L2 F- i6 p$ m6 r$ S6 q- f0 q# O
else
+ U9 t6 W7 M. t
pUser->AddText("你还未达到重生条件!");
; Y, o( ~7 k, u% d, {2 b6 o
#endif
3 t7 f3 f! L$ z8 o
return TRUE;
/ j( Z2 I6 r( i/ P
}
4 {! [/ x; B& I' t
- z M0 E' {; m* T# }# \2 Q% M2 o
4 g) T0 t7 ^9 N8 d
" j# X P8 M$ L/ k" z8 T: q
r# G' O1 b3 }# ~6 V" y3 p9 T' O
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2