飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! p, b& W' a# a! {2 n- Z# Q! q
& F6 \- ]5 M+ t8 \0 y3 w" J
Mover.h
' N+ ~ l/ i+ l" F
代码:
% ^, s) {/ I* h; [
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
& w0 d9 o: b9 P/ D% E) U/ a! m6 ^
* F7 W+ V9 l ]
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 l' L+ u+ L4 B/ V0 u, G
" W7 S1 |: J. _% s7 D
然后你去mover.cpp添加
- h0 F+ G7 N: S
/ z' n6 g+ p% T: q
代码:
! X6 }% p. j, z+ O6 G: y5 @5 a
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
V. M/ K- j! L& M. L
{
* w% M+ p, v |3 o2 }
#ifdef __WORLDSERVER
/ p& t+ v( K9 V: J& E0 H9 {* i
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 G- q/ c: f# F5 w) u, g( k% G
MoverProp* pProp = GetProp();
6 I% Z, w' ]2 ?) [
if( pProp )
$ v8 v" @% L. b; i6 l0 b
{
7 ?) G" ]& q3 \+ Q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) Q8 N7 f5 N0 h- r2 a2 e
{
0 [, |& W: H$ W, h0 f9 ~2 j2 f
AddChangeJob( nJob );
" {# [# m( \1 q8 G0 u
}else{
6 t/ H9 O( ~1 g: i3 {1 E: _/ z
return;
3 T; y3 n) ?* Q
}
9 S. {! }) U2 x* R+ G4 B
int nPoint = 0;
: x, t1 ^, B @# f% I
if( m_nJob == JOB_MERCENARY )
( H& h+ J& T$ }1 ~5 O- V9 C
nPoint += 40;
! H0 O; H: ]& g
else if( m_nJob == JOB_ACROBAT )
) f6 d2 g* h2 x, J
nPoint += 50;
9 X9 ~, `" i3 H) ]8 [) m
else if( m_nJob == JOB_ASSIST )
% o$ k+ g& e ^9 O3 w( X
nPoint += 60;
! [2 ~# X5 [$ Y% O
else if( m_nJob == JOB_MAGICIAN )
6 W/ S: O. O' G: w7 w- p' z& }( \
nPoint += 90;
6 l/ G+ D% H" d0 `0 `
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 s0 G% ~5 b. N. @5 q( I3 Q/ L/ [
nPoint += 120;
, Z' W0 S8 D, Q( _* Y
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 x( I: ^$ _; T1 v. j$ S+ I
nPoint += 150;
8 N3 x. K1 c" {& t0 g2 Q; D
else if( m_nJob == JOB_RINGMASTER )
% K- u# e2 H7 S% G; `$ O+ i
nPoint += 160;
2 G" J4 c) z) g( f: G7 Y u
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ \+ ~8 m: b; c2 Q5 |* p! W' s
nPoint += 180;
7 v7 ?* A" x( l! b- q! D9 E' D
else if( m_nJob == JOB_ELEMENTOR )
/ U! @; U9 C6 I5 D$ S4 n) _
nPoint += 390;
. r, E. _" i7 ~+ i" P
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 {4 B) y4 H8 E8 ]9 l; r
nPoint += 120;
2 d$ e- g. e5 A. e! T- w8 B
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
8 b* \: q2 ^. N( z. q! I; ^
nPoint += 150;
M- ^3 ]( H9 O( I' L" o1 d4 ]
else if( nJob == JOB_FLORIST_HERO )
' x( t5 @; W2 {( o
nPoint += 160;
! z% W, o0 X! Y! x8 M6 p2 f/ B
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; n( q1 T# h1 B. z
nPoint += 180;
/ v5 r6 x7 ~1 f7 r
else if( nJob == JOB_ELEMENTORLORD_HERO )
+ P! Z, x3 D! \+ A# O$ W+ f
nPoint += 390;
9 x- d6 x9 i+ ^
! G6 d. U+ H' l, D: ^( t( x
AddSkillPoint( nPoint );
5 A* T: E5 l5 c
m_nLevel = nLevel;
( `: ]/ O6 j- B9 b7 N9 t
* c, P2 i: C# e& T Q' K. e2 H2 H
SetJobLevel( nLevel, nJob );
1 w% k1 k$ I! K6 ~
m_nDeathLevel = nLevel;
1 j2 X8 z V+ c# [. ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
d/ s4 Q% ?7 A+ B; A
if(IsMaster())
$ J& I4 l% F; H' ?9 q- w' I9 Y/ N8 t# k
{
$ E7 H3 s$ J4 U! H3 n7 j5 W
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! y* x ]$ f$ w% J# I
if( nLevel > 59 && nLevel < 72 )
( [) O1 u9 M2 M& L: ]4 t
dwTmpSkLevel = 1;
5 A# n5 o+ c7 v" n3 Q
else if( nLevel > 71 && nLevel < 84 )
% ~" U3 O% \2 g" H8 x
dwTmpSkLevel = 2;
4 C; [- z4 W7 M1 M; n
else if( nLevel > 83 && nLevel < 96 )
# S: o1 j+ e/ X0 V! r
dwTmpSkLevel = 3;
- H1 m( `- z3 r9 h7 t) |4 l
else if( nLevel > 95 && nLevel < 108 )
, |1 O" _/ |* |2 E6 I* J! Z/ k0 i
dwTmpSkLevel = 4;
9 G8 U( M) o& K8 \5 J2 L! H" s
else if( nLevel > 107 && nLevel < 120 )
. k7 s! o+ p0 w8 G8 p. J
dwTmpSkLevel = 5;
7 ^/ K% a# r- u( d# u3 L
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, N0 n; v, G0 i5 V2 K
{
, q, A* r' Z) B y8 `% _* b/ Y
LPSKILL lpSkill = &(m_aJobSkill
);
& C9 L g; Z5 p; ^5 \. A4 `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. O; o& i- f1 d( Y/ R$ E
{
; q# Z) {0 w3 d& _4 R c* N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ @& Q) n7 q7 B1 w8 ~; \. {# i
if( pSkillProp == NULL )
: Z! L, ?( q, k" y
continue;
$ H4 w3 a" g& y/ r: n# D1 F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 l9 U2 F4 [7 V% O) K7 i( M$ i+ j
continue;
% n- L3 X9 u' _* r
lpSkill->dwLevel = dwTmpSkLevel;
S1 w4 @% d, |2 Z6 f, Q
}
7 C8 B# J l# W, L% {$ @3 ~
}
: K2 P4 c% C& j7 w
}
, v) T# X& Z5 X5 |9 \1 _" `+ Y
else if(IsHero())
$ J% R) _& e! E+ u$ I+ R6 Z k- O
{
5 G, t: N {6 o# M6 D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# Y3 X; D A" V. Q
{
7 F) h7 V( v% R2 i, J
LPSKILL lpSkill = &(m_aJobSkill
);
5 i# P9 Y6 i3 D$ o
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 o, z- \, @% }" \; Q
{
' }8 D2 I0 V' h. x7 k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; `3 G6 G; m- Z @1 r9 g
if( pSkillProp == NULL )
! ~/ j; T8 i ^5 @) p1 G
continue;
- R6 ?- S4 z1 X7 K' T# p) u) j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 A# E4 N3 z2 ^6 {! t0 N
continue;
. g' q' V* o3 k4 U
lpSkill->dwLevel = 5;
' m: |6 m# y6 t; @9 R h
}
# h7 j9 s/ s8 C0 t6 h3 p
}
, n+ s& l5 [! N$ _0 i
}
& d7 U' u5 {$ k5 J/ S1 [' M
else if(IsLegendHero())
3 @' h+ k" d9 X: B2 N0 @4 G# u- [3 m. Y
{
- E% m, a+ C; o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 ~ Z$ r7 ^) I/ a0 B% O0 g. o
{
7 c$ T d9 O8 j0 {) G/ ~
LPSKILL lpSkill = &(m_aJobSkill
);
; c( p x/ Y2 p& B) A
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% b q' u7 _, x$ R; B4 r1 }& x
{
8 n$ f9 e2 O9 ]9 y& z. j1 h+ K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 R* R G, _( d, w
if( pSkillProp == NULL )
k" k4 ?5 G( `% u
continue;
! H; y; \# U& S9 i4 C/ H6 O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 u4 b- m( q& @% h) q7 x8 K
continue;
3 R1 u2 X- [4 ~$ W5 E7 a
lpSkill->dwLevel = 5;
9 ?4 C7 V& {" e5 W' [
}
' S+ N$ X. N9 y t3 J3 u# p1 v
}
9 V- i& R0 C* E. r- q
}
2 ?6 {! v7 J b& g# K% {8 `
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( p' J7 s( J+ L
if( bGamma )
$ r! m& e! t3 y7 |' ?
{
1 s* {' y+ [4 ?# w$ m% |. [
m_nExp1 = 0;
, J' P5 E( j: y3 |) g8 _
}
. x& e5 r! k: i4 H0 G* r( F1 L
' t. q n8 j/ j
( (CUser*)this )->AddSetChangeJob( nJob );
+ G1 u/ U& E# Y- u/ q
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 h" X/ ?" U2 A1 E! g2 o
1 O8 v/ i/ a" @- i% E2 f& N( S4 ~
$ d! m3 m' u9 q3 V
#if __VER >= 11 // __SYS_PLAYER_DATA
, U) l0 F8 y+ U5 R1 S3 b- B6 N, L
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( p% i& ?8 }$ `
#else // __SYS_PLAYER_DATA
3 D" t7 i+ J* K4 b
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 Z! T, F# p$ @# ]% Q' L* [1 K
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, S" R3 h' U4 Z+ ]$ e" h
if( m_idGuild != 0 )
% }6 h* Y x1 U
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
! i& l3 l3 b, ?
#endif // __SYS_PLAYER_DATA
! Q6 P7 V$ t3 A/ |
SetHitPoint( GetMaxHitPoint() );
3 x* _3 p2 o' u; n6 B
SetManaPoint( GetMaxManaPoint() );
6 Q/ [6 _% T h! b/ Y' I# \
SetFatiguePoint( GetMaxFatiguePoint() );
2 E& j) c4 u2 j6 `! G9 ~4 d
if( nJob >= 1 && nJob <= 4 )
8 G2 s; l1 `3 r% @
{
5 m- w* K# n* O- Y7 d
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 A( d1 H1 V' u
m_nRemainGP = 28;
1 Z/ Z) k2 }* x) v. K
}
6 c y8 V7 s; f5 s0 t
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
+ q# @6 y& {! h, S) V. o
{
|1 [6 d3 }# L2 z/ k
m_nRemainGP = 118;
6 g& Y8 r& R9 R' F( E
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 ~0 {/ D8 M' {; C/ {
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 v- J" i" t% H5 g
}
& z' T# v- w' a# Q) K! ]/ B
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" \4 Q$ R3 L0 j; N
{
$ \1 Z: O! q5 b- _) x' ~
CItemElem itemelem;
) g! ^1 v0 k- f0 ?& ]9 \2 f4 X
itemelem.m_nItemNum = 1;
5 Q7 W( X4 ?, `( Q& w
itemelem.m_bCharged = TRUE;
8 d8 G" g; D8 R) o$ U8 E# U
BYTE nID;
& s6 o& ]: |3 a/ J* U6 ~$ [% D$ q
6 j1 q1 Q1 U) N) _/ x" v
if( nJob == JOB_MENTALIST_HERO )
/ L7 g" A/ v( I0 |! m( V' U* Y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ A$ G1 s+ k5 n3 E g9 J- x3 g* a* ^
if( nJob == JOB_FORCEMASTER_HERO )
( B' U9 @( t$ d
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; i# e4 w4 h: L2 n; S; j
9 g5 X# L, \. q: O, W
( ( CUser*)this)->CreateItem( &itemelem, &nID );
& d* x f+ c1 u: Y; X; s' {: h
}
2 V: i; b6 R8 ^: ? ~0 a* Z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 a) \" j! C, |4 i) u) p
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
$ Q0 g) M5 }" J5 c& h8 \0 n
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
; G% f9 U U* E6 G
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: Q) h& m* R* M1 `! T: w# k
( (CUser*)this )->AddTaskBar();*/
2 U4 X* J- b6 T4 b Y
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 E6 y+ f) S' K, ?
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" B' `. W3 {9 a: p) X
((CUser*)this)->CheckHonorStat();
& G* m9 F& J7 k |
((CUser*)this)->AddHonorListAck();
$ t$ I% S: E! F$ u- [6 l
g_UserMng.AddHonorTitleChange( this, m_nHonor);
_" R& ~+ a8 Z# Z8 {) K) y* }# H% ^: @
#endif // __HONORABLE_TITLE // ′Tà?
4 t! s% W/ p9 L3 h2 l* O
}
- h% S6 g1 n# L# ]; c
#endif // __WORLDSERVER
8 j1 @# J1 b, j9 d" M. f' z1 ?3 r& ^
}
+ V, E" i) r$ @# `% e I- H8 U
4 J; c, v) @( O+ q6 \; u! m
然后你进入functextcmd.cpp并添加以下
* ]6 J* c2 p8 e, D2 U; e" L
G1 B, }, q3 u1 C% P4 ~% x
代码:
1 C5 h/ w% r, V$ h
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ P0 [! B* O. L2 t. V7 G
下面插入
5 `, l) a7 j0 t- |
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ b+ w# F; j, I8 z2 c
1 T* l/ H1 w; M. p" \2 O- @2 _3 |
然后你去
. U* Y4 |5 u! `# A; q
' W" F t1 w4 H' H Z2 R' Y7 q7 M5 V
代码:
. Q |7 r) v0 l& [
代码
5 o8 @& ]1 q( d! f+ h/ Y j" N
BOOL TextCmd_ClearPropose( CScanner & s )
& J% j4 d& a7 z" e& @, t
{
, O$ B/ R$ Y2 p1 ~
#ifdef __WORLDSERVER
, a% i# r9 N( I/ q" t/ O
CUser* pUser = (CUser*)s.dwValue;
$ p$ X: |6 E* F* u; C8 D
g_dpDBClient.SendClearPropose();
% O$ |; Q+ I+ H9 |- E7 q1 k
#endif // __WORLDSERVER
: n) ^* A4 q c1 S$ t, w0 ?
return TRUE;
4 t" p) T* {) V1 o1 T/ k! ^/ o
}
0 F- |, z+ B0 b
下面插入
N, W# \: B2 k. F; Q9 B0 P; E- {
BOOL TextCmd_rebirth( CScanner& scanner )
}4 w b1 Z7 {- f
{
! J: V1 X7 D/ q3 q- N1 `+ |* m4 c
#ifdef __WORLDSERVER
. c' U8 t% W0 q! t$ d0 Q* Q ~( v
CUser *pUser;
! M5 E6 A' q1 d8 D+ i/ Q2 |6 w
pUser = (CUser*)scanner.dwValue;
Z$ h$ E9 }# W
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& J' a* c% `0 o& l
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 {4 G) i/ f) R% m
else
! t& z& p. x9 |) Y
pUser->AddText("你还未达到重生条件!");
; \$ R. H1 X# ~( }$ C7 O5 a
#endif
# \" b& H4 _, J4 p5 ?, W
return TRUE;
# V7 Z/ D- L7 p4 r |: I! I
}
, ]- C) f9 \4 I9 G. R3 [$ v8 w/ r) U
) ~: ?% A' w, N8 O( T2 b
2 X& I3 d% Q' w) V
! ^+ W! ~1 F; j9 ~
2 U" B' k* v- N
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2