|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' I! Y, @, K' K. y% Z
4 c/ J: S4 J6 A3 [/ [8 H7 g5 a
Mover.h
# I3 {) p" C* F代码:7 S1 S9 X) S- o _! X% E2 X# L4 y! z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' b- I6 f" c2 Y: d. B
4 ~2 n7 C- p. V, k下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
h# a9 P D( c. {/ m% P6 c0 A4 c8 j- U$ f; j/ { q: q1 y- }
然后你去mover.cpp添加
9 O* \! d/ }# o3 }; L. P. G4 W, H4 Y! |3 ~ U1 g7 s, K
代码:# v3 ~8 M9 ^9 h' D' s) z7 O- e! @
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- T7 J% I+ A& Q. B2 {. C+ a9 {, l0 ` Z{
& c0 R& s2 S& V, x7 [6 u3 ?' w#ifdef __WORLDSERVER
0 T2 \" t1 D$ G$ B* c& n // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
l3 ^4 R- _6 \& Z8 _; ] MoverProp* pProp = GetProp();3 G- n# b3 V$ A
if( pProp )# `6 ~ H2 x2 A' Q0 `9 O- _
{
@+ ^$ a, _7 K, h1 d if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; K! ?; [2 t2 d {/ c v6 Q! [6 S9 L
AddChangeJob( nJob );7 M; z- v0 f7 k
}else{
* R, n) n" Q+ z/ i) T return;
" I! d+ B$ Q) M }
' o p' v0 O2 c; s3 B+ {* v* s4 g x int nPoint = 0;
4 W8 D. o& A8 M: j P if( m_nJob == JOB_MERCENARY )
. _+ f: C' E9 J9 H nPoint += 40;
0 P8 g3 D5 o8 w9 q4 ^5 E. o else if( m_nJob == JOB_ACROBAT )' n& T( M; a2 ^* H) w" A+ ?
nPoint += 50;
) A& o; x- E: Y) u9 t% N! _ else if( m_nJob == JOB_ASSIST )- Q$ d) ~" K2 f& W5 ?5 t
nPoint += 60;3 t" a! [# X/ T& Q
else if( m_nJob == JOB_MAGICIAN )( j5 L V; m: R0 r* Y" f B
nPoint += 90;
4 W: b0 v. ?0 v" M5 @, Q else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )" {4 N5 G, M0 k
nPoint += 120;4 d0 \$ G! O3 y$ c6 ]
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
- f7 J- H$ t# @ nPoint += 150;
5 A( E1 R. Q1 c G2 C. V5 a- ^ else if( m_nJob == JOB_RINGMASTER )
2 u, j2 b3 v5 o# P- ^# [( N( [5 S nPoint += 160;
* z+ ^ @% ^$ {3 V' |' [ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 F0 @8 G+ t' H; P0 t nPoint += 180; V7 C4 i' e! |9 Q7 Y
else if( m_nJob == JOB_ELEMENTOR )2 R+ k% b( ^3 J2 }" _: F" ?6 Z
nPoint += 390;
7 ^' t/ v; W$ D+ M0 @9 u else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 G! `. ] ~1 H nPoint += 120;
U ]& {- x% w5 L8 a else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); B7 D1 [3 C5 X# U' C3 j
nPoint += 150; A( V/ l1 F S. {
else if( nJob == JOB_FLORIST_HERO )- C$ O9 b( @( t, }4 l- f
nPoint += 160;
) N# _. _- S5 Q else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). x8 Z% @% r Q$ Z T
nPoint += 180;8 f* U, A- Q3 I0 b9 G8 M w. f
else if( nJob == JOB_ELEMENTORLORD_HERO )
J! @1 Q7 Y* O7 O9 r- g nPoint += 390;1 N/ G1 G( I, {' x
+ w2 C, |9 D3 _+ [$ S% l AddSkillPoint( nPoint );9 M- R% Q1 l! B# D
m_nLevel = nLevel;! Y# q% v* u8 |7 e6 p# s! {
; N5 |) S% f8 Q SetJobLevel( nLevel, nJob );0 t+ ^6 f+ p$ a- l' ^2 V. y* z. i! \
m_nDeathLevel = nLevel;
& K" T$ a" r$ o6 [# e, P#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; }" Z! N! U" ~( D# c. e2 I0 i4 n* n
if(IsMaster())( s P J, Q0 F& n
{* ~: ]2 B5 R( {7 e* }6 m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) M$ w9 d( B6 @% Y% O4 ]5 W% D6 Q if( nLevel > 59 && nLevel < 72 )
W% t- a9 d* @3 G0 l8 | dwTmpSkLevel = 1;
1 g0 K1 G; a+ K& g4 e* } else if( nLevel > 71 && nLevel < 84 )" A8 k5 i" X1 T/ n6 B, }/ M
dwTmpSkLevel = 2;$ i9 ?3 B0 G* P) G) `
else if( nLevel > 83 && nLevel < 96 )
/ d8 j4 H% z2 [' X0 {) D4 K4 _/ X4 e0 Q6 M dwTmpSkLevel = 3;
$ i, W* e0 h( s x- w) T7 G else if( nLevel > 95 && nLevel < 108 )& U0 u0 B# i- \( J4 e: I0 I! L% Q2 W6 z
dwTmpSkLevel = 4; h2 u: S7 @/ z, E( s0 F8 b. z
else if( nLevel > 107 && nLevel < 120 )
$ p9 _: V0 j% y* T. t% h dwTmpSkLevel = 5;9 M5 K5 N; \ w5 ]: u
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 A1 ]) r) Y9 S4 N9 @
{
$ j4 j3 d$ y, v3 ^. M" D LPSKILL lpSkill = &(m_aJobSkill);
" a4 N% N$ C9 {8 ] if( lpSkill && lpSkill->dwSkill != NULL_ID )
c8 L3 ]" h, o( A+ h7 F {
; F, S, |) d N! F6 y' j; u) L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ L, c# ~7 Z8 V( D. M if( pSkillProp == NULL )* B4 A1 Y5 J+ M5 \8 T7 l$ |* N
continue;2 e/ e) I& D9 T" [& u0 p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 e' I" P: H4 R; ]8 R; @ continue;9 n% x: r5 K0 r/ Y I9 M0 L9 n4 W
lpSkill->dwLevel = dwTmpSkLevel;( X6 t, |. ]4 \" W$ J
}6 N5 m6 J2 `& t- J
}
0 B+ T" q3 Y- A }* j: u* q- C0 B4 b0 d/ d1 _! R" G
else if(IsHero())
7 W& O9 ?9 c% d% ] {2 O6 o7 L# I8 {: l! e
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % a3 o7 B7 }# F! e( c, O
{ 2 r4 R$ n) A3 [, i% }" G
LPSKILL lpSkill = &(m_aJobSkill);' h* b: j1 G2 o2 l
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. I9 h0 e G, M! l2 ^ {+ S" d( {3 X4 ^ |2 O. s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 N, l, i7 E1 C8 h3 s" } if( pSkillProp == NULL )' i7 R7 O( ~! M c* ~5 j1 L0 e
continue;" m+ N9 F7 p. X0 R& z- ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( ]- L3 j% j! ~3 [5 n6 ]& G continue;
- L) r. Z+ c: }0 c% k2 o lpSkill->dwLevel = 5;* R; u T9 o' t E
}
: d! c U T8 N+ j. Y% m, B }
\1 S& g+ V8 C3 p }
4 V- ~& \$ w" K) S, X1 p else if(IsLegendHero())$ v" k @. X1 U, I6 u- y# l h( i- v
{
1 F9 D) e8 `& ~% i for( int i = 0; i < MAX_SKILL_JOB; i++ )
' S0 D+ f4 s5 l4 }1 Q" u" C8 f9 r$ G { 1 H3 w, ]; r. {4 k
LPSKILL lpSkill = &(m_aJobSkill);
( m: I9 C0 k7 m6 j9 n ?: Q if( lpSkill && lpSkill->dwSkill != NULL_ID )
) _/ x; o6 m% X u" V {
( q0 e6 w: x. Y" j" |6 V- D5 Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 G) N. B/ ]: b' h! v4 [
if( pSkillProp == NULL ) {- a- T' O# \( F7 {0 ?' L+ @
continue;1 s* L, Y6 g- g4 i3 r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ k1 Z( I; |9 M9 O
continue;
2 H( t5 O6 D& }, d1 C7 B! G" T lpSkill->dwLevel = 5;
; k: D+ A4 y* t1 ]9 m/ `1 D }& @" V$ c, V% y: t8 m3 o: R
}$ l0 s$ _# R3 _# J4 y! C
}
+ \# N* X8 H x' l5 v k: _! m#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ |: a6 E! o9 i7 m- O if( bGamma )7 e0 |0 P, Z( H
{- R- C- @# \/ d% S9 i z
m_nExp1 = 0;
9 J' \. f- Z8 `6 x2 h5 J/ _ }
- ^( W1 A% b4 @5 L! o5 w+ o% ?4 ^
8 F" @# A8 K+ K5 q" u& _/ k6 w ( (CUser*)this )->AddSetChangeJob( nJob );, {' P8 A+ R% Y0 ^, u( L
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 s# ^: g5 x. F8 G
h/ @; o6 G2 Z4 s( I% ?3 g) e1 n! o7 b
#if __VER >= 11 // __SYS_PLAYER_DATA; W5 T6 u) J0 ~2 P
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ C/ K O8 Y% l" H1 r#else // __SYS_PLAYER_DATA) t* Z3 x2 u& ] k! ~* K' I' m0 I
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 Z) G( s M; a% z g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) c% a: ^, E; L if( m_idGuild != 0 )- ~. R/ [) A; r% B/ \0 l+ w+ H) |
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
3 l' i9 v3 y7 q5 f/ @#endif // __SYS_PLAYER_DATA
% @* Z: ^" B* W, G! ] SetHitPoint( GetMaxHitPoint() );
. E9 D) c3 [. N7 x SetManaPoint( GetMaxManaPoint() );% {/ K5 ~0 h6 m3 j
SetFatiguePoint( GetMaxFatiguePoint() );0 a3 ?& G; ?4 n1 q
if( nJob >= 1 && nJob <= 4 )( a+ K' o6 p: O* h
{: P2 R* G' Y, K6 k
m_nStr = m_nSta = m_nDex = m_nInt = 15;& h0 P% N& s7 P0 P2 d' U
m_nRemainGP = 28;& y: j$ G7 e9 g9 v
}) r8 k" U0 m% V5 a4 F
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ R% V: z3 o- d8 v- Q {
/ U4 Y0 G7 p2 {, J2 n; l) F8 S8 A% [ m_nRemainGP = 118;
7 L5 }( m; D0 @ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& O+ p% V) Y% y, d) D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. f t7 \8 C! Z% @3 B& x: V2 j }* d" V7 G! M5 X8 C
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
2 E3 C8 M7 n, p( _# S% M1 C {1 d( W* S( [& R% b+ L4 I
CItemElem itemelem;
+ _0 A( S9 j1 Q( ? itemelem.m_nItemNum = 1;
% Q. \* L: f9 u I" B7 A/ t1 @ itemelem.m_bCharged = TRUE;, F6 q$ ]3 ]1 p: Z5 d0 Y
BYTE nID;
8 B* o3 D5 w3 C! A5 A; d H, n5 V, J+ A0 F& j! d: i
if( nJob == JOB_MENTALIST_HERO )
" e) J" L% ~5 c0 K K itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;/ N ^9 }" e: J% K3 L
if( nJob == JOB_FORCEMASTER_HERO )
2 f/ K5 q/ I" l( U itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, m1 d$ C- T! z
- s8 r+ R( {( X. J1 h$ c% y ( ( CUser*)this)->CreateItem( &itemelem, &nID );" D2 z) _/ o( r S
}' _4 G$ o# ]6 K, v) @
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* ]4 A& J9 C! X ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 J% p+ I8 e' L' G ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 q6 W6 V2 g- a$ v% j; k
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 T) `9 F" P( ~ ( (CUser*)this )->AddTaskBar();*/1 S( a# F- `# F9 K
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" N+ ?: T4 a. z( w8 N. D& S" |2 X
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 I+ j9 Q$ t. i" ]: `3 s
((CUser*)this)->CheckHonorStat();
# E! [* V" r6 G1 U8 | ((CUser*)this)->AddHonorListAck();3 p) `2 m9 X! I3 r8 a+ c3 h
g_UserMng.AddHonorTitleChange( this, m_nHonor);
% F' Y0 v0 ~5 a m$ L#endif // __HONORABLE_TITLE // ′Tà?) @4 c3 M4 f6 U( v& U4 r
}6 b" m2 x# n3 ]* s) B
#endif // __WORLDSERVER) S W. q& l# U
}
! I. X" B3 |- C$ z, h- o9 H" v7 \! u; M5 [$ V
然后你进入functextcmd.cpp并添加以下
# X) d2 r1 q/ R5 t# ~/ l# ~' X A8 a/ p$ `
代码:) J: d8 o1 v- Y/ f5 @5 `
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" f6 j" o5 m3 {) L4 `! y下面插入3 I# m) U6 t: l8 Z% r: T8 [
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
( D+ `7 n$ V5 u* H
@/ f2 p# y* {; A" W* c7 |, E, B然后你去
`9 l6 I0 v$ f
) _% s6 P1 i1 a2 c" T代码:
3 I n; X' y3 Z% k1 H1 z) k' o! m代码
! m4 N ^; c: f7 l$ [3 I5 w' {BOOL TextCmd_ClearPropose( CScanner & s ), ~& E$ M4 O( @
{
7 g! Q+ p9 I* W% v* A#ifdef __WORLDSERVER9 w# g" A7 R4 p/ }9 D/ M
CUser* pUser = (CUser*)s.dwValue;/ u' s0 Y. a% q
g_dpDBClient.SendClearPropose();9 [) I+ G; t3 C9 p9 b
#endif // __WORLDSERVER
, z8 U) p- Y$ w4 o. w4 o return TRUE;
' c" |1 A/ q& v2 ?& e9 g# q}( U# V) E( `2 R
下面插入6 V6 a! d8 w9 P7 D8 C
BOOL TextCmd_rebirth( CScanner& scanner )
6 I+ X+ r/ t+ t{. s x8 |) t2 [: c# n
#ifdef __WORLDSERVER: M( L @7 n$ T X }: Y9 m
CUser *pUser;
2 H3 B2 y8 X7 j* hpUser = (CUser*)scanner.dwValue;
* f% j6 D3 m v) u9 ~. _# Hif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ V. U5 b5 d) k6 s* F/ `pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
+ z1 \: V2 f4 k' z/ y3 selse
' G7 Q" k% k& RpUser->AddText("你还未达到重生条件!");
u" v* P' y' ?/ f+ M, [6 {#endif! i. e" v! Q( V' p
return TRUE;
6 N: s. F* p" k0 ~4 n" H}
: _" S0 K% u/ a
. V2 s9 r: W& x2 e+ q2 y
1 M9 ]8 w8 h; t+ v5 V
0 l. p& H7 W$ A) N5 t7 ?# |: x" M. v+ Q( y9 b
|
|