飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
M; H+ M( ^( }
: s0 E6 u& l* f& B) Z& `. m4 H2 V
Mover.h
+ Y' U8 \- d# ], Q$ z& Q. p* _
代码:
! b6 n, M( d5 G/ ^8 ^8 G* e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
7 o5 t) I, q; B( x
n) M1 b) a2 e
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- W/ s4 Z7 J+ U# I
6 ]" D+ ~& P# ?3 J6 q
然后你去mover.cpp添加
8 M/ W+ l! p) b3 q# T
8 L7 B# X$ z) I7 z& E
代码:
* z5 ?$ p* s! b& o/ G
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- Y1 E! J9 E# t9 f
{
( W: U' D5 E* P0 v. e$ |% k
#ifdef __WORLDSERVER
- M9 m0 ?- i" c, k/ {& m
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 u, g6 F; ]9 R4 l4 q M
MoverProp* pProp = GetProp();
, U$ H4 T7 Z0 s( _
if( pProp )
, r$ ?& w: A$ d" W& n+ a$ i8 Q$ X! [, h
{
n: _# |1 E! g" C' ~: A/ z; ?
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, ~* R3 R8 A2 S& B1 W: t4 P5 f
{
2 C$ F& V1 P/ V1 K+ V/ s9 l& {
AddChangeJob( nJob );
! C& v4 p/ ]. B5 J
}else{
" ]5 R6 }# Y( g- W7 e& L& \) {& m; P
return;
7 d/ Q4 h/ S1 u8 }& t, B
}
, M% ?; v# G% m
int nPoint = 0;
% h1 F; k% E4 Q8 n
if( m_nJob == JOB_MERCENARY )
- n. M8 q n8 u1 Z- a" T3 ~
nPoint += 40;
; t4 F! Z% H4 m- T6 [
else if( m_nJob == JOB_ACROBAT )
' a& _" d4 ^, O$ s. e0 ^
nPoint += 50;
+ U. t4 u5 Q- `6 e* }
else if( m_nJob == JOB_ASSIST )
" v- V' c% D/ s6 k5 a4 l8 X
nPoint += 60;
2 P# g7 j% R; n" \# D9 G e4 ]" A
else if( m_nJob == JOB_MAGICIAN )
) Z6 ~7 m/ W* g. x3 v H6 ]
nPoint += 90;
. V' V+ |$ z& s) r p
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ O! [; q W b ]: S7 N6 C
nPoint += 120;
- }0 ]6 `2 _1 p) y" |* o
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 z: X' e& f# q. r2 x* }& ?
nPoint += 150;
D. V& L$ {) f' q5 `
else if( m_nJob == JOB_RINGMASTER )
3 W4 V5 M, c- D" S* _% j
nPoint += 160;
/ m4 ^2 X+ f& j6 l6 I
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) f7 ^! @) Y! \/ d* m1 ]& t
nPoint += 180;
& d0 C& i" |5 h
else if( m_nJob == JOB_ELEMENTOR )
" U) S+ J( @8 N) _
nPoint += 390;
9 O, r" @+ W2 g' { l {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- O6 \8 o) n5 ]0 o4 \+ n0 h- h
nPoint += 120;
% t; @0 C) o/ f: m: q2 X4 }
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
c! o$ ~) D H' g
nPoint += 150;
, Z5 ]% ~9 [; M8 d- ^
else if( nJob == JOB_FLORIST_HERO )
9 t; P' x# {) D B6 }3 X
nPoint += 160;
# H5 z4 J' W- \ j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& ]) I& R2 H' Y* ?* x0 k8 B
nPoint += 180;
/ y3 g0 v' x! _4 `- r4 ^7 T7 f4 V# H
else if( nJob == JOB_ELEMENTORLORD_HERO )
# |. O% X' R. e i* a
nPoint += 390;
4 I3 d$ N- q8 {& J5 J$ |+ H
" ?% E. L& _% E* y* e
AddSkillPoint( nPoint );
. ]% I5 I! ?( \2 a# p
m_nLevel = nLevel;
/ m$ a1 l: ^2 k* v7 Z8 ^2 S5 k
) H9 ~% h* x ?# L1 d7 J4 Z* v5 z+ e# b
SetJobLevel( nLevel, nJob );
5 l$ S9 ^! z V8 D. d
m_nDeathLevel = nLevel;
C, J: F" t% `) X
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* x- I. A7 b# J# z
if(IsMaster())
' O/ J9 z6 n$ U
{
. w3 s0 i4 s3 R7 C+ y k' j' p
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 t0 w7 K' F7 d
if( nLevel > 59 && nLevel < 72 )
/ n# r5 j, Y+ c2 s0 [8 \
dwTmpSkLevel = 1;
* b: C$ y: V. j7 F' _+ M7 L
else if( nLevel > 71 && nLevel < 84 )
[+ l- y o& t, v& a8 ]% H; {1 _
dwTmpSkLevel = 2;
; [9 E; C' p# w0 s+ b/ ]
else if( nLevel > 83 && nLevel < 96 )
" N' g7 Y; _) d
dwTmpSkLevel = 3;
; H- z% M2 H; ^' D; c4 h* e) {
else if( nLevel > 95 && nLevel < 108 )
! D" g' |0 b# L7 \- m) U- a
dwTmpSkLevel = 4;
! Y/ K+ G. u- w/ ]$ H% O5 a
else if( nLevel > 107 && nLevel < 120 )
% {3 @9 O. q- s) R/ C- g7 t5 {7 h1 E4 {; i
dwTmpSkLevel = 5;
6 H- @/ V% ?; y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 Z) w$ ?& i$ }7 Q, D
{
" \& w' d/ a* U. I7 t8 k0 Q) v& d
LPSKILL lpSkill = &(m_aJobSkill
);
' [& p' L1 Z; ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ s/ E5 `0 ~9 n1 t) k" B
{
7 C9 t% i- [9 t* Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& [* S E+ W3 H' W
if( pSkillProp == NULL )
6 u$ ?2 R0 c% O$ F/ {
continue;
?- v2 ~, \- R7 z- A# F# u) @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 c7 x4 Y4 c2 ]1 S3 ~+ O
continue;
8 x0 C+ y9 e% _4 O* i
lpSkill->dwLevel = dwTmpSkLevel;
) X, {6 s: E' R P$ v: A7 F# K
}
8 Y6 \& \# m2 O; J8 M& W% B b3 j
}
& v( L" Z. Q W% T
}
* L! G: \( f0 g( P1 Y; ?
else if(IsHero())
! l' K6 C" C5 Y+ j
{
) H" y. M8 ~( r4 l* @/ I5 m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" O9 f$ t6 J1 W4 h; |
{
2 g0 P$ J8 x* S$ p. J& }; p
LPSKILL lpSkill = &(m_aJobSkill
);
' w) W5 `( w2 O* t
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! O: g% o" u- H/ s% l% s, l) N
{
6 Y U- v# G! c0 R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: J- u( @* l" O( r( C" G% x" F
if( pSkillProp == NULL )
+ N; }5 ^; m# c& w
continue;
6 ^2 r# v: p: ]" k% N3 R; q# @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ |( W( c$ C2 R. c; m
continue;
# a: M. V' [+ w+ W# W
lpSkill->dwLevel = 5;
0 w3 H0 E! B% p& Z$ }
}
9 Q! j: |1 O* N- T) C+ K$ Y
}
1 u0 L8 `" g& A6 Y N! V2 O3 c# A
}
2 d! y: y8 U7 g, K: D
else if(IsLegendHero())
; _& h7 w G8 R1 n8 d3 G
{
/ \- T2 k. K4 g( M6 Q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 Y8 J& W: T5 G& J: _' f. i
{
3 i0 ?7 }- t0 |
LPSKILL lpSkill = &(m_aJobSkill
);
G6 H1 E0 d/ V. b& M! c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 `7 S" A3 \, k( [$ I i) q
{
- ^2 W6 p/ T; O1 G. {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 P9 {$ [! V/ K" R9 q
if( pSkillProp == NULL )
& l, ~) {9 E# \8 A, S2 F5 ]6 d3 g
continue;
$ M. z2 t( z, U% a+ c' |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% C/ W# {: B# b. ]' [
continue;
6 ` b J: d( |" x% S
lpSkill->dwLevel = 5;
3 K4 i. o% f% _$ W5 F d
}
% g6 V' p- v6 J: z m
}
3 J& f7 {9 J% b7 X; W3 h
}
' l3 u$ a* |4 [9 X6 V
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 |4 P, J3 A9 m' X1 J% o
if( bGamma )
# b# Y8 e( j W
{
! Q+ M- ]3 Z* b5 V8 T
m_nExp1 = 0;
7 k% b1 Y. e& V5 Y/ [
}
0 M% z; @4 @; A" \& @2 ]
* c! s5 u' Y3 w! }! @2 J
( (CUser*)this )->AddSetChangeJob( nJob );
8 s1 w" z: m; U! L) B
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 j/ E/ d: { L! \# \2 w
# J S/ `3 `, j; a8 `1 v
. ]* P( D, h) P% F' i+ Q% Q1 u) S
#if __VER >= 11 // __SYS_PLAYER_DATA
& H# P$ O4 {7 q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% {. R% U# o$ U: P B4 ?
#else // __SYS_PLAYER_DATA
& q, N \0 J: B& a: ]5 T4 Q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 n3 n: N! x. J8 J4 j
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 l' B& r! X5 w0 i6 _
if( m_idGuild != 0 )
1 ^/ |, ?4 i* l& G1 E+ s+ ]
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
9 j2 |; e0 J' k' @5 N Q7 a/ ~0 f
#endif // __SYS_PLAYER_DATA
7 s8 h C* `7 k$ D" }1 [
SetHitPoint( GetMaxHitPoint() );
6 i4 ^1 i5 E& E; X4 A
SetManaPoint( GetMaxManaPoint() );
. Y% M6 O! M7 @( _! p
SetFatiguePoint( GetMaxFatiguePoint() );
4 T3 s$ y7 }! P! s. o
if( nJob >= 1 && nJob <= 4 )
8 R) M7 Y# _& U* v
{
- T) g. N2 ]( h3 R- P: B% o& G
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! k7 {1 a( B% N# P" l" \
m_nRemainGP = 28;
9 k1 c# e0 U3 A* t& q' k
}
. y+ I4 e8 L$ b" q9 m
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 U- ~$ M9 [0 t1 o! _
{
8 a0 |% E& ~( `2 `
m_nRemainGP = 118;
' O# d* ?+ n' I2 r1 N
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
/ `$ l# W8 q9 S/ y7 {
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 `3 [- [7 D" o% M9 L
}
( a' b4 O0 q: R' m
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' t5 o7 `4 e3 D) V7 I' l2 T
{
8 z1 `' q$ z' W) n, Q4 ~3 r9 Z( y
CItemElem itemelem;
. X e, u9 M3 M6 K: m' Q+ S
itemelem.m_nItemNum = 1;
4 ]: g6 \& @3 C* A8 ^0 V
itemelem.m_bCharged = TRUE;
+ }3 f# @- g1 h4 x' s
BYTE nID;
+ V- z5 _* L$ I1 n- k& [% \
, `/ b5 A0 ?8 [4 n
if( nJob == JOB_MENTALIST_HERO )
& x* O) r5 a. B) G; ^
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' ]' v' O2 ^- L
if( nJob == JOB_FORCEMASTER_HERO )
9 a8 `) y2 [6 i b! g
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 t' @# V: }7 \
& ?- R" V" I+ r& z+ x; v9 K8 B
( ( CUser*)this)->CreateItem( &itemelem, &nID );
- I% V4 h3 t- g4 C
}
8 o/ W+ d( J: y$ {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 Q5 Q( `. Q# O, ?0 k
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 V7 o4 L0 R7 y( }
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% I3 ]+ @. z1 y: g
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! M2 g6 i4 n5 i5 b# O
( (CUser*)this )->AddTaskBar();*/
& e1 C- @% C% o9 e
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! K6 s$ h4 U8 @8 X2 }" T# s
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 U# {7 x: `; b" m) r! q4 b/ }& x
((CUser*)this)->CheckHonorStat();
% R3 f' c0 v# |* T7 ?9 C9 ?
((CUser*)this)->AddHonorListAck();
6 H% X0 Y) l8 r$ |' c3 ?
g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 T5 y4 x: b0 ~- q7 S
#endif // __HONORABLE_TITLE // ′Tà?
6 Z: }6 v; W6 \+ }4 a* F, N# u2 r# e
}
2 v6 m% k) w) A! w
#endif // __WORLDSERVER
3 x, Q3 G/ q* s7 i% @+ S, P1 G' c$ v
}
0 \7 j' ~1 Q6 ?" E
6 @% I" S2 K( f
然后你进入functextcmd.cpp并添加以下
/ \0 l ?, Z$ t& ^( l+ I
7 R# ]7 I) C3 \
代码:
2 p. L$ b; C6 L, P
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
5 Q# Q0 T1 q: n7 x) I
下面插入
6 O& R8 V8 D$ U
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: B4 r. ^( s: G* a
6 D0 {9 g8 C/ |' p8 `4 m+ |
然后你去
7 |3 D, P) c8 M+ c _
; g9 v7 V" z8 o/ G8 J* x3 \, k5 V- A& X
代码:
( ~4 C% G4 v: g& r, G7 n2 {7 l
代码
% A2 w* Q0 [: B( q' { Z; F" X
BOOL TextCmd_ClearPropose( CScanner & s )
# b' J! |( }5 p8 U3 l' S
{
! m8 p' |, r t9 W
#ifdef __WORLDSERVER
; D& P5 Q7 N3 i" x% \' } ]4 d, d
CUser* pUser = (CUser*)s.dwValue;
2 {' X! y E# K
g_dpDBClient.SendClearPropose();
9 z5 l; W) B q4 _, ~) d( ^8 c
#endif // __WORLDSERVER
3 i' [( k9 V$ [3 `' @1 \, K
return TRUE;
$ I z, t# u2 u$ `+ k% L) v: b
}
9 v& {: O8 z9 i. s: {# W
下面插入
& L8 v/ @4 [$ s
BOOL TextCmd_rebirth( CScanner& scanner )
, x# |3 b) c+ L( h
{
& y0 T v5 l# O/ V) p Z# \
#ifdef __WORLDSERVER
, o1 q6 [; ~" c8 C# V! H% l( X
CUser *pUser;
2 s. ~ G. c# }. V8 y8 j0 [
pUser = (CUser*)scanner.dwValue;
( r' [ y2 Y' t
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- d1 r3 s& \! C' n6 I- k2 A
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 ?" z! ^) E7 v
else
* H+ [! _: Q1 f7 N1 y' i0 P
pUser->AddText("你还未达到重生条件!");
" S0 U- K$ U; t
#endif
6 Y/ A( r' a G
return TRUE;
6 `1 M Y( o9 z& F k Z
}
2 \/ w1 h* Z4 {: u) W
* ]) f+ H% x, E! w
% n% K0 n: j" n9 E& B0 v" Y
8 y0 k& I- L8 L6 {( }) m
/ _2 _7 I1 ^8 J% Q; h
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2