飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ q0 b4 a2 R( J$ A
+ F$ w1 B5 U }% }
Mover.h
- u9 B: X$ Y) T; |& ~& r
代码:
$ ~1 d, b1 O8 C c$ Y4 ~
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, A7 ?. t/ `# w6 z
# A. C. o& X% h! i0 |5 C" }) p
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 u4 I+ W! q/ |! X& t' a+ T5 @3 u
5 T2 V. s. [3 e8 {6 @
然后你去mover.cpp添加
7 }9 Z7 ~* S& i" C a5 n
0 Y; ~ R \8 m, W- j! j
代码:
, [- h& l+ y5 g
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 a! O: g( V- V4 {
{
# W" S" P, j$ ?: m
#ifdef __WORLDSERVER
, U! e4 i* Z. C) p
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- O- x1 d6 F5 P+ t! _' F/ x
MoverProp* pProp = GetProp();
+ a; X1 L G$ t
if( pProp )
2 ~2 j" ]% e" l' C# z; v6 e; Z& X
{
! P& `2 X% O, d& v* S2 L% K/ ?
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ C( c- C# g( \" P0 F* v
{
9 Y' [! l( l& q
AddChangeJob( nJob );
0 f" [% L; l# ]0 g% |
}else{
\, U2 A6 x& e4 h
return;
1 t* @9 w9 F D# d4 H. c
}
7 l0 @8 a$ o, ^& }
int nPoint = 0;
$ c2 j: \$ b3 Y( G9 r5 `* s
if( m_nJob == JOB_MERCENARY )
# ?2 D; K7 N( \5 M
nPoint += 40;
8 c3 L- W; R4 ~1 Q. I6 q! G$ F
else if( m_nJob == JOB_ACROBAT )
. B; X2 Z/ ?% U" S9 G* _
nPoint += 50;
1 c1 t' a1 {3 B" F
else if( m_nJob == JOB_ASSIST )
( P n" Y* I( s7 G+ w( w9 R/ V
nPoint += 60;
- U9 K4 Y1 z& Q% w
else if( m_nJob == JOB_MAGICIAN )
5 Y( v( C7 M, F* [ `0 F
nPoint += 90;
. X3 f7 U/ R9 O6 N/ K1 u/ x) T
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' |4 M: e- [$ `4 H" i
nPoint += 120;
7 N3 U8 l4 X2 Q& n: y% o8 y" l
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 K4 }6 Y4 r. N( u$ x |
nPoint += 150;
% Q) D6 P8 d2 S: s/ s% N. x- ?/ D/ s
else if( m_nJob == JOB_RINGMASTER )
' v( l9 T7 z+ P* p B. p3 G. @0 B y
nPoint += 160;
4 J9 R# B& A j$ k
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) h8 N- X1 A+ L5 j3 ?! p& ^
nPoint += 180;
0 i( u8 ?* d/ h, N* w5 B f6 E
else if( m_nJob == JOB_ELEMENTOR )
+ l' {5 O6 N0 j k3 ?. E
nPoint += 390;
: K, @& F- J8 O0 R1 m, b5 S& D
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# j! X% Z Q5 K3 }8 k) A$ Q! O
nPoint += 120;
0 P9 U3 p) ]# N0 s9 U4 [0 q) C* [
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# d; _; n% k4 j' [- B* t
nPoint += 150;
/ T" ~2 s0 P- [, O% o4 F/ Z2 ^- i
else if( nJob == JOB_FLORIST_HERO )
* u/ }4 K; W9 ~/ P+ z8 ]4 q$ B2 d+ O
nPoint += 160;
) l+ a0 ?" e: T( v+ N/ z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! G, N8 t# [% r! A( `( a$ u
nPoint += 180;
5 q$ E2 H3 ]+ t) L& K I: A
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 g7 ^0 s( @; W
nPoint += 390;
7 w) E7 y; c% k$ Z2 C
' F' z6 q( k' o
AddSkillPoint( nPoint );
* H6 X& X6 E0 A4 \$ _/ Q
m_nLevel = nLevel;
0 ?# F4 U" |: |; v
8 |: V. g: w* X, O# t
SetJobLevel( nLevel, nJob );
8 [# M$ b6 ^$ D% l/ p' u5 J
m_nDeathLevel = nLevel;
( U8 q7 m$ X. a8 r% R- H% D
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 e1 N$ J$ o3 O0 T6 _$ I
if(IsMaster())
) M) g0 t0 {- ]+ _* C/ C$ b
{
* |) |9 b% E, ` E% r3 Q
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" r( {" B5 d6 s
if( nLevel > 59 && nLevel < 72 )
4 ?9 |6 }; ?5 S: Q
dwTmpSkLevel = 1;
2 p2 e4 P, L8 T7 ~+ Y
else if( nLevel > 71 && nLevel < 84 )
% k. V* U3 C2 [# n
dwTmpSkLevel = 2;
, f: k1 l. ^2 F3 s+ N& ~
else if( nLevel > 83 && nLevel < 96 )
, C B8 [4 I6 O4 j! v1 R
dwTmpSkLevel = 3;
: i3 S @/ I) P4 g8 u9 }, j
else if( nLevel > 95 && nLevel < 108 )
! M4 E; N6 m! }% x
dwTmpSkLevel = 4;
# V5 m2 n `1 @1 c
else if( nLevel > 107 && nLevel < 120 )
, M `1 L$ i, e: {& Q" i% c
dwTmpSkLevel = 5;
8 l7 i1 V8 i: E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 z( m5 y/ w8 h7 o6 \8 e0 ~
{
! Y% p$ E0 W& x- X
LPSKILL lpSkill = &(m_aJobSkill
);
) Y& a7 }) P# u: U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( g" p' r5 g* v8 Y
{
$ W' E N; \7 A/ i1 O ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 C4 D B3 [# ~1 H$ m5 ~
if( pSkillProp == NULL )
- s; O- B4 I7 t: k" v* B
continue;
) J# i6 i' I. L: E! `. F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( {# n( h* p; Y$ T
continue;
@6 R w! q- ~- T, f: F: x
lpSkill->dwLevel = dwTmpSkLevel;
9 w1 x8 L6 n( A6 O7 U( K! u
}
: v3 _* q5 B4 I; N% G
}
1 Z# h/ p3 C' j' m# W) d! l
}
$ K* b, ^3 J2 U, c8 m! G$ W
else if(IsHero())
2 P! `2 d. q) G
{
2 @, T F7 ]/ m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# q5 H3 |6 M3 c+ A
{
& o" V% t1 k# x
LPSKILL lpSkill = &(m_aJobSkill
);
, W( B6 b( @0 j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ A4 x) m/ B/ R \) I' s. N
{
$ s& J0 @: T/ H, A+ ~& G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; x4 o! B7 w! z, l7 {* M2 P
if( pSkillProp == NULL )
4 {7 J7 ? S% @& V/ E
continue;
0 V! w- @4 [* {9 H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 u! Q8 J, A. E$ G
continue;
' O) x' a7 P$ }: d4 ]4 g/ i/ u
lpSkill->dwLevel = 5;
% D$ L l1 @ o- n! d$ Q
}
6 g( O& A% Q1 G" ?+ w& k4 E7 l
}
2 ]- K( s2 E# z( i" S3 D# K/ R
}
9 o- u! u5 n$ [
else if(IsLegendHero())
& v# H" o" i$ j, X" y1 a8 u p" B
{
! i; K+ W/ j0 ~/ o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( V* k4 v6 d0 u
{
; I m& e8 L ? t* M1 H
LPSKILL lpSkill = &(m_aJobSkill
);
8 Q2 Y' M. Q# p2 o
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) n4 Q" f( J! X1 J9 }
{
2 `+ W6 A/ P0 C0 ?8 G; f. D/ G0 S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" I- E7 s& T0 L* j2 e1 V% f
if( pSkillProp == NULL )
: p# Q$ d! I9 q( B
continue;
- }$ Q" n. X& q, C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ K5 `' q$ l1 j+ U$ T1 e% O1 N5 r
continue;
; p* i1 ^! l4 K: s. Y
lpSkill->dwLevel = 5;
i! B r0 \7 c' _# L
}
) A( m2 O# Q* y8 U, L% F
}
; v0 t, P& k; G5 t7 J- s
}
S2 O. J8 b9 |, S$ }" P+ a# U( L0 K
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 e. z! r; U6 Z, N2 s/ q
if( bGamma )
* r! a6 h( E( U; S D: Z
{
- Q% Z( V3 W% I' @# u, r
m_nExp1 = 0;
1 ?7 |9 r8 n f6 g P7 s
}
% z2 W5 a, C q( e1 `
: s& V& [0 K: V6 ~4 g
( (CUser*)this )->AddSetChangeJob( nJob );
* L2 _/ Y* {% @ O
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, W6 K' l/ y: w5 h4 X5 {; W; k4 _
5 q' m6 C. Q, @0 R0 |! g; T. K
2 \# ]. v5 ^6 j# E. @
#if __VER >= 11 // __SYS_PLAYER_DATA
8 `6 B& f+ p! w( q2 `3 [
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
7 `$ M8 \, i4 @1 R' ~4 L
#else // __SYS_PLAYER_DATA
8 f6 L$ v: s2 [
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ d; d( R5 W! a8 p
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) X7 P4 R9 ]7 ~- ~2 {
if( m_idGuild != 0 )
" u5 R8 f* t2 a% u
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 g+ N1 A4 { U5 W) x% b
#endif // __SYS_PLAYER_DATA
5 \( W4 P- ^! m3 j4 h* S
SetHitPoint( GetMaxHitPoint() );
8 t" T/ z a+ e& P
SetManaPoint( GetMaxManaPoint() );
+ g( h8 U# q. Q- }% _* O2 B1 _3 |
SetFatiguePoint( GetMaxFatiguePoint() );
- `# _ U& S3 {9 P2 R4 t% l
if( nJob >= 1 && nJob <= 4 )
0 |& t- ]7 p; |5 ]6 C/ w
{
3 n' G7 ]. Q0 ^7 K
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ e x# |* I; ]* _7 W
m_nRemainGP = 28;
0 B, `1 {3 A" n: ]% z3 C
}
# N t# R6 j: S9 P; T: w, ?
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 K% m$ u4 k |( c' N
{
% u0 w' W2 {8 Y3 n$ F J, p+ d
m_nRemainGP = 118;
- [- g6 `8 C N. i
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
# x" N. b: p8 X& z2 t' t
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; J- |2 Y# W- b" F% J5 V2 d
}
6 B$ ?8 n9 L3 r; O4 S
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 a7 J4 d+ I" C1 A4 I+ ?$ X* B, M2 O
{
! l" l+ W3 _& N: a* V) N
CItemElem itemelem;
& b+ X( L" V' `% x0 j& r
itemelem.m_nItemNum = 1;
. L8 F: F, l- y" P. x1 |; D
itemelem.m_bCharged = TRUE;
# z- G* G3 O- [7 ^6 J0 `0 P
BYTE nID;
W: ~7 \' ^) h4 i, L, _; U& s
7 M* _7 [: ]/ K1 W0 f
if( nJob == JOB_MENTALIST_HERO )
; t4 o" X$ L, X; F0 h
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 @- {6 u# M$ R3 ]; o
if( nJob == JOB_FORCEMASTER_HERO )
8 g! y1 [, I" r% m, Z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- w+ e0 `9 D7 H8 a) b ]
6 J# F2 @7 \2 K# z7 s
( ( CUser*)this)->CreateItem( &itemelem, &nID );
|2 f' r1 K2 |! g. ?6 Q) m
}
( U5 L! D* D- O$ j9 T
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
5 e2 g# h1 T! Z6 w9 i6 k
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
7 E$ l5 B9 j- @
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
5 V- U/ U5 ]3 O
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& t. u* c" q7 B8 o9 Z6 W
( (CUser*)this )->AddTaskBar();*/
5 A, N# [2 k o; G
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
+ B# ~+ K+ L/ Y+ j: k& S$ i, I% r% \
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' j- p, V F. u1 R8 P5 F
((CUser*)this)->CheckHonorStat();
5 c% u* Y0 ], V( H
((CUser*)this)->AddHonorListAck();
" _/ H% a6 c: ~0 }) o
g_UserMng.AddHonorTitleChange( this, m_nHonor);
1 r) {+ w9 K m B
#endif // __HONORABLE_TITLE // ′Tà?
1 f8 N$ C9 r% M
}
7 l0 I6 u% Y, i
#endif // __WORLDSERVER
/ v& Q6 p# ^1 [2 b, Y5 ?! O
}
+ L6 ?4 S6 r( w% o4 D& E X
* _6 a( d! E( b. J$ l) d4 _% E
然后你进入functextcmd.cpp并添加以下
* C3 @+ k1 Q! a6 m) q# D6 ]
- L; ? T( ~$ b: U7 s$ J0 r
代码:
) q9 U, z' `) W4 J# j: ^
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ Q# Q9 e' G0 z/ {
下面插入
, i4 |2 Q! W5 y F& l. c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; R5 Y/ \* B8 k' o0 E
1 _1 Y' o! ]2 v/ j
然后你去
; g; } B3 P) x/ G" V4 g$ ?5 Y
5 s9 {. p: Y |2 n3 t* K
代码:
* d7 \3 |. x1 ^3 D3 g. o$ L
代码
; [5 r+ j6 {) F2 [
BOOL TextCmd_ClearPropose( CScanner & s )
( F3 T! ~* ~4 U8 h2 |3 f! O6 r
{
: E8 N2 J u+ O! z
#ifdef __WORLDSERVER
" \' v, v! z3 @ B: v$ g4 o
CUser* pUser = (CUser*)s.dwValue;
* ~. Y. B* ?1 g- u1 y8 u% f
g_dpDBClient.SendClearPropose();
4 o+ G7 _9 q8 O: Z5 H6 w* `, j
#endif // __WORLDSERVER
4 T2 J$ K1 `$ i- C' H: N P
return TRUE;
; S5 |5 y) G7 [! S4 x" m- c! U6 C
}
' e5 `. V8 \: k$ l5 k" V
下面插入
! S9 J( h& e2 L) ~) p4 @# V
BOOL TextCmd_rebirth( CScanner& scanner )
3 l& Y. U" [, N
{
+ x R, m3 c$ c5 p5 W
#ifdef __WORLDSERVER
8 p g5 n& f: ]
CUser *pUser;
) B9 I6 n% _2 y- e9 b
pUser = (CUser*)scanner.dwValue;
) a2 m5 r. e# b" {
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
; C- C! [9 Q1 q3 i7 e
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- N% d z% m; X7 J& n' H
else
! W6 D @2 O* v, D6 H0 g- N
pUser->AddText("你还未达到重生条件!");
) v! ?) _* b2 T8 x* b
#endif
) g; U( K+ [* I
return TRUE;
- U- J; ]# e8 p' B
}
' |( A' Q" z3 n3 U' i1 [& W/ g
" R6 R/ [, }& P% X7 V8 |
; I: E# I% D* J" Z: q( c
" E, Q- ^6 u0 M. g" b8 @% z
$ m0 A- P% I! g `/ s7 `$ X
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2