飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ ^$ ~: ~! B8 E, q- z% d
- s2 Y1 {# J1 A$ T! l
Mover.h
4 t& P# U2 C( S
代码:
8 W7 D0 j( C2 Y, a) R4 c6 o
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
3 A1 ^' E' ?) @9 f
9 M# L' g. Z3 t* D
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& u0 @$ D2 U4 g% t! M2 w# b
" Y; w6 m5 i( n$ d' @% O/ g
然后你去mover.cpp添加
) t9 {$ T5 ]7 |9 D: x- n! e
1 K: ~- t7 c* a; }7 D1 ]8 l, z
代码:
' O4 a) U$ Z2 B+ X
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 c7 i$ V& s/ w. b5 @- R7 B
{
) ~ X! e$ a- M7 z7 Z$ S/ \# L
#ifdef __WORLDSERVER
) W! O# S+ ~3 W) k) {2 y
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 j z9 |% {. i5 x, H: W
MoverProp* pProp = GetProp();
/ L# k; @# v& W; a
if( pProp )
2 x% m" \; G% y) H, K+ s
{
1 G0 P, l2 w7 c! R! A8 `/ C
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
s0 p% m) z# f8 a* X4 Y
{
! C, A2 _$ F- Z b% U$ L
AddChangeJob( nJob );
9 i+ Y2 r) P& o0 W6 I
}else{
9 ^+ C/ A6 N M! {& r8 |0 L. ^
return;
) d* V2 V8 O8 Y5 `( J
}
2 b1 } `" S! X7 A, N! q) \
int nPoint = 0;
0 O( M: A" s/ u0 U. L* {
if( m_nJob == JOB_MERCENARY )
1 Y! N/ n5 w/ C1 {6 Q; R. H* B' M
nPoint += 40;
2 n/ V# s7 u/ ]
else if( m_nJob == JOB_ACROBAT )
: h# y; Q }( X$ e% Z) I; k. U: X
nPoint += 50;
* {7 ?: t9 b! x2 O2 q, E) F! k
else if( m_nJob == JOB_ASSIST )
a; S8 H+ j& _
nPoint += 60;
. r5 q+ b3 M1 k' {% S
else if( m_nJob == JOB_MAGICIAN )
1 H4 J$ R9 W4 @. B& p7 K. m" C
nPoint += 90;
7 ~. i% o4 H4 H0 K5 `- o
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ h1 i8 U Z, ]- {. n
nPoint += 120;
: f. Z* L- ?' E% s' o# X! B
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) W0 m+ K3 q/ B u' }1 J+ V/ q
nPoint += 150;
2 p' B/ Q4 @5 y( r. [4 i
else if( m_nJob == JOB_RINGMASTER )
& h1 Z) m' H( K5 c- Q
nPoint += 160;
, u$ m" v2 Z; K7 Z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
4 l0 H% H& d% @- S. e% T. f/ T
nPoint += 180;
* b. r' y4 _/ `
else if( m_nJob == JOB_ELEMENTOR )
* i/ Z0 Q8 Q# `, e
nPoint += 390;
! V! ^; z# K1 b: s; z* k
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. w) v: w3 b3 R+ |8 F
nPoint += 120;
' X) a' _: K3 b. B c5 E) {
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; I; b' r- @7 ?7 w" x& t6 M
nPoint += 150;
8 s1 k8 W9 N. w+ W& Y- S
else if( nJob == JOB_FLORIST_HERO )
) _/ L% l s/ Y+ f/ L6 A* ?
nPoint += 160;
7 o. K+ D. z% E `" k9 Q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; S% S* w. e1 T6 V
nPoint += 180;
1 T: f- j+ |7 t: s5 ^9 G& v
else if( nJob == JOB_ELEMENTORLORD_HERO )
9 m; v4 T* h6 @! D
nPoint += 390;
: S2 D" T2 _6 ~2 _
/ D2 t ~. k5 T" v; o9 f
AddSkillPoint( nPoint );
- @9 K# B& L: J% n
m_nLevel = nLevel;
" q2 w8 Y5 l# S8 j9 }
6 h" b: w7 Q( y2 X/ Y* k: \
SetJobLevel( nLevel, nJob );
; E, p9 i9 x \. O
m_nDeathLevel = nLevel;
7 r' d/ p4 e5 S4 J& u2 m! u! D
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! r) r5 S3 K/ Q$ Q
if(IsMaster())
! d. n6 A4 [4 I( m7 q5 p9 W3 `
{
* B4 E/ z/ T. P7 u k
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 g0 W9 b/ b# l! S2 N3 M
if( nLevel > 59 && nLevel < 72 )
# e; x6 }4 R& q" r
dwTmpSkLevel = 1;
6 y0 T: } p7 P+ b/ t1 c0 ?+ T% Y
else if( nLevel > 71 && nLevel < 84 )
+ [2 w! {- G) _! Y1 U1 _9 ?
dwTmpSkLevel = 2;
9 G& P8 k# u/ v2 y
else if( nLevel > 83 && nLevel < 96 )
% b3 f: K8 a1 [4 w, k
dwTmpSkLevel = 3;
/ K2 V# P* [! w' [- e8 L7 j& ?% W
else if( nLevel > 95 && nLevel < 108 )
3 C0 T6 B- t! y- {) a+ a0 I7 p
dwTmpSkLevel = 4;
( x- ^% k8 V. e- w7 o6 t
else if( nLevel > 107 && nLevel < 120 )
0 t ^# l9 r- p9 y+ ]( P
dwTmpSkLevel = 5;
( r% Z+ y: k4 h) b7 m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 M% J: g8 I' d6 z+ j
{
. ~! `+ E8 r4 H1 [+ I
LPSKILL lpSkill = &(m_aJobSkill
);
0 q ]2 O& N {# V# R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 n( H5 x) a; G
{
2 e% X0 b4 S8 ]8 m, h+ s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. n7 f: S6 s% q, t5 t& U. _
if( pSkillProp == NULL )
* P5 x; X( d5 j G2 T3 F. |: z, d
continue;
) c1 O( p, N0 b$ B; C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) S3 h. A$ f2 Y6 p
continue;
8 C# f: U; n2 n; L. M5 e0 X3 ?
lpSkill->dwLevel = dwTmpSkLevel;
, { ^6 {$ T, I1 L
}
. e3 w4 y" k V
}
5 l7 J+ R% E0 x
}
+ G2 E. c* f2 o. s
else if(IsHero())
# F' @& i$ r$ u s
{
& d9 G3 y1 Y" ^. G6 B8 B! G
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ g# B% z+ a3 h/ X( }
{
" F- @$ X% }0 x4 y
LPSKILL lpSkill = &(m_aJobSkill
);
7 Z9 v1 U& b/ t6 [, t2 ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# f( \, H W$ s! m' V$ {
{
4 g6 {( r- w6 K( P: T8 u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 b8 G; c2 v; {) p' v5 D# j* ?
if( pSkillProp == NULL )
8 W; c1 u; a" e5 [5 n
continue;
1 C0 m3 D5 K6 q5 w5 i, O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( q& M W/ W; u: k" ^, s0 c
continue;
, X, T' _0 u+ k* T( o
lpSkill->dwLevel = 5;
+ v9 v: \8 u/ D' N1 l
}
7 F! H% @/ S5 l
}
/ Z8 K, h! D) G+ ?: ]. C
}
) \* u6 V1 F$ g# x8 }
else if(IsLegendHero())
' N6 Q% m; F* W
{
) k6 Y/ r" `2 _: q0 {* k' l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 `8 w$ q- K7 q8 `! }; \
{
) E$ ?) c! g# J! @: s! D8 W
LPSKILL lpSkill = &(m_aJobSkill
);
/ X$ J: I, d3 ?; L2 c/ L1 { g% S# w
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 W3 T5 ]5 r, g6 X* T
{
* N6 H- A# b3 S0 K# [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ }+ D c' W# t1 j
if( pSkillProp == NULL )
% I% p" N/ E' X- Z* H8 r
continue;
& j5 O z& |8 J: E6 F- u; Z& _& K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% W$ y/ B/ r2 ]$ p R& T
continue;
4 v3 E( N- [; J6 y7 M) N' ?
lpSkill->dwLevel = 5;
7 D7 R& A3 ^1 p" b
}
# ?: q) R) j- A+ J
}
. v/ s. D7 m% O! H& X: l/ [1 K
}
. q. P2 ]* d7 a9 i: C* \/ j
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" ^" Q; ^7 _/ l& w3 S! N3 f6 d
if( bGamma )
; m( I' N2 U% D3 p* `' C+ J
{
0 \' B3 {4 L+ R- T
m_nExp1 = 0;
2 A2 n% ~5 _+ W5 b) i
}
: ~0 H& m6 C4 a; L" k
6 D0 ?- k5 w8 o/ k
( (CUser*)this )->AddSetChangeJob( nJob );
; Y& M% r0 H" s
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 M5 M. W; ]8 F( B" k
4 z6 z6 X( _) l z$ l
( ~' n( J5 ?0 H4 z) b7 z
#if __VER >= 11 // __SYS_PLAYER_DATA
1 J5 M. ~) m0 U! h% c( s- O
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
7 }" x! l, Z/ V% {- l
#else // __SYS_PLAYER_DATA
4 B) Y3 B$ W0 l0 E
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ n2 W+ e/ c8 M# S7 @' R( c
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( |$ O& V( G1 I7 ^0 ]$ ^
if( m_idGuild != 0 )
) F5 \0 t* e+ h/ y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 `! V0 K& S/ Y, U% e
#endif // __SYS_PLAYER_DATA
! K. ]1 n4 ]1 W) t& [5 U
SetHitPoint( GetMaxHitPoint() );
- N4 W& x# `; `6 W- f% _6 y
SetManaPoint( GetMaxManaPoint() );
. t- d# Q+ C$ }: j
SetFatiguePoint( GetMaxFatiguePoint() );
8 ?0 R. K8 |9 _+ w& w# z
if( nJob >= 1 && nJob <= 4 )
- |5 ?/ r, g* w& G. @
{
6 c- X$ D' X( T5 V5 s5 `, R
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' Y$ e6 J. L) J. l& G
m_nRemainGP = 28;
+ `6 B1 L: ^ R e+ u& Q
}
6 L3 \; _- t7 Q7 N( J
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
$ A6 c6 Y' l+ Z I
{
4 O& j/ x K+ M% ?
m_nRemainGP = 118;
2 j2 | E# ?' b+ {3 n; ]1 r
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
! s% n) g* U8 t. c1 ~0 |$ D& `; o
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 K, @$ N! S, A1 S
}
: l- t. {# j0 D) n: g: W
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& r& Q) L4 \* f
{
! z9 g% D: V u; A$ ^2 `: B
CItemElem itemelem;
( Q7 `/ n- O: q2 q9 ^ V
itemelem.m_nItemNum = 1;
8 K3 l% F0 m1 S6 Y, K
itemelem.m_bCharged = TRUE;
% f* A! z' p8 o4 V+ Z3 |
BYTE nID;
7 ^/ Z. _, ]; ?4 ]
6 o0 I, F1 ?$ k
if( nJob == JOB_MENTALIST_HERO )
6 G5 k7 P& k( R$ r: m
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 a, y2 f( w# L) z; N5 n& Q: a; |
if( nJob == JOB_FORCEMASTER_HERO )
3 Z3 R7 n6 \+ \" q0 ]6 s# P
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! A+ [8 a" _9 a; x6 j
; ?6 R& B# n& f+ m( D: P& {. I; b
( ( CUser*)this)->CreateItem( &itemelem, &nID );
; _2 C" m" g& x% C. Y
}
1 } r2 H, e4 s1 l% O/ f+ m
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# `8 `* e6 ~! P: [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( Z# i7 D2 e; ^6 S; n
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: N" E( g& N( Y, p# w3 h" w! ^! ?
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ R( R& x, \. D1 s; a
( (CUser*)this )->AddTaskBar();*/
: ]$ n/ p% r- X
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
b& w) g# |; _2 ]) o. E
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) f% Y7 [! l& G5 h
((CUser*)this)->CheckHonorStat();
/ v; ]$ A5 A( x: F! l& t% z4 @8 F7 w
((CUser*)this)->AddHonorListAck();
/ X# w7 V! R' j' p H, J- Z
g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ q+ H4 I1 Z( m# M
#endif // __HONORABLE_TITLE // ′Tà?
" t, Q+ n v5 t
}
6 L8 i6 \2 K! r7 v' e# ^4 I5 k
#endif // __WORLDSERVER
# g z+ Z3 ~' X+ d: |+ z
}
/ d: J9 |+ u" e! v' N
( M+ n, X6 K# n+ V' a
然后你进入functextcmd.cpp并添加以下
" u; m g# Z% U! h* Q* b
* N; C+ E o+ `
代码:
0 X3 A3 h4 g. K' ]
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ @7 `$ {0 u% r) g) k2 B z1 Y
下面插入
; C1 W4 v5 y! F @
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 Q. O& W# K# D/ ~
Y# P+ z) r0 y5 Z, R8 d3 x
然后你去
5 n: D1 G- a) p) ]3 y
; m5 A6 R' {# E5 a. y
代码:
0 @- r3 g$ `' P: p: ^3 G# z; C0 d
代码
( m; C$ i# c% ~
BOOL TextCmd_ClearPropose( CScanner & s )
- C* G$ p) S/ g0 N- J5 e( b
{
# t0 i, }. w- d8 E; h' h
#ifdef __WORLDSERVER
. }1 f% N/ i2 P' A( _0 U
CUser* pUser = (CUser*)s.dwValue;
3 z* L/ t# _: P1 q9 [2 M
g_dpDBClient.SendClearPropose();
( c. ?+ `7 a2 `7 E, _
#endif // __WORLDSERVER
5 s0 o. i# J" W& n* }7 r0 Q
return TRUE;
3 S. W0 v% p1 N% q; {7 j# p" u7 o3 j
}
6 q* |. p! e$ _3 Z+ u$ b& x
下面插入
* Z* v$ a9 R. w, `5 i8 D5 x
BOOL TextCmd_rebirth( CScanner& scanner )
9 Z: S! D& M7 @1 p
{
' ]5 y8 ~1 i% y4 T9 Y
#ifdef __WORLDSERVER
) f/ V* s' H" g+ { H( }2 l
CUser *pUser;
5 ?" T! k% x1 A7 w$ j# {
pUser = (CUser*)scanner.dwValue;
0 o) Z# `: H" I9 q' c$ D' y4 q; R; h: q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
% R3 w, s9 R' n+ F) Z, n9 P; C D* E
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# Z, `, k t8 E1 ~ B1 G9 J% x4 z! I9 |
else
8 d/ V, B {, r1 S, u$ e
pUser->AddText("你还未达到重生条件!");
, c: J( k; b4 b$ e0 J) p: I
#endif
4 y7 j; I) t; T- w
return TRUE;
$ L/ n) q4 w1 C. g1 M2 T/ K
}
+ @7 g6 l; y# N: S/ F: ]0 `
. p0 @( W8 _2 |! f
" D; F; ] Y2 ~+ H% Y0 ]7 O
( B4 T$ [7 k& S2 s
+ k5 w7 T$ J% U* D- t E/ o H
欢迎光临 飞飞世界论坛 (http://ffwold.com/)
Powered by Discuz! X3.2