飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: V! p! H; o3 k( f0 O# Q
) N# t" r u5 p3 i8 r$ P
Mover.h
" \* x- a) N: I. D* [0 z+ K# V
代码:
" B- G- x- i" I5 E
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 @' y6 B$ p6 E
5 Q( L2 |7 _# P' ~
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: ^ R9 x2 `) [2 J9 }
& b. E l! j% J# R [
然后你去mover.cpp添加
# V; @. W4 u; c9 {: N v
$ t) `' t3 W2 A7 _4 n
代码:
! e- \% ^. L& X/ ~. L* l
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' L6 D( ]. D9 Q4 i
{
! ~; |$ y$ n N% ^' ?! T4 u
#ifdef __WORLDSERVER
% ^) A) [# |4 z/ F9 j: R
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
' G& {" G+ z5 {: N! f0 V& y! ~$ y
MoverProp* pProp = GetProp();
4 V }2 p5 |# ~. \0 s
if( pProp )
' f+ c2 `- t$ i" [
{
) N1 z' g( R8 O
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
: i1 \0 d4 C( K, a
{
$ r, M# @, O. g7 i3 t
AddChangeJob( nJob );
. l* A1 q2 M1 a& p; i9 J
}else{
% F+ T+ t- ?; r! W! a
return;
6 \& I1 F8 G8 ~2 K5 b
}
: c& ^: J) U8 }
int nPoint = 0;
" z$ R7 z; W* v6 `( p
if( m_nJob == JOB_MERCENARY )
3 [8 Z8 r. y7 D% h5 m, E) p
nPoint += 40;
. |! P* z, u6 e# Y
else if( m_nJob == JOB_ACROBAT )
* [/ P! B* N3 s. Q0 O* G; ]: D0 h
nPoint += 50;
4 C0 A' ~3 v' A3 V/ B5 G1 H( O
else if( m_nJob == JOB_ASSIST )
) l x; t" h. O3 q! W) n' g
nPoint += 60;
8 I' T& d$ k6 V
else if( m_nJob == JOB_MAGICIAN )
5 G2 S# q! q0 Y* d1 d1 ]
nPoint += 90;
2 G6 h5 C/ I) M$ O/ j7 R3 i; R
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# x3 I+ y: S* g; h& b# c
nPoint += 120;
% a6 @2 n0 L! G5 v
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, r& X# L; U! m$ P6 m, U. T
nPoint += 150;
7 ]9 u; D' l: ?& v
else if( m_nJob == JOB_RINGMASTER )
+ P4 S' G4 w, l( E
nPoint += 160;
& c% w4 u0 p m: C& `5 S7 I
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; I! q3 s# ^- f: L+ Z
nPoint += 180;
0 v. a1 M" i( e/ l
else if( m_nJob == JOB_ELEMENTOR )
! G% K* N/ [6 p/ M& I" h+ H
nPoint += 390;
. |! a% {5 V4 u8 [" I& t
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! @ W7 k# j7 c7 x& ^) a" C
nPoint += 120;
6 {: q; }2 O4 z g4 k
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( P! M [) w- Q1 A( u$ l6 C( W- t+ L
nPoint += 150;
& S0 R4 p3 ~1 U6 A0 {
else if( nJob == JOB_FLORIST_HERO )
# ~7 l$ b( Z; d! d) S: A
nPoint += 160;
: X( U3 P F4 f4 t4 H8 D* ~- _
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ X0 u$ _ `; C( Y/ ^
nPoint += 180;
: S, w# Z1 K M
else if( nJob == JOB_ELEMENTORLORD_HERO )
# _6 L+ c! w3 \; b7 W. [0 ^2 n7 D
nPoint += 390;
0 l4 p" U" C; Q1 _) I
% z3 r6 ]! o8 I- m+ O: @
AddSkillPoint( nPoint );
: }% S* W+ g% e2 p- p
m_nLevel = nLevel;
& ]4 ^# [* B& p7 V: D' d
! I* a9 |7 z+ k3 g3 F' o
SetJobLevel( nLevel, nJob );
8 n# ` k+ W8 q' S# n$ M
m_nDeathLevel = nLevel;
; S( G& Q* F. \: C5 Y$ W
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ p5 ?! E" Q+ V: R( X9 v' O
if(IsMaster())
: m( v9 V" D: C/ t# p
{
7 i1 a2 {( _& W
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 z7 Y3 C2 t; ~# \ O1 M7 {+ u9 n: l
if( nLevel > 59 && nLevel < 72 )
- a5 v5 }( X% R2 v
dwTmpSkLevel = 1;
6 u1 m. a( e( C" V
else if( nLevel > 71 && nLevel < 84 )
$ k) Y+ Q0 S3 j8 Q! {% _( Y
dwTmpSkLevel = 2;
L1 y, K {2 u/ B, e4 _! J" s
else if( nLevel > 83 && nLevel < 96 )
. V1 t6 v. q0 Y, j4 q3 [
dwTmpSkLevel = 3;
5 o1 |) B) p1 \: Q
else if( nLevel > 95 && nLevel < 108 )
9 }5 `1 w' M6 K2 k5 Q( B) ~6 c
dwTmpSkLevel = 4;
b( [6 q* Z9 U0 a# d3 U
else if( nLevel > 107 && nLevel < 120 )
9 h& y0 P' V# U: @+ g6 a c3 L6 J6 [
dwTmpSkLevel = 5;
# Y( ~* Z1 k/ S$ l4 b b, k: {
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ Q6 K1 x- H0 Z6 q N) t @ |+ x
{
2 ~+ ]1 g& L. \. f6 R8 Q0 `+ h5 b
LPSKILL lpSkill = &(m_aJobSkill
);
; {; ^1 x. n- z( w
if( lpSkill && lpSkill->dwSkill != NULL_ID )
{* J( d3 u& H- ?
{
) Q' R+ J5 X6 b( y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( Z5 A5 j. o5 D' l% Q
if( pSkillProp == NULL )
, C& i# |% K9 Q2 d5 Y1 L/ Z2 S5 G. e5 f
continue;
7 ?! o8 l/ m' ]) x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# G& P5 y) F! u% e; `# X) v |
continue;
3 N. A2 X) f+ x$ b: d
lpSkill->dwLevel = dwTmpSkLevel;
) G6 N3 M' d4 I3 }$ \- W0 S: ?
}
% P, E% P. I6 l
}
1 L* N, j0 x1 x. G' c
}
+ v8 b% d2 z$ y/ f2 Z, R. ?( b( g
else if(IsHero())
5 [4 K. K+ B6 x6 n
{
- X4 D2 g9 t, ~% f
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 h$ N1 @3 D2 X7 Z8 m( {- D# N- r' g* ^* V
{
* K6 x/ {' u9 d5 J- P6 C
LPSKILL lpSkill = &(m_aJobSkill
);
- H2 g& E- R( h6 h0 g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; Q( g; x8 h* y4 o9 @* I
{
+ E' O# y% Y$ u; s" `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
e; {( M: R9 A
if( pSkillProp == NULL )
% J. f9 F% {9 N& I0 c
continue;
" C1 L7 s7 O8 Y" g8 j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 f, O/ j ?. G, o, y5 D# K+ y
continue;
" z9 ?+ v; H: R5 C f k
lpSkill->dwLevel = 5;
6 y/ ~3 ]4 Q" {. V
}
6 K* g |. l+ f, `, A" C
}
* a+ C- W! u0 f: I+ i1 E5 q$ O
}
+ n2 `& ?5 P l. b/ @$ Z
else if(IsLegendHero())
1 y; L5 K7 v- S
{
9 i$ s+ o3 u' S
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 @9 C. @* Q3 f1 Z! v
{
$ m/ X, q* m* I. c4 t
LPSKILL lpSkill = &(m_aJobSkill
);
; [6 m: I% N! Z% O! Y0 E$ @. h0 R/ w
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 h* j% w# R$ D- f
{
$ z, l: U/ ~! k$ {1 K4 X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* O1 p2 U! ]4 S
if( pSkillProp == NULL )
3 y* u; Y, V- I# Z5 {
continue;
: h- [2 s8 j& G, n- H ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: E) F; s( i- n1 \
continue;
: \4 C: T0 F) H4 u5 X; \6 O
lpSkill->dwLevel = 5;
% U! D5 R5 p3 M1 @& T2 h
}
- i6 ]% B! o5 _
}
. b2 o# o# {6 Y4 H) y$ V3 L( d
}
7 P$ e/ @. S& d/ I; U
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ h9 k2 i. v. A# _- Q3 M) W% U
if( bGamma )
1 v6 A; }4 D/ h/ e. `! e& x
{
i( K* O. q. @2 h. } Z) [
m_nExp1 = 0;
( \3 L6 C" n9 C) a
}
- G! x D/ ]8 u7 @% S9 ^1 B$ }
2 {& Z3 x @) P& F6 [' F! j6 [
( (CUser*)this )->AddSetChangeJob( nJob );
5 l4 q8 h! F& @' G
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
( ?* J# j% G1 h9 b) T0 m! p+ j
4 H" a* W/ Z' s! F3 a
+ Z1 r4 o3 [! {# q e
#if __VER >= 11 // __SYS_PLAYER_DATA
) ~9 i# H0 ^, x0 {
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
# [' J- p/ G1 \* @1 J4 ], I3 S
#else // __SYS_PLAYER_DATA
& [! R' ^8 r4 l2 h$ w1 [" v# ^2 A, C
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
- y$ a2 v2 g' l! S* q
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
& \; x% c" j; W x
if( m_idGuild != 0 )
! D8 P0 O6 @ |& x
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
: N& X) L. b0 P5 ]9 C: R
#endif // __SYS_PLAYER_DATA
3 S& D* B/ P, C' k2 z
SetHitPoint( GetMaxHitPoint() );
9 A: o7 _. v, W, Z
SetManaPoint( GetMaxManaPoint() );
+ C4 L$ Y7 p/ U# `" U
SetFatiguePoint( GetMaxFatiguePoint() );
( X( P4 c% _7 `% N
if( nJob >= 1 && nJob <= 4 )
% P% X9 H7 p7 j8 d8 H
{
, ` |( r! V6 a; ~0 P; c0 a$ |! n
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: H: h8 e, B. ]+ n& \' ^
m_nRemainGP = 28;
( P. R+ p, S3 z6 ~2 y4 o# ~+ ?! ~8 u
}
5 k- N4 C( ?- U3 P/ W+ u1 x ^
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ I4 x: y6 p0 h: Q* S& c: L) C# m+ g
{
1 H& F1 O: w" F4 ~$ v! t. k) C
m_nRemainGP = 118;
~7 ~ G7 R, `
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 ?2 J9 ] I/ I D0 O+ ^
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 Z& B* |$ V- z% }
}
$ y/ n* d# D4 H0 p; B4 f& q+ P
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) L5 Z$ k6 F ?
{
( Z& v( C0 I" j9 A& _+ k
CItemElem itemelem;
& D' C1 M5 s, i7 Y1 A) q8 o1 ?2 |
itemelem.m_nItemNum = 1;
1 F7 ~5 }4 I. k+ _& @1 z, \+ B( R
itemelem.m_bCharged = TRUE;
: [8 ]1 ~. B2 {: z m, y7 x; S3 ~+ [5 B
BYTE nID;
7 h2 m( p# V% _0 n% z
6 s4 u1 k3 l$ ^
if( nJob == JOB_MENTALIST_HERO )
3 ], L# O% n ^2 H0 {& K- e
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, c2 ^7 r3 C7 U9 D+ l4 B3 V# `9 K
if( nJob == JOB_FORCEMASTER_HERO )
9 [& u/ H% Z! d$ i
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 L, p% [1 i3 j* f, d% v
( s; k8 E8 z H2 R
( ( CUser*)this)->CreateItem( &itemelem, &nID );
' n5 m/ n0 H( ^& K$ m% r$ o+ \
}
5 O N: I& ]# n5 Q. Y( G0 c# u
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( N4 |- L3 v* |, {1 i
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) F4 W5 F$ \9 {; @6 ?# |
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
& o/ J3 M3 X. ?7 g1 B- p
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& p/ k, {$ c! O6 `+ |) c1 }
( (CUser*)this )->AddTaskBar();*/
) Z0 l( S8 f, k# {) Z9 ?
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 S; ?; |3 j9 |! E
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 V& O m9 Q( Z. @, e1 Z3 D7 Z
((CUser*)this)->CheckHonorStat();
# D$ ~5 ]/ N4 _
((CUser*)this)->AddHonorListAck();
& R5 B% g) @0 f* V4 c( ]% E7 N: B
g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ W* |" h; X4 t: j9 h
#endif // __HONORABLE_TITLE // ′Tà?
) N/ c9 L- [) b
}
. {1 J. t6 n8 M9 ]* Y' {
#endif // __WORLDSERVER
4 T6 m8 K Q$ p. X$ g/ F2 y
}
, ~: w" t' y4 H1 Y
/ ` Y( V( h7 v; T& K" w/ I
然后你进入functextcmd.cpp并添加以下
& X8 z2 C& ]5 ~6 ~, Y
6 Q. T3 Q6 Q+ R% _
代码:
# ?; w5 [" i8 r2 _# F
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 @1 ^0 [9 T$ _3 p& x3 V5 K6 Z
下面插入
/ k: W! o9 u: h! P5 y% W
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' w4 l9 Q* }3 [9 V2 @+ u% v# p
' H/ b# a- q: D2 M6 q
然后你去
0 X' g3 E. W: b8 u$ f! |: r5 ^
! j/ r; _9 |0 ]
代码:
5 G) W1 w4 Z" W, k* Z' [% s
代码
2 U) k: k' z. {5 X/ @4 J
BOOL TextCmd_ClearPropose( CScanner & s )
! I+ s) ~+ ?4 ^: C9 o3 j- {- Y
{
! y. e0 O4 g! E6 ~
#ifdef __WORLDSERVER
& H1 K! Q; O* {# }0 W
CUser* pUser = (CUser*)s.dwValue;
4 F* l. G$ v% _. N( F5 L! t5 e
g_dpDBClient.SendClearPropose();
% e w9 \' }/ z' S7 p: O# d
#endif // __WORLDSERVER
% L/ A+ y0 X; H. }* o: W1 N! b
return TRUE;
0 w1 C" `* X" _/ Z
}
6 o P3 R% s& s O3 Q4 @, v
下面插入
# N; _0 N8 h) a' K$ b% v% }0 d# N
BOOL TextCmd_rebirth( CScanner& scanner )
6 y4 C, L, u8 c7 ^& q
{
9 k- z3 \2 c6 b' T# s
#ifdef __WORLDSERVER
* o. _6 Y8 p' B& g6 @
CUser *pUser;
2 c. g' \, C4 S# {* B
pUser = (CUser*)scanner.dwValue;
3 l( A" }8 b K; p3 a$ W
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* j5 F" g2 N+ C/ S6 Q4 ^
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; {: U' F( d, R3 Y! N4 ?
else
3 `- [" y" c. Z# n. b0 m
pUser->AddText("你还未达到重生条件!");
" `8 m, J5 ]4 q. ^4 }5 C! P. x
#endif
2 y; {$ _; k$ V9 g
return TRUE;
I2 g/ K, Y2 m" q
}
7 `; H0 G# }( T& J }" f, z; d
( P" ~# q4 H( I5 ]3 K
w5 N+ b9 s: L( s
" c& D2 [: n4 i
9 T. u$ U! Q! m9 g
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2