飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! P& k' X: v$ d) W/ ~) N0 Q/ T8 y
% h( c9 h! t' E1 t+ D
Mover.h
( A. A5 ^ o, s6 u9 t2 v( n
代码:
7 O! S0 j8 `7 u& \. ^- z, ?
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: ?9 T# \8 r: F/ T2 o5 `
$ O. I/ Q6 y6 O" A# e0 w
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# k Q: J. ?. t7 s0 m! |3 ]7 t9 }
6 k" `% j; U0 a8 o
然后你去mover.cpp添加
" H4 m3 A: p; k. W1 Z" K
, V9 x, f# P! R) J! _# s Z
代码:
) @2 v6 E# r9 z) Q9 Q
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 X; t0 i) U; C: c; @
{
# D& u4 b8 W0 ~+ n o: t9 k
#ifdef __WORLDSERVER
9 D2 ?4 S2 {+ o
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
3 D+ o; e# g6 n0 [- w0 Y
MoverProp* pProp = GetProp();
% S% [5 F( z: M, p. F T9 @; C
if( pProp )
5 a: O* G* l' G$ d& u3 A8 C- O
{
- p; e4 x1 l* |9 K
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' ^6 C! a1 [) {* d4 P' J
{
2 Y" X$ W" h2 h: c/ [- p
AddChangeJob( nJob );
) u- i: ^% F9 U! A3 S. U" M" p
}else{
( v7 F7 @& _, H( `! q
return;
+ a- e+ e0 @8 f' r
}
0 n' x! M' q" p1 `. w
int nPoint = 0;
" I4 X% B# }4 B" h. t
if( m_nJob == JOB_MERCENARY )
# b6 S$ k" _* I6 U% [
nPoint += 40;
- Q8 m o2 X7 Y4 A" W+ b6 j
else if( m_nJob == JOB_ACROBAT )
* V! y5 D/ `+ @2 F' Y+ i
nPoint += 50;
/ g* k" W) \" V
else if( m_nJob == JOB_ASSIST )
! F2 {5 ]; `% G( L) X1 g2 ?& `6 o/ C
nPoint += 60;
! T2 R) h* t7 w
else if( m_nJob == JOB_MAGICIAN )
- Q1 f* [9 b W) P
nPoint += 90;
" S" V2 H7 q1 Z* |
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; G; [6 P) V- V- O" d) P- C2 ? E
nPoint += 120;
3 C+ W1 M" d6 F( ]+ C
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 m! D+ i( b3 c2 M+ }
nPoint += 150;
: }8 f: t, a+ |( U( h- Q4 k
else if( m_nJob == JOB_RINGMASTER )
6 J6 V7 T6 i/ q6 G
nPoint += 160;
% l8 D; T* ~# V A( j" K
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& K0 W. c' M7 y( [# `0 ~) `
nPoint += 180;
* E7 F l7 {0 z8 l
else if( m_nJob == JOB_ELEMENTOR )
0 u7 D f& \7 f; G! d; V. A
nPoint += 390;
1 t, ?% Z. f4 r# S: ]
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
b# J9 |; }5 v) k, h# u: u+ n
nPoint += 120;
. O, s F; ]2 i- A2 F8 L& v9 G
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
& o, L2 n+ q3 _9 ~8 z
nPoint += 150;
( g& t, X( f/ }# V+ Q% N7 v$ r
else if( nJob == JOB_FLORIST_HERO )
% B# x. e; p b# c) L w9 r5 r
nPoint += 160;
2 ]. y s- ?$ z0 v& E4 `: L, @; ]& K
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
& R& f+ P2 V7 B: _6 {- `
nPoint += 180;
) Y4 i, R6 V2 Y& [ u6 p# }! m0 w
else if( nJob == JOB_ELEMENTORLORD_HERO )
/ J" b) ~2 S- m$ u$ V, j7 n( [6 z3 }
nPoint += 390;
* b) D3 d" A" m1 h
, I5 C9 u9 Z9 ^- w
AddSkillPoint( nPoint );
6 S5 I% J6 ^: T
m_nLevel = nLevel;
5 Q' g3 Y( [) }+ @3 d+ a
z$ A, e; J6 k1 U5 G
SetJobLevel( nLevel, nJob );
6 u1 n' I! ?) b7 r# ?
m_nDeathLevel = nLevel;
# N' e' r! [' a
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. Q7 o- _- B% x! d+ I) a' L# `
if(IsMaster())
; }' w. _# m7 ]6 ^2 `
{
7 u9 N: H% I2 }* _, v" d. d4 A! c
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ [+ T- G% k5 P I
if( nLevel > 59 && nLevel < 72 )
: j" G/ H4 h( F" d: y1 @3 ?/ p
dwTmpSkLevel = 1;
+ d+ K& i* v" X2 f0 C! T
else if( nLevel > 71 && nLevel < 84 )
7 T9 A+ m! [) R- P% h/ Q1 W
dwTmpSkLevel = 2;
5 y3 j9 I) N( U( f# [" j N
else if( nLevel > 83 && nLevel < 96 )
0 ^ v/ J8 b! |: f/ x1 ]
dwTmpSkLevel = 3;
3 E8 }% j) M* V& N
else if( nLevel > 95 && nLevel < 108 )
I. ?9 s% Y4 \: z/ z" U" W
dwTmpSkLevel = 4;
$ r4 m$ r2 M! c1 Q$ o" z+ \8 K
else if( nLevel > 107 && nLevel < 120 )
8 V1 {( d$ w* L
dwTmpSkLevel = 5;
' l: D8 c2 A1 f, e8 p; }. T) J+ l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% c; {' G( L c2 L
{
1 t4 y# r# T% h4 i
LPSKILL lpSkill = &(m_aJobSkill
);
, E7 n' C) i z/ B8 R9 r, Q1 e) r+ Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 h6 r) d9 d( @6 z! M2 m
{
' P5 M$ p, [, X6 t/ D$ S; [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" s' v# y: X$ K: B% B* \) q% s% {
if( pSkillProp == NULL )
- ~- F( S# w3 L) q% W+ f
continue;
) N% g6 `1 s) v [. S- u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ i( L$ t/ N% Z5 I
continue;
: f8 R/ I# ~: D, H$ s
lpSkill->dwLevel = dwTmpSkLevel;
- W6 {+ R1 G; X6 Q a& K
}
j. v% q" y z$ U. L$ C1 L
}
- g: {% b! l' L
}
5 P" ]; X# G9 N# l0 R
else if(IsHero())
! z* g7 n8 [6 s7 J8 v1 O
{
7 V R7 _/ d5 r4 W' v% |" A: N4 u
for( int i = 0; i < MAX_SKILL_JOB; i++ )
i# H; K+ G2 Z. I
{
( V+ P. t c% Z; T& ?* n6 g t
LPSKILL lpSkill = &(m_aJobSkill
);
8 _9 {$ B! V& V% a/ \4 S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& p+ X" | q. ?8 ~ ]( ?
{
" P M; E1 z' h6 ]7 I. O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! {: R0 |: C& S& p0 j
if( pSkillProp == NULL )
' [1 R6 r" y/ ~; d8 j- m
continue;
+ i* h3 \* l, E' e# o9 e$ G4 P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 C6 j% w5 q+ n2 s5 P; w+ _
continue;
( U H" n U$ n6 b: b* n8 b
lpSkill->dwLevel = 5;
1 y' v9 S& l- Y3 @8 D
}
3 j6 b' T+ z7 F$ `, Y
}
. F( Y* D+ E1 v3 c
}
! k& W7 H9 y9 E# y5 h! Y5 g- y" l+ c
else if(IsLegendHero())
/ |+ _; Y- O8 q _
{
* m; O, I& ?; l& l9 k1 b [
for( int i = 0; i < MAX_SKILL_JOB; i++ )
w( k* e6 t& I* e' y" E
{
& N P: J8 O- M$ _# P
LPSKILL lpSkill = &(m_aJobSkill
);
0 _* {0 v D4 A9 ]) D) a( n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ f% E1 }' K( E) D! J& x* \* e
{
' h: C( e* |- v/ j
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 `- D o" k' p+ r
if( pSkillProp == NULL )
( ?4 s& ?$ N0 N2 H; P3 l
continue;
+ B' g5 b0 r: x) l. h0 Z- [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 w! ^! R: F# E/ W5 h
continue;
" W9 b+ l5 g1 ?* x) i7 Y" G
lpSkill->dwLevel = 5;
6 g u9 l ]" A7 T( d5 I
}
/ S- \, r2 Q) Q! n0 I( o
}
7 P3 a: j( w1 L. s
}
1 V) U/ w2 l5 _2 |3 J
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# I' s# w$ F0 W+ Q9 l$ C
if( bGamma )
3 d% b/ U& S& z5 A+ Q
{
3 O4 ^7 u% T0 u0 W" J
m_nExp1 = 0;
) i+ p2 M% r9 y! {( J, K
}
7 k0 A( |% w2 g6 Z; u
5 D W: v2 k# o# C- k# P, d
( (CUser*)this )->AddSetChangeJob( nJob );
" D; k( y, h7 Y" ?# E5 o: |
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
& W/ n. p6 H8 [4 ^/ O) Q9 h
' o! G Y7 ]8 Y+ r8 L& o/ v0 O" C& i
# j" `6 }3 n% h2 C) w
#if __VER >= 11 // __SYS_PLAYER_DATA
6 W1 j* D/ r. T2 c* P
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( q/ u# }5 x0 S0 q% C7 J
#else // __SYS_PLAYER_DATA
x3 h8 n! r9 y5 m4 e
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& q( w* O8 e/ Y1 Z$ V/ X
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 Y' ~4 S4 Q& e( e
if( m_idGuild != 0 )
) D R8 x. b; y! X0 ^/ ^
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
' [" Y# L3 u+ v
#endif // __SYS_PLAYER_DATA
- }# V E! a% ]% o( U
SetHitPoint( GetMaxHitPoint() );
+ e: Q7 A0 s7 K6 ?! A6 u% Y3 B, D
SetManaPoint( GetMaxManaPoint() );
v# s& T% D3 h' ?- x0 e
SetFatiguePoint( GetMaxFatiguePoint() );
% N( P# Q2 ]! J6 s/ a
if( nJob >= 1 && nJob <= 4 )
* B6 y, ?# i5 _4 g
{
/ ~# q5 G0 R) I: `5 {2 |
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 y, ?2 f* \" S8 L, f2 x; g9 D* Z4 M
m_nRemainGP = 28;
$ u7 @# Z& Z$ K5 p" a2 f
}
+ \4 ]% }" G1 E, N j, J5 q) [2 x
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 I, @' m% ^1 a# j: \
{
# U/ q" K/ H4 o! {
m_nRemainGP = 118;
2 q3 I+ g7 K, A3 Q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 e6 v3 c% ~& x. y2 f2 H
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# Q$ B8 f( \% |3 |* a! T, K; N
}
/ s0 m, D: k5 O% u+ ^; k: A$ T$ b- U
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
y5 f q. i y( T. `/ i
{
2 ~, A% j. l; f3 t7 Q3 I
CItemElem itemelem;
2 q4 a2 ]- J: q+ v! @
itemelem.m_nItemNum = 1;
- A" `5 [ G, E5 J+ k2 ]
itemelem.m_bCharged = TRUE;
6 b3 P n) b0 B& |& M* n6 \+ P
BYTE nID;
`6 `0 o7 g7 O1 b/ j5 I
. [) j9 M( Y4 P, o5 u2 V
if( nJob == JOB_MENTALIST_HERO )
* H5 i# C3 F! I& V; y2 C
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" T3 S) |4 Z$ R/ ~
if( nJob == JOB_FORCEMASTER_HERO )
# z9 H& e: P, R3 {. R' F9 m1 |
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 T l* n. k+ e& s7 ~# Z |
% g/ o) P1 v5 ?- w. Q& X1 Q! c6 F
( ( CUser*)this)->CreateItem( &itemelem, &nID );
: ~9 _" ~4 {8 J1 @5 z
}
; m) y; n, [. `1 m* W/ C( U1 `
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ ?8 o5 M; S9 N2 Z3 k; {8 l5 I8 z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
% d* l/ v0 g/ R0 W/ }/ J0 A
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: r4 w& G7 L! S8 I1 Q% N+ @
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% ]& y4 Z% Q# a& j: k. ?0 |, s
( (CUser*)this )->AddTaskBar();*/
' M" ^$ [: }0 G
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 C7 X [# K, U
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 T; A1 z$ z) {
((CUser*)this)->CheckHonorStat();
0 ~; D. J" h# E2 I# d
((CUser*)this)->AddHonorListAck();
+ o7 g' I7 p4 t$ h6 K/ ~
g_UserMng.AddHonorTitleChange( this, m_nHonor);
; |% T7 Z3 I2 e P& h& {
#endif // __HONORABLE_TITLE // ′Tà?
1 J2 }1 P, \+ x2 z1 Q( ~
}
7 y7 [: Q9 |: l3 s3 a8 A! h
#endif // __WORLDSERVER
0 t5 D2 v8 j. E) K" Q
}
; \8 t+ m: |# [) \( A8 R: c
: w! I( R7 a5 l; D7 e/ r9 d
然后你进入functextcmd.cpp并添加以下
7 D- u4 V$ M& ^3 \) j9 ]
( w8 Y7 ~" U, l- E* ~3 o
代码:
" X$ i: B" a6 ^6 ?5 {
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
G* Q1 m3 `0 ~% b8 @9 D
下面插入
0 Q1 y+ d( ~0 D5 |
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
& F; ]! J% d$ F' }- ? n
% {# B& P5 g1 {# D8 D# Z: X
然后你去
# s5 I" O# n6 j0 e- `1 i4 c6 L
4 i2 A/ I9 ^, |
代码:
* u. S1 Z& ^# f# g- s4 {) u
代码
8 R% ^$ |- u" f+ L: L' q
BOOL TextCmd_ClearPropose( CScanner & s )
/ j2 ]% j! T( {- J& r a
{
0 y7 M; W! q% | S
#ifdef __WORLDSERVER
4 g, C# p9 ~" p
CUser* pUser = (CUser*)s.dwValue;
6 X9 V/ A& v+ z ^; C( }1 a5 _; n
g_dpDBClient.SendClearPropose();
) `5 E1 k* q- H0 ]' t
#endif // __WORLDSERVER
- ?$ |2 B4 h7 n9 C" h
return TRUE;
! z a' l: C# P* R" o
}
2 }+ ^/ D% x+ J% i8 e
下面插入
3 K2 @: ^3 o. T
BOOL TextCmd_rebirth( CScanner& scanner )
/ s3 e0 D z+ _2 g
{
0 T. _/ S! T- l7 c$ |5 @
#ifdef __WORLDSERVER
5 y6 Z' c f/ J
CUser *pUser;
, J! j- P8 l' J- y& M5 M
pUser = (CUser*)scanner.dwValue;
: X; y4 D+ ]8 b+ E% c; l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 v1 C: M8 y* m
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 Q" n: ]* S/ W
else
5 H* J: k2 \7 ?
pUser->AddText("你还未达到重生条件!");
" ^4 l1 T5 Z1 {1 c. m. H0 C( M
#endif
- O5 m# G* D# W g0 T
return TRUE;
9 s5 d: c% @9 i' U$ C
}
7 P G& b0 N* C3 `
& l, _3 G. A, X) a! C3 d6 i
0 S+ n$ P5 N6 A
) ~2 A+ s- V. `& J4 N4 ~" r+ O
, {3 ~% D, |5 `& Y) z
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2