飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* A3 J6 [3 @% u
* ]+ W" [) I( f0 k1 I/ v
Mover.h
" r2 _9 i% ~6 p$ s" l x# Q
代码:
' ]& z' D, x& V/ E! k1 K. s0 c. t
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 M) Q% S8 P) W( Z/ _
4 s$ ~, S. y. I7 D! C, N
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
$ S4 f" a& M) d8 v2 s7 s
" D+ Q; N# M% r- ?1 K3 \
然后你去mover.cpp添加
0 u( V' N7 K" D) e- V4 L8 d5 Y5 A
- s9 P/ |+ g( e4 m E
代码:
& p5 M" A, O" `9 b# g% `* s
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 C U7 O( p, K9 n( L6 O0 {
{
% x# B4 |* _" t# p
#ifdef __WORLDSERVER
% P% N5 f) o4 N- y+ x2 F9 M
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( y$ Y7 _+ y" w% g9 }0 y: M0 W
MoverProp* pProp = GetProp();
) N# S+ A8 u0 L! f9 I; w5 V
if( pProp )
7 f S$ j; G1 D# ~- ^/ R
{
- ?+ x1 Z4 g# I6 M' s7 [
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* ~! B: X9 h( s" h
{
) m9 j! P }/ K- L5 @
AddChangeJob( nJob );
2 ~4 K0 U/ h( r7 X# E; Z2 B& g
}else{
. B2 u! g, G8 J0 q1 I
return;
0 i' d3 V- m% C" Y' y
}
3 u) s+ ^$ }. R- g3 b
int nPoint = 0;
! U9 c7 z7 |1 e6 _( O
if( m_nJob == JOB_MERCENARY )
; K: W" F4 b6 V7 O7 N* E/ s7 ?
nPoint += 40;
9 ^0 q7 ~# ]: e, [+ O. Y
else if( m_nJob == JOB_ACROBAT )
1 I0 ]/ H) k4 [5 k. s
nPoint += 50;
! x+ N+ `3 h' O9 N. S4 `
else if( m_nJob == JOB_ASSIST )
% i5 K* R& e3 L( L m2 X3 f! E
nPoint += 60;
4 I% Q. Z- _. h0 w8 W7 b5 g- d) `
else if( m_nJob == JOB_MAGICIAN )
6 `2 o2 r& R. r' e$ g
nPoint += 90;
3 e! M8 ^8 h3 s+ u) ]$ W
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; Q' K5 p* P( N) ~& W3 p
nPoint += 120;
! \# f0 H. n5 _, |: r
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 o0 w4 L$ {) A* `* N' D j8 i5 Y
nPoint += 150;
& t0 Z1 S5 ^7 D, A8 T
else if( m_nJob == JOB_RINGMASTER )
0 I/ F0 L8 x8 Y/ P& S# U
nPoint += 160;
1 F. C! X3 _9 u. _0 v" O, J
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; D# G( V7 r' C! J( \1 m, i( @* }/ p
nPoint += 180;
+ S* v) x8 p ?; a4 [
else if( m_nJob == JOB_ELEMENTOR )
9 x. m, @: A4 G, [. o; e
nPoint += 390;
( [ K# Y1 |3 f6 q8 v6 m% A* w
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 W6 v/ v& V' M u# A. K6 e
nPoint += 120;
" e: f* X/ v) V. \7 i/ H7 L
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 ]8 F# u: X& I a$ Q
nPoint += 150;
% j$ Q7 P$ |: r8 j0 P, Q
else if( nJob == JOB_FLORIST_HERO )
/ P R8 y5 l1 T: o
nPoint += 160;
: u% g$ C+ T6 P% [
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% _- G0 @3 a+ B' j" K. J E
nPoint += 180;
1 [+ h/ ]5 y6 ]- D
else if( nJob == JOB_ELEMENTORLORD_HERO )
u7 O6 |6 y( {, |' a3 D
nPoint += 390;
9 W7 y( V8 w2 f1 Z" Z1 N$ x' D
8 O8 v$ d! L# O! E G" _
AddSkillPoint( nPoint );
% x1 W2 P9 [) m$ ]% W& f
m_nLevel = nLevel;
' y3 d2 F( H2 y2 U% u
0 M" D. \2 A5 F; m
SetJobLevel( nLevel, nJob );
$ h' z# }) i) p: R" L2 `
m_nDeathLevel = nLevel;
% V) A4 p7 C3 Z( {6 J2 U0 o
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 G+ _7 V# V7 S. L
if(IsMaster())
/ I* P$ X7 ~$ O/ h5 x( x
{
6 U( \2 Q' T3 N+ v. y0 t
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- @6 d7 ~- f c2 J3 \
if( nLevel > 59 && nLevel < 72 )
5 J$ n } w3 _; C3 k; ~" U" u
dwTmpSkLevel = 1;
( |1 w7 r7 v+ D) }
else if( nLevel > 71 && nLevel < 84 )
2 g$ F9 z- _1 z) s* d' M, j5 v0 \
dwTmpSkLevel = 2;
$ a# {( t+ F# G) c8 I
else if( nLevel > 83 && nLevel < 96 )
; g& X; H: H. M. ~) L
dwTmpSkLevel = 3;
/ J% E" R9 N: q3 x, _
else if( nLevel > 95 && nLevel < 108 )
# l* h3 [) {; I" Y+ W
dwTmpSkLevel = 4;
3 |& j; F i0 Y. U3 g
else if( nLevel > 107 && nLevel < 120 )
1 ?3 b* i1 _9 r$ d% A+ ?
dwTmpSkLevel = 5;
% v& {# `: x$ n- Q! {, i$ D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- r% @6 P5 F' @3 J
{
3 U h+ o- x5 I6 q# z" G
LPSKILL lpSkill = &(m_aJobSkill
);
% P# y* E) ^# t! g1 ~3 |& d1 v i8 v z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! S+ \, ~3 N3 I" `- @! B
{
; g. {& T* k# X* A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 B& }! H( ]# ~9 i# V
if( pSkillProp == NULL )
3 z$ l% @$ }3 N; {3 k7 G( b6 @
continue;
. A& h, A' |6 h6 m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. u! w! C2 n% q! G% J
continue;
7 h) a& }6 r' y: j+ S
lpSkill->dwLevel = dwTmpSkLevel;
' ]5 P5 q. Q% v9 U
}
. e _. q5 I1 K a7 R8 E- n
}
; s- a, A) \, |0 \, P8 k
}
- s) {" x9 A x! i
else if(IsHero())
& e# ^3 [0 e1 j5 Q! d' i- h2 p
{
9 | D+ i ?; J6 H# I
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( ^" C& B9 q# }4 Q/ _' S
{
8 ]0 Z% w* |- ?- g
LPSKILL lpSkill = &(m_aJobSkill
);
) }6 @, G6 q' o3 i5 I% [/ b3 H& r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ M+ Y; r) L9 y. ~* ?) ]! l2 k
{
" |. T7 J, Q% Y0 d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# N- s! j& l4 o4 i
if( pSkillProp == NULL )
/ M0 ?7 P' V2 o
continue;
2 P8 }1 w( w* E) m% N- B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
`5 W% O4 w# K; p/ }" w6 X: k
continue;
8 Y: n' W1 y- J( I1 }1 h) j7 R9 z
lpSkill->dwLevel = 5;
7 g& O! [* K4 R5 a6 l# c
}
8 P# P" \( n) t k- p1 E" L
}
" j) R6 k9 E2 D( T4 D6 F& i( i( m
}
# m4 ^4 Y) V- |$ X& s
else if(IsLegendHero())
+ H! c. G6 e5 f F7 ]/ l7 h
{
F, q8 Y4 M( N5 R$ ]
for( int i = 0; i < MAX_SKILL_JOB; i++ )
b/ ?0 j7 j4 n/ W* T
{
3 Q, o9 R( v# I
LPSKILL lpSkill = &(m_aJobSkill
);
' g) l! ?& `+ C# @- M
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% O G! I3 d' S
{
/ P5 K3 b7 |/ m6 @: K j# V* \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% D- t( `# w, t- E
if( pSkillProp == NULL )
U z2 u7 M% P3 q4 R, v
continue;
* T2 { W8 v# M; K: ]8 N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 G+ h/ o, C1 A
continue;
* M4 ~! I" M: W$ d
lpSkill->dwLevel = 5;
% A, A! I Z$ |+ a6 W; d" q
}
) l, i; a8 \; p% K$ E' F
}
" D8 Y# s5 C/ Y( ]9 p4 L8 y
}
+ d" ]8 \1 U* H: W( ]6 d. `6 z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; A( y4 {6 A$ D0 a, P: S$ B
if( bGamma )
! r, e/ q, W K2 E0 N
{
; J& d) F1 b3 u( J
m_nExp1 = 0;
) U7 E. p- r( F6 a& o
}
2 D, C, Z* z( q& q, f% v
4 {- Z! `3 G. ~
( (CUser*)this )->AddSetChangeJob( nJob );
8 a6 U0 w' D3 C4 F! Y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 {% U$ w; t4 P% ~- v
. `1 N/ J* w' p0 t, `- Q
1 S5 ?: X% W! w! x% o
#if __VER >= 11 // __SYS_PLAYER_DATA
. p) J6 G. m! y4 n
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 R3 l) S6 E7 @5 O( C2 K
#else // __SYS_PLAYER_DATA
9 _! _% m% ]" {5 C
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 W! N# w/ B* { K
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, X+ `( r6 m, Z ?8 o' W
if( m_idGuild != 0 )
% j* d, e8 W" \. l: a( J: Q
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 G: D$ p8 E" a
#endif // __SYS_PLAYER_DATA
; G# r0 X5 x2 g* M7 [
SetHitPoint( GetMaxHitPoint() );
; G6 }$ o g, |, N# I& e7 b
SetManaPoint( GetMaxManaPoint() );
6 U+ y7 ?, [* E- O, V4 K. x0 j+ h8 f
SetFatiguePoint( GetMaxFatiguePoint() );
. y/ w& ~! H) Q$ ^( q
if( nJob >= 1 && nJob <= 4 )
1 ]$ W/ S( \$ S. b6 |
{
! D1 }' o& A$ }1 k* z% n! o
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% K( S* F' M5 x" `( H% [
m_nRemainGP = 28;
( S8 v$ U8 d/ ^- x& @- T
}
' a; t5 s a+ a
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. k& `- D; }! c- b/ F- M( L; K3 Q- Z
{
* s8 R% Z) E6 d m, R$ j& Z
m_nRemainGP = 118;
8 [) l; S/ W! V6 b- e0 e8 K. S
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: e0 S1 y8 M! G' m4 Z' ~7 D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 p9 B0 h1 _" _ y
}
6 |! ~# A! T+ U2 t* v R, c) I3 u
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 A1 b( C" B; Y1 b- t' I
{
5 N l! G( t' c" y# m: V* Q6 M
CItemElem itemelem;
' ^7 {/ B! j! G9 u# g& `
itemelem.m_nItemNum = 1;
0 O2 O5 \1 A: P, O7 Z
itemelem.m_bCharged = TRUE;
6 u" \; q( Q1 a/ s
BYTE nID;
/ C0 a! V0 @( f! N X; y3 `
/ Y; S$ P! @+ \2 U! u' v) U F9 H
if( nJob == JOB_MENTALIST_HERO )
! R1 s# g' f3 D2 p, K8 b! B% ^8 t
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" n( y' a- E+ W4 l; Z
if( nJob == JOB_FORCEMASTER_HERO )
" B: k- P7 A3 M& Z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 _% T+ T" u. I( c& O& \
) A. ] A5 |2 V: ~$ G
( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 Z4 O/ u/ F; Y/ N
}
1 H. ~% h: Z' m' z% J
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, c# G8 C: \7 q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) _6 o$ n6 R4 r; ~. q" x2 ^& a# C
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* @5 A: A$ b2 M M' {" p
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
4 i1 J$ F* O& u$ ]. z( y
( (CUser*)this )->AddTaskBar();*/
" c2 ~4 A3 l v& z8 u4 z% A0 m
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 S) Y' X" Z1 ^5 @+ E
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( Z' z; x9 T6 m. q
((CUser*)this)->CheckHonorStat();
# h- u5 T5 X* l( h5 t
((CUser*)this)->AddHonorListAck();
; {2 |, S/ x- ^# E% C }9 S( V
g_UserMng.AddHonorTitleChange( this, m_nHonor);
. D' [' f7 t# R# p8 d! S
#endif // __HONORABLE_TITLE // ′Tà?
- l4 Y% V0 c$ B# E! N( B
}
) ?- X- @* }5 t4 E4 l r6 `6 m2 u
#endif // __WORLDSERVER
+ V7 }+ B3 h) q6 e2 ]0 ]! _9 P% r5 \
}
. ]+ \; m/ h N. i
2 Q' h, G9 F% d7 ~- d
然后你进入functextcmd.cpp并添加以下
; c6 h/ d; g( S$ J7 l4 A
$ g8 ~& [4 k: \; }# q) E6 g
代码:
$ |- s f; H; Z" Z/ U% u2 X
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 \# B2 @$ Y8 \* x) D
下面插入
: p2 R: a5 ]" k- v3 u+ G9 G" r
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: \" o: x# J( _. q4 k: L! g' Z. l
; `- h& u5 t2 v- D
然后你去
4 @$ O$ e" e) n, D
6 \% C$ w* w( w5 g2 V
代码:
" U5 y* t9 J9 o6 X
代码
9 C! E0 w# r3 a/ N; h
BOOL TextCmd_ClearPropose( CScanner & s )
: H) f8 ~ @3 E* @9 @3 S
{
1 m! ?; O7 C0 l3 L1 d
#ifdef __WORLDSERVER
l; c: ^1 B! e) P( M
CUser* pUser = (CUser*)s.dwValue;
; K+ x2 Q+ h/ N$ V
g_dpDBClient.SendClearPropose();
; s8 c. ?% P2 Z d, E
#endif // __WORLDSERVER
- j' L$ u( c5 ~8 [: `" f
return TRUE;
: }! q& E1 M {% G* Q3 t8 s- S
}
% m0 x" c+ t- W* I8 a
下面插入
% b' h/ L Z2 [" S6 b! L
BOOL TextCmd_rebirth( CScanner& scanner )
4 r( B( A$ t& M) M5 F! p$ G ~
{
/ n0 V. V( J* e9 O
#ifdef __WORLDSERVER
. [; V" ?8 \( a9 M* D- B& s1 ? l
CUser *pUser;
- M' o+ W R& i, ?; H. n
pUser = (CUser*)scanner.dwValue;
7 C5 m% `( ]4 J+ ?3 v" F+ s
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# P: u O% W! t D
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
) Z+ J: q" X o3 F- n) w
else
0 a: Y0 f; B9 x/ |' @
pUser->AddText("你还未达到重生条件!");
9 H# A3 r# B. v
#endif
5 H* }& j& T. ~, x; z2 J N
return TRUE;
: j; g. c; {- L- ]
}
, v1 M9 x" l) d
/ E1 B: m9 m( p
, [2 t. I3 o( l3 V+ e) h
+ O. Q( V3 v9 Q- M' @, ~7 i* _: I% [* b
2 J( s, e6 r0 t$ ~2 u& g- \
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2