飞飞世界论坛
标题:
通过命令重生
[打印本页]
作者:
admin
时间:
2016-1-10 03:42
标题:
通过命令重生
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
- D! a& x% D' a& c. r6 q
3 H% `0 Q0 r( s% a: w( T5 G
Mover.h
) l4 ]! p# m9 ~8 ~1 p- n
代码:
, r" `; o$ U. [! b
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
6 t c3 s) S1 X/ j2 {1 }5 ]. D- L
. z1 _6 L5 ]& Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
* U6 {( ?1 \2 c8 Q" L; P
; f/ [# F% D3 Q5 s0 x# V/ g) V
然后你去mover.cpp添加
% F7 ?% {* S$ E- g3 B% A- j
- S0 D+ ` ] C9 e+ V) q; e1 ?5 B% O
代码:
1 v ?9 t' D: E- A9 g
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
{, l+ D* ^# ?* A7 t
{
' a) f2 k( z5 }* }
#ifdef __WORLDSERVER
9 \; l; T7 [8 @: h3 f9 ]
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
$ b( d* n7 m9 i# g
MoverProp* pProp = GetProp();
# G% N8 \. j5 ?6 o
if( pProp )
4 o. B l6 Y( z3 l* ~6 w
{
B: ~3 Y& E) u) e3 G9 R0 d
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 c% m5 n2 H" o
{
' e6 j K7 ?3 k% g: j6 D
AddChangeJob( nJob );
4 w" x v6 l9 r! P& [( ?
}else{
6 J/ a% R" o9 Q. X6 O4 T
return;
; {* G5 E; w I3 N
}
# @4 `% o$ Y+ b9 ~- ^8 H7 o
int nPoint = 0;
% ~' S+ e: z) Z+ k
if( m_nJob == JOB_MERCENARY )
$ e: a& K+ C! ~0 `
nPoint += 40;
# o( B: e; r2 s8 ]7 c$ u
else if( m_nJob == JOB_ACROBAT )
: T# D3 M6 f4 ]- |3 K) `. A
nPoint += 50;
* W; d) [$ a1 v
else if( m_nJob == JOB_ASSIST )
8 {$ b& y( A9 t
nPoint += 60;
' |* i; ~! Q, q: @! n
else if( m_nJob == JOB_MAGICIAN )
p. r5 g" K, D5 N4 s1 A
nPoint += 90;
8 R) R( a. B( t, q, B+ X
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
p$ b. F( j. k, ~! [
nPoint += 120;
( g1 k O `( G8 e* E
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( c4 U; U) l" c3 X6 \! X- ?6 Y, A
nPoint += 150;
0 u( x/ q' w9 x3 ^
else if( m_nJob == JOB_RINGMASTER )
- `" w- o; J' N# G6 Y0 w
nPoint += 160;
( I/ V2 ^ a6 Z: o: u
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& a5 f: K& o+ n6 o; ]4 k
nPoint += 180;
7 H" L `8 X' J: {/ F+ w
else if( m_nJob == JOB_ELEMENTOR )
/ v3 a% q U6 G. Y6 i
nPoint += 390;
- G m5 |; @( W) C1 E
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 s1 ~5 q" Y- L3 K$ A% J/ J# ~
nPoint += 120;
6 u G- U+ m+ @' i
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
K& K2 @ I# z7 [: ]1 n! y4 X* {8 e
nPoint += 150;
! G" C( c4 }0 d
else if( nJob == JOB_FLORIST_HERO )
, m! w* G# f% \ z$ h! s
nPoint += 160;
, m% d8 Z$ u+ E
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
b0 I- b, \% X# X3 Q/ ^( a& [. S
nPoint += 180;
# ~7 a* @& B* ]& j/ z1 `# \$ w
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 |1 j F% I8 Q
nPoint += 390;
: t4 o% q9 j* x" s
$ c. s% u# M) {) l9 h" c. l8 p' P
AddSkillPoint( nPoint );
$ S1 @# U% _4 R6 L
m_nLevel = nLevel;
1 T$ ^+ r6 p6 u; B5 l1 E1 i
0 x5 @6 x( r8 W6 W
SetJobLevel( nLevel, nJob );
4 f: j8 |" i( K& S6 w
m_nDeathLevel = nLevel;
. a8 m1 z! R# S% g
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 t1 a j" g, c0 r7 S z
if(IsMaster())
- e+ \& K3 G4 z2 |
{
6 p) s# _2 q4 G' E' T
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
P' m' Q" W8 T, U
if( nLevel > 59 && nLevel < 72 )
; [+ C) c6 j# E# v4 S2 r# O
dwTmpSkLevel = 1;
# R/ V) B4 W: [3 ^. H' n9 w
else if( nLevel > 71 && nLevel < 84 )
! U# e* |/ S( t; u
dwTmpSkLevel = 2;
K. `; ~. B, ?* _; w: @" Y. K
else if( nLevel > 83 && nLevel < 96 )
* F4 G8 y+ @- M+ P
dwTmpSkLevel = 3;
! _: B5 s6 }# n# R) Z+ V w) k
else if( nLevel > 95 && nLevel < 108 )
3 ~7 X' Z9 W7 @2 g8 u: X
dwTmpSkLevel = 4;
+ `: [9 E9 K3 ?) A9 ?* q# F
else if( nLevel > 107 && nLevel < 120 )
: ~ Q; a8 |% ~+ S) S
dwTmpSkLevel = 5;
( L: ]; R0 D" T% J4 U
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" s% }; S* X2 ^' ?5 m4 Q. L2 d
{
& S0 s' Z" C# W$ e! K d/ Y
LPSKILL lpSkill = &(m_aJobSkill
);
# h( _/ T& t4 ~ a
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. t3 ]$ h% L6 X5 Q) T0 ~- e
{
8 T' \$ H+ d/ P; Z6 Y7 Z+ D8 D8 m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" ?8 e+ F s. r9 A. j( L( `
if( pSkillProp == NULL )
: j/ O7 O5 j2 P
continue;
6 i# Y( m1 U* r: e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( Q( K. y! M/ r
continue;
5 E, p7 j. O" D: z( E
lpSkill->dwLevel = dwTmpSkLevel;
- W) Z# ?9 U; @6 P. n0 {! F# Y
}
$ Y5 B: ^" @: K7 _5 @" M
}
. U# p. B$ _- M9 R
}
9 Z( d5 h3 A. ~& c6 `. K$ E
else if(IsHero())
3 m. J# S% |5 l
{
1 i3 r: S: |5 l0 B+ w6 V% {" N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ E0 a: v. `6 f" ? i
{
6 l. N' i% I& X0 C
LPSKILL lpSkill = &(m_aJobSkill
);
* L9 Z+ Z* K6 B D+ N9 b
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 E' n f7 [/ Z- `4 E
{
$ q6 u( Z: A# k2 s+ b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, H( p+ T* C6 J+ f
if( pSkillProp == NULL )
3 N5 @7 T* d3 \1 c
continue;
) ~; \7 k- E/ r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* m' T9 q" v6 K5 Q5 W; D) E
continue;
7 H8 |) G5 x6 g4 b! |) Z! S" ?" ]7 |
lpSkill->dwLevel = 5;
4 M. t0 a) Z) b, B+ @8 ?9 k# ~0 z/ B3 _
}
4 e F/ a' k: u5 K/ R B0 l' E
}
5 [- M- b) d5 X. u* A% m+ W
}
6 @$ t9 B& T/ {9 W" F
else if(IsLegendHero())
9 F0 f) p& C- g
{
! ~3 u6 b- n( x$ L5 h; O
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 e9 s, W- P; n9 u
{
: N! y2 w6 k" z; E
LPSKILL lpSkill = &(m_aJobSkill
);
* ~ |+ q3 c( g% ^3 I/ V
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 r/ b0 x' U0 E
{
8 Q& ] l; \% k& ^9 c/ a3 Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% o7 j: O5 b; C4 B
if( pSkillProp == NULL )
% k* e* n* [- T1 T) ~9 R" p" f
continue;
9 N r1 f" ]) b7 x" E% f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- k# e w. R0 q6 C, i! ~6 f
continue;
( B T0 Q: N- E( R
lpSkill->dwLevel = 5;
3 F% J2 {8 h( e' i9 {& s
}
4 a) R$ @! o6 ~) U+ P) g
}
6 @: b1 }' Z( p8 Y; d- e
}
1 R$ a) O E- ~3 m* [3 C0 [! j. k! S: y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) y( O% ]1 [' S4 B+ w, Y2 t
if( bGamma )
* g5 B( j. P6 Y- M5 a6 I5 g
{
- w8 @7 ?: w9 g% w3 a
m_nExp1 = 0;
( h1 y/ P h# H! D2 R
}
. Y6 E& d) k% T. \! a# v
- h' f0 u1 _% }5 s0 H
( (CUser*)this )->AddSetChangeJob( nJob );
0 v2 }" j; Q" X3 c/ w* }
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) C2 e" Y0 H4 ?7 m) U
) s5 E6 ~& X1 W! |+ x f8 O& _
' ~# P9 G5 q7 a# c$ A- e/ b
#if __VER >= 11 // __SYS_PLAYER_DATA
: J" r* E4 \. X5 `0 {5 l2 W
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& l/ h3 b+ f8 n
#else // __SYS_PLAYER_DATA
% g: J4 Y- {8 L6 |3 j" X! J. i
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% j5 \$ }3 A) v' @) |# [. w* N- o
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* Y4 |: B( m; v8 ~3 t
if( m_idGuild != 0 )
* s' k: I$ y1 v' S+ S' O
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& n) l i- p1 K# r0 Z: D; V& g
#endif // __SYS_PLAYER_DATA
- V4 `1 O; ~0 l0 Y6 a- e
SetHitPoint( GetMaxHitPoint() );
9 r0 p9 i$ u' C2 _2 B% L3 ]) T
SetManaPoint( GetMaxManaPoint() );
% Z, l6 Z! k* T+ `$ T J5 l
SetFatiguePoint( GetMaxFatiguePoint() );
1 [5 |% n8 G" G$ h2 j5 ^
if( nJob >= 1 && nJob <= 4 )
- G O: A4 ~( @ ]: Q2 ], S
{
# c3 F. {% e3 y1 z @' e- V+ m" E
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 }' y" m- w, Y) g. C. ~! R" a/ J
m_nRemainGP = 28;
* o1 D. l3 \+ L$ ]0 X/ N+ D7 h q
}
O* p: F- I5 V+ a; C
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' Q/ r8 F( w$ ?. U
{
$ r6 [! G% e" w) k# @& H# B
m_nRemainGP = 118;
4 u, J/ d% N, e
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
) K3 O( r% G4 m2 D7 d1 D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; Y2 B. M d8 T" n5 K
}
2 u( F4 @: e4 n A% R8 R
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! z/ J" S" i$ ~' C* S; a( _# L
{
0 }2 D0 H0 g* g2 O
CItemElem itemelem;
" A) B ~6 h+ N; R3 {! A
itemelem.m_nItemNum = 1;
( e& D' G5 O2 k+ q9 V, h) k
itemelem.m_bCharged = TRUE;
- z4 q! L! J' W2 p+ Z1 x4 i6 a
BYTE nID;
( w5 i; ^, v! J+ P d
5 x" ]% I4 O6 t L; H; W1 p
if( nJob == JOB_MENTALIST_HERO )
/ ?0 E2 c2 r7 h( q: J+ v+ [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( E l' A; `& l6 F" |
if( nJob == JOB_FORCEMASTER_HERO )
7 l" E* k: N6 J
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. L; C( F0 t! S: w( w4 W' J
2 n! }3 K# F& _* A" m8 y# c; B
( ( CUser*)this)->CreateItem( &itemelem, &nID );
. j7 {, R7 t5 m1 N# a+ t+ m
}
8 J% R1 A7 ]1 u: I
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 E. Z! Q$ B! w, q' K9 J9 S
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ ~6 V3 t8 T+ L+ m: c; }
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
0 X4 Q0 p6 I5 Q) @/ T
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; d! M0 Z1 E% V) K2 s% p7 Q
( (CUser*)this )->AddTaskBar();*/
2 K9 B6 `5 [) p# E" X% Z
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
# S& H# G, k7 S9 u+ U6 D* W: n
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
# R% h2 j G& J, x+ f
((CUser*)this)->CheckHonorStat();
0 J3 }( y3 B7 P+ @. {
((CUser*)this)->AddHonorListAck();
6 p) \/ X$ r# Y- S' U, G* o6 } T
g_UserMng.AddHonorTitleChange( this, m_nHonor);
% V. K0 I/ |; ?- e! b. _+ [
#endif // __HONORABLE_TITLE // ′Tà?
* s; v7 n6 V% H
}
. W7 g6 K8 s; g; S/ i9 u
#endif // __WORLDSERVER
2 {/ R2 _* ^ n) S
}
. |. w; I3 {! p3 F, y
& x( ^7 P& a/ k% | L
然后你进入functextcmd.cpp并添加以下
* l$ P1 O' [- o, v
9 j8 c, C$ ^/ D. q' R
代码:
( E/ q4 C; c0 T+ _% \3 ~
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- q# R' U3 y: B/ O* @( O
下面插入
) o1 L# x" b( l! l2 Y4 `
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" [5 D* U$ @ Q; j0 t% a
- H7 d3 d+ y6 S5 r' L6 B7 D
然后你去
# i5 ~: {5 Q0 d: S* T, ^
7 }& a/ [* D K
代码:
( K1 A/ X7 `5 d W1 d4 M- `$ z# t
代码
' q" K' R. X2 E+ R/ {
BOOL TextCmd_ClearPropose( CScanner & s )
}% t( E H" N U, A# n
{
4 P) w0 T0 j3 w! H- ^* ^4 r
#ifdef __WORLDSERVER
# E2 O R8 u7 ?4 v; C- s0 j
CUser* pUser = (CUser*)s.dwValue;
6 T) Y) |( s+ t' Z
g_dpDBClient.SendClearPropose();
?8 U4 y# T$ X
#endif // __WORLDSERVER
5 E: k4 e& J( @( V+ b. f/ ?
return TRUE;
3 R4 [3 w" M& G% X
}
9 ]! p; u0 @# F# g; X q& U' z6 n
下面插入
5 {0 z) g! v: m$ L+ t" g
BOOL TextCmd_rebirth( CScanner& scanner )
- X1 z+ |4 ]9 c2 [
{
5 H8 L# x5 E: U
#ifdef __WORLDSERVER
4 _8 ^, d$ S+ v R, W" ~
CUser *pUser;
0 r8 H9 ]# ]1 L& l) P9 H
pUser = (CUser*)scanner.dwValue;
% z; H) r1 j+ ~2 w6 i
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
; [" ]) s* x5 `* {+ r
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 W+ p/ a2 B; \5 n
else
5 G: q3 K v! |- G& ^9 X7 Y, C
pUser->AddText("你还未达到重生条件!");
8 e @% y9 F. q) a
#endif
, [' u: m! w! F& z
return TRUE;
! p G, J: ~1 p) @# G
}
+ U4 B n% U0 X# B1 |! U+ n
+ P1 l m+ p+ M |' }% t9 B
: I' B( [7 B' c) F4 O0 C
- N- m* f* x% x; f$ S" U: G, Q& j
+ E! M; Z" z+ ] X
欢迎光临 飞飞世界论坛 (http://www.ffwold.com/)
Powered by Discuz! X3.2