|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
& U" P8 p' s0 U, b5 ?$ d3 h; S1 k0 G8 {- b+ A6 J5 v: S9 @
Mover.h
( W0 N7 H( `5 ]# r代码:
% F8 K5 L/ |+ W" [: L' I: U- H N* o找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ ]8 O! h% ^- J! X" D% |9 L4 W/ L: P
1 C- Y, y+ T& }: a* o% M& k7 W6 a下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# ~* E) i) t1 r/ f/ B( o7 j' z! I. C0 m2 M3 n
然后你去mover.cpp添加: K/ ]: N" f4 k( x$ f: U, ?4 F
& K& }8 c1 z! W- x! w6 p
代码: b# `, ~1 y1 U3 H
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 Z" I% Z" V g0 A4 y2 p3 `! y{9 d/ b, K" F0 C Z& Q. n
#ifdef __WORLDSERVER$ D4 G6 e: ?: p! a& y! _' m3 c
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: n* a9 t! Y' k! W6 ?6 q, S
MoverProp* pProp = GetProp();/ |' g2 a! J3 f
if( pProp )$ M( o8 G1 b7 x
{8 V7 g+ m& e$ A. i5 i
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! j% f$ m- t# r) G. t* { {" Y: S& i* U: z$ P0 {9 K# Y% L# H
AddChangeJob( nJob );
: N# G2 ^9 H6 j" b6 p }else{
+ b, \: j( D! E7 f8 {( n return;5 h3 B6 Z4 w% W9 ? V) }0 |: n& t
}
* ~) g/ E6 q8 Q( m& ^% s: c int nPoint = 0;
* p+ }) I, v- z' Q if( m_nJob == JOB_MERCENARY )1 m& ?9 l H$ v7 ?+ d0 f
nPoint += 40;
- }+ R$ X6 B! M else if( m_nJob == JOB_ACROBAT )! Q' v! G& ], x( |3 J' O0 J
nPoint += 50;: j* t4 z- N8 O4 X( s& X, J0 r+ ]
else if( m_nJob == JOB_ASSIST )9 T# Q1 I G3 V$ x- w
nPoint += 60;; `! F- J1 E9 _( t
else if( m_nJob == JOB_MAGICIAN )0 l: e! Z) u# z0 [3 ^. G" I' E
nPoint += 90;
4 p& V1 q+ `% n* d else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ U* L0 ^* n; g2 j" b nPoint += 120;* S* {4 z# o7 _* A* p. `" u, l4 W
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )6 o2 |" n. T: }9 o3 ^
nPoint += 150;
8 Z1 O$ S/ C. l y: s6 L* L else if( m_nJob == JOB_RINGMASTER ); x$ [7 s" D7 S+ b, K
nPoint += 160;5 A& r' V1 M2 T5 W3 ]$ y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; Y5 y$ i" C! H) O2 [' W nPoint += 180;$ }5 t2 _# w$ @9 f# m
else if( m_nJob == JOB_ELEMENTOR )# d4 r& q: G# ?/ s; e9 N
nPoint += 390;* x& _6 V7 c2 z- t( A0 d* _
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
, M: Y; b, o2 ~9 r' j9 q+ u; ~2 n- S. Q nPoint += 120;
$ W7 p& Y( V+ c" p else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )! `2 E" i9 T# S6 a( {; B
nPoint += 150;
/ c8 \1 l( G# ?, R. S6 i else if( nJob == JOB_FLORIST_HERO )8 K9 s$ j3 d) p# p8 u7 |
nPoint += 160;
0 f. m% a- {- m# L d9 F# c& d else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )- \# ~6 ]; G6 Z, m+ d& O
nPoint += 180;
- j4 H4 f0 Z" w9 M; Y3 W else if( nJob == JOB_ELEMENTORLORD_HERO )
; z4 e! v! Y: H nPoint += 390;
3 s- N6 C- ]% q) ]4 ^
# I4 |" _1 X9 q, ~3 A$ T+ B AddSkillPoint( nPoint );
9 g% z+ r1 \3 _ m_nLevel = nLevel;& N# m+ ^& u `
6 `* D" `# M+ V: S
SetJobLevel( nLevel, nJob );
* D1 g/ I: x( Z% b m_nDeathLevel = nLevel;
S3 {$ _4 E& _6 n* E; G#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 M5 ?- J- f/ n% V/ I) T4 K
if(IsMaster())9 T4 Z7 a4 Z5 [
{8 ~! J e: x1 Y8 j% \; |
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
' ~5 ?1 {) ^. Z5 }6 o# x. `: J if( nLevel > 59 && nLevel < 72 )
; e6 p) F- ^0 x3 j X$ e5 m0 Y; f* o5 D dwTmpSkLevel = 1;: t% ^" O0 I( g. g& r% Y8 e
else if( nLevel > 71 && nLevel < 84 )
4 _6 g4 r% O6 b4 t* L dwTmpSkLevel = 2;
}7 j5 Z7 i: a# d8 k' N else if( nLevel > 83 && nLevel < 96 )
5 T6 J) L) c$ w H1 B dwTmpSkLevel = 3;3 ]6 w- _, p. I7 h
else if( nLevel > 95 && nLevel < 108 )
! H5 K) t: A6 `$ t dwTmpSkLevel = 4;, C( g8 A2 L9 Z. J
else if( nLevel > 107 && nLevel < 120 )4 V9 ^$ H9 v; [5 T# C; P; b4 t' Q2 h5 h4 ?
dwTmpSkLevel = 5;9 }2 O0 ?- \5 ^( H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ j3 ?- L+ K# x { / n1 O k$ D: w/ D5 k
LPSKILL lpSkill = &(m_aJobSkill);7 J9 u; m8 S9 o- j
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 {6 A) C8 e. v6 Y- C# }
{. N+ j- t' u. a2 `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * I# @' x7 C3 K8 {9 d" w- u' m+ D- ]
if( pSkillProp == NULL ), `0 d& ~/ X4 ~) H& ]
continue;
" A0 C' v7 b( Y: A% D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ ?) C9 \, t- q# p: r
continue;
+ }. T6 K) r' g# J7 e2 Q" Z lpSkill->dwLevel = dwTmpSkLevel;+ @2 D: f! S- I# Z! y8 w
}* n' j" e3 T% Z7 \- {( @
}$ j1 F! I) I( V! I7 L" F& [) S' G
}
8 q% `- o+ e7 o$ L% E L: ` else if(IsHero())7 a# ~9 }2 p) c( y. B, R3 ]
{
0 S* P L5 h5 c) E for( int i = 0; i < MAX_SKILL_JOB; i++ ) / t! z7 k' F0 e5 e
{
t# I. E2 I. h, ]( m! h& V& H LPSKILL lpSkill = &(m_aJobSkill);
5 |7 x& D) j+ I- I if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 F, W5 z1 t* F9 m {; a, c/ @2 A7 x9 ?8 t6 q; g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; R: A3 C. e/ d) K M$ C8 e, o if( pSkillProp == NULL )$ ? Y9 w: \' ^ ]' m8 L, O6 k
continue;" ^! _9 S" E3 N1 }. r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" F- u- R& ^: a/ }' d2 T4 n; E
continue;
+ J, s8 S( d4 V/ l$ }4 f( i2 H% B lpSkill->dwLevel = 5;
* t+ i2 J4 U- ~9 O }8 ^% S& G- v5 n9 ~7 k( X
}
y- |+ d3 T" h }( P1 `/ B/ {; Z& {) x8 X5 E$ [
else if(IsLegendHero())
3 y2 @6 P' k' V8 O# I% b {; w8 i& z! b& l) k2 j0 A+ `
for( int i = 0; i < MAX_SKILL_JOB; i++ ) i }. y1 @2 E. w
{ 2 ]+ R3 ~1 f' _- |. G
LPSKILL lpSkill = &(m_aJobSkill);
; g$ t H/ T/ ?( U* U if( lpSkill && lpSkill->dwSkill != NULL_ID )9 d8 O; C0 a# A$ N; z4 B# h$ b
{* B! J. M$ w7 @6 i- O$ ] D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 X5 U: e c4 C" {. F( @4 _ if( pSkillProp == NULL )1 n! @& I2 a E" J0 `
continue;) o- o: ]% f6 J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; u) w7 {3 H' O6 ?$ u* P/ Z; k continue;6 }0 F& D9 f- ~/ a
lpSkill->dwLevel = 5;
, B/ T( o; M5 F3 {2 y }
2 z/ \$ {9 W& P9 n }! |4 d2 O7 m R, D: ]) p' `
}
7 ~5 p0 f) r {% x V#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 C8 j, H$ R8 g- ^8 n
if( bGamma )- B( D% D$ s2 ?3 G
{2 X8 \1 h4 z4 f9 m2 R, c
m_nExp1 = 0;& s( L3 g1 y1 L' b$ G3 e7 w
}
{, Z5 i5 w4 s s3 @* S5 K, p$ n( |$ _, Z% [
( (CUser*)this )->AddSetChangeJob( nJob );
: ~* H" q% F5 k) \7 s" }2 {0 X) l g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) w# w& M) t2 A/ A
: y$ \' S/ N I4 ^/ h$ g0 H) b1 C" Y! b6 ]& }
#if __VER >= 11 // __SYS_PLAYER_DATA' b6 c1 {5 ^: U% \1 O" I
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' }/ `, i9 o. U# C+ N: G$ m2 f6 H4 O+ {
#else // __SYS_PLAYER_DATA
6 m7 F" V6 z8 r5 N( K+ | g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
! ?1 @8 O- m% P g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 w' d6 o2 I' @; Y+ D, s if( m_idGuild != 0 )2 I9 q3 |% |+ Y, I/ P% k+ p' g
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ ?3 i1 Z' L5 P2 _#endif // __SYS_PLAYER_DATA# I$ G/ m9 Q" b) f5 V
SetHitPoint( GetMaxHitPoint() );
! {2 H$ ~2 {0 J ~, p SetManaPoint( GetMaxManaPoint() );
/ f" ?" K3 n$ M) w SetFatiguePoint( GetMaxFatiguePoint() );
7 B2 c, x' k. C# x5 Z if( nJob >= 1 && nJob <= 4 )8 ?2 c+ b/ P; B, i1 `% C/ U
{% f( H" W9 ~8 y5 T5 {8 m2 L
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 [) w8 ?" V s' d- g m_nRemainGP = 28;
- K; h" F* |( X }
- \- Z s h9 y4 G if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 ]8 a, C) k& A8 b8 h {
3 F) ^' d# L3 U, m. P$ i H m_nRemainGP = 118;' Z! v/ G' u* J
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 Z. K0 P0 M+ a# |$ }
m_nStr = m_nSta = m_nDex = m_nInt = 15;
" Q/ b) x3 ?, n l% y! f }& q: E* q# f6 r* j" V! @1 a
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )+ C0 c0 }& n- N; _$ ^
{
: _) A b2 u- M* `& j CItemElem itemelem;
3 q |. D4 X t. h# p3 U itemelem.m_nItemNum = 1;
5 |, f4 V' Y: A& U( X itemelem.m_bCharged = TRUE;
* H3 w5 `$ n0 q) r$ ? BYTE nID;
# c! b9 l0 X) V8 a- I+ d5 @ M* l8 \; T
if( nJob == JOB_MENTALIST_HERO )( S3 i: [, o6 | a8 p6 `2 ^$ B
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, E4 t% }* N0 \0 Z' l. t. \7 h
if( nJob == JOB_FORCEMASTER_HERO )
; Q! ?0 ]0 G" ~2 J7 ~! C; W" o# Y8 i itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
$ U7 y" z8 Z ^
2 D% e' e# L6 _: } ( ( CUser*)this)->CreateItem( &itemelem, &nID );
, @: `) U- d, N }
: K* Y! o7 a8 D. K! o g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& Z9 p) T- G8 o, K; n. @ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- i2 x7 v* f5 _2 C- _) F9 W" ? ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );" ]( h6 i) Q3 r; r
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# O( b& g+ m+ B! C R7 y( l
( (CUser*)this )->AddTaskBar();*/# k& [6 \8 ^5 Z2 M8 j c
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
7 Z- f+ ~" K6 k" f8 C#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
i( c5 s5 V8 u ((CUser*)this)->CheckHonorStat();. C. r7 u: v# v! S. I1 }% Y( ~6 h
((CUser*)this)->AddHonorListAck();5 W% D2 z3 r& w
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& x( x) _, _2 v) e9 P& {) p#endif // __HONORABLE_TITLE // ′Tà?
3 s/ D5 I; l# c. O2 F6 c! l _7 ?" I }3 L9 }. y- `: i& t% D; o
#endif // __WORLDSERVER
5 O. U. n3 S8 W9 G4 v2 P& H}
& o5 y* p& w% Y5 \1 ^) i
$ Q2 ]5 ~. `0 X: r然后你进入functextcmd.cpp并添加以下
9 L$ j% @; W. E+ V2 \! J
8 A/ d* D+ Y& I3 e# S% f/ X7 r代码:
: r( M5 D/ x# L7 e3 bON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
) P: b i2 a. ?8 E6 l! [. D下面插入, q& _! v. h5 {5 ~
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ P6 t+ a4 m: E% G% \1 _; l+ m% A0 W' k+ @; s( w1 r/ W4 I# M
然后你去4 F1 t4 I6 c. _* U- P/ \# g
' i( r2 w' y! o3 T, M7 C代码:8 K/ I) g0 V/ \9 l. N: P l, w4 l
代码6 B& }# l9 _$ E4 j# `
BOOL TextCmd_ClearPropose( CScanner & s )( I: N9 N6 {+ r. K
{6 D0 |7 G4 g$ S* t- X
#ifdef __WORLDSERVER, ]3 B# x) O- G, [' Q, _9 z
CUser* pUser = (CUser*)s.dwValue;
2 z2 f* L) H" r) `+ Y4 o5 U g_dpDBClient.SendClearPropose();
* t* v, V% b9 U5 I& c& s5 e#endif // __WORLDSERVER
, }9 K+ R% z+ }& ?6 v* W return TRUE;: L* |3 i/ P1 q7 z0 {) C
}* a. u8 ], u! D( |+ v
下面插入
9 h9 z+ e5 P2 V2 r5 Z6 y6 BBOOL TextCmd_rebirth( CScanner& scanner )
- }5 G9 V6 l0 W: C6 f7 Y, `$ t{" q( C) F7 Y3 f! G/ R! I, j
#ifdef __WORLDSERVER
( h8 K7 z" h8 B( SCUser *pUser;
8 B h; r3 b5 T7 j$ `1 |pUser = (CUser*)scanner.dwValue;+ G% P$ |0 }& N6 I3 O
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- d; ?0 h$ X) _' m+ x9 IpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);' r* o- n% ^0 u4 y: _$ g
else
- \' m- H/ x& o% L0 e7 ZpUser->AddText("你还未达到重生条件!");5 x3 Q. B- G5 h) n' Y" E
#endif
5 P" X# t; v8 B/ U) ^return TRUE;) g. g5 o& [1 v3 V1 _3 r6 W$ C0 M
} + |- M; Y, x; {
5 l P) X8 R, A3 f
4 n, Y, c: I+ f" g* ~
! w8 u! ^5 w" l6 U% X) @
0 J; N, ^+ f4 o5 E1 y/ K' [" i1 A |
|