|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel0 b$ {/ H9 u) a( ~
5 v- S% c" d+ `0 a
Mover.h
/ N9 {& Z1 W8 S! e6 K% |/ f代码:0 _9 U# K0 D5 B% F2 I: W. p
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' L* _! m1 w9 I; G" U
) W! @9 \* E3 \$ p! t下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! ^! }- i0 k1 E* r: X2 u
* d& F! [2 s* E然后你去mover.cpp添加
: y( J' V) d0 V/ P0 x4 n$ a9 ^, |5 a: t# P
代码:. P' ^# _( j! w' n8 `1 a
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): N9 t# b" K) |+ G/ P
{
} C7 G4 y7 C0 y$ P/ o) E$ x, Q! [ ~#ifdef __WORLDSERVER
9 r+ n2 {2 \# K- L4 @! r // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# S$ y$ V" H: I# [ MoverProp* pProp = GetProp();
4 Q' g+ ~$ S; {% |$ ] if( pProp )' ^: i9 U7 p% J4 U( C$ e' @# {6 m
{8 g* I2 T$ p2 `. g
if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 R# N1 z% P9 E, d& G6 C; t
{( y5 D f" m) @4 A3 h
AddChangeJob( nJob );( \0 V( t6 B& b6 O: Y
}else{- t# M5 m. L/ g$ w
return;$ ^# M* ~2 ?8 F& U3 W
}( S1 N. B. z; p/ m
int nPoint = 0;2 T* p/ A! r, k8 W$ W+ a7 q3 {. J( f% g
if( m_nJob == JOB_MERCENARY )
: j; S% P2 T1 [) I3 b& r nPoint += 40;
6 @7 V/ i6 ^; L; M* o {0 Y# Q% g else if( m_nJob == JOB_ACROBAT )
" c+ B V3 Z5 w9 b" U: ]3 X# O nPoint += 50;% V- A, F( |$ f- U0 |$ O
else if( m_nJob == JOB_ASSIST )
' o9 r1 q$ p$ \& p, d* O8 y nPoint += 60; `0 r2 y/ h! v( X1 P$ o4 [8 e
else if( m_nJob == JOB_MAGICIAN )' h6 F* R1 g$ z, ]% O4 H
nPoint += 90;( {% H. Z6 @+ a* t! _: H
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! @) b8 i& N* u# R% e nPoint += 120;* u& E6 [ k$ T% p- c
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* l: P7 V) J7 p; ]- t7 O
nPoint += 150;+ ^9 f7 t9 g1 J# S
else if( m_nJob == JOB_RINGMASTER )
+ _3 j5 S8 e; E nPoint += 160;! o, t* C+ s$ ?5 R- G. |
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) m( a6 N1 q0 @* O- Z7 g nPoint += 180;
* G+ M$ b& z/ b1 }1 \ R else if( m_nJob == JOB_ELEMENTOR )
( ]" S5 b6 `9 s( _& |8 j( k nPoint += 390;
/ m. j0 a8 D5 S/ O- i, { else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 w7 z, z9 b& j7 k) K2 e6 [. M
nPoint += 120;# L' `+ }8 z$ t) B0 ~
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 l' ]+ ^2 Q) H- P nPoint += 150;: P7 Y8 y! T' a% u
else if( nJob == JOB_FLORIST_HERO )) j: d+ X: w3 [: p
nPoint += 160;
! u/ c3 {$ ^$ j4 H else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- k/ b% v0 @/ F% D2 z0 z2 K nPoint += 180; Z Y2 i0 E9 K4 D6 l9 E* J
else if( nJob == JOB_ELEMENTORLORD_HERO ) Q4 w$ `$ G, ~% ?0 z
nPoint += 390;
; {( N% B8 S% O4 ?% n* T, C( w* T7 E( D
AddSkillPoint( nPoint );8 W4 p2 ?5 C/ {2 F3 F
m_nLevel = nLevel;, W% K1 h" a3 R$ p
! }$ g. m# d! ~1 t1 H6 ]
SetJobLevel( nLevel, nJob );
2 U5 c9 l& D& W m_nDeathLevel = nLevel;9 S! ~$ |! x5 m# U' V, D
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. K" T# R" t; R& p if(IsMaster())* f6 R4 G! G8 {, ^+ U
{
9 L$ s. m1 C0 d* z int dwTmpSkLevel = 1;//60, 72, 84, 96, 1080 M: K: n3 m/ k) z( {
if( nLevel > 59 && nLevel < 72 )
* A* m$ g* r8 { dwTmpSkLevel = 1;3 |; p+ a7 P, g2 r6 Z
else if( nLevel > 71 && nLevel < 84 ). X8 X I5 ^$ A
dwTmpSkLevel = 2;
: K, o* n7 u5 X* y else if( nLevel > 83 && nLevel < 96 )
0 s# v ?7 y2 S dwTmpSkLevel = 3;) R4 F2 y9 ~8 g- s, C7 u( H4 H, Q4 T
else if( nLevel > 95 && nLevel < 108 ), g/ S9 }2 [! m: _9 L8 h# l6 N
dwTmpSkLevel = 4;
3 A' A/ \& N$ p8 z1 q9 g* i else if( nLevel > 107 && nLevel < 120 )
8 _4 Z+ G+ T, S$ Z J& ~$ X dwTmpSkLevel = 5;9 q" `- e* j8 j0 n9 X; u) ^+ L
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% q! L: n# D _# b, @. H { * h2 F6 s. r3 |. D
LPSKILL lpSkill = &(m_aJobSkill);
7 b+ x# h5 i; S4 [ if( lpSkill && lpSkill->dwSkill != NULL_ID )" O( ~2 V- Y" x0 @' i' v3 U
{
6 z1 _3 H1 D T; J4 m: o! ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) p5 ]3 W! U0 b. ^2 E* Y if( pSkillProp == NULL )8 [7 _# X$ _( ]; ?0 I2 v" u2 g
continue;, }; l9 ]2 [7 [6 w& F( k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 L: m1 ]2 S7 D0 J( t4 {# D1 r: e continue;
. f3 F) x' H9 |1 s. J lpSkill->dwLevel = dwTmpSkLevel;
3 ?3 a( T# ~# [& w# ~ }
. S% ^7 M- S/ B8 e- A `9 M1 g }
0 N, M5 J; L Y' X- S" U }. {, z, v4 `3 G1 I/ N* |) a5 D
else if(IsHero())
4 m! B0 S$ z$ p" Q J* P {
: m2 h, c s H& o" | for( int i = 0; i < MAX_SKILL_JOB; i++ ) - }* i& _- }/ J. @ Z
{ 3 A$ i$ D- o q- F
LPSKILL lpSkill = &(m_aJobSkill);
5 h2 m, h6 J3 ^2 \$ b! \* F' U" J% o if( lpSkill && lpSkill->dwSkill != NULL_ID )
' z9 h" w& l, `" g% m {( H* h+ N9 r7 ]6 b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 M Z: Q8 u% E; v, C7 [ if( pSkillProp == NULL )( j' w3 e& [% @ c. Z; P) U6 x. g1 d
continue;2 A8 `2 _$ O0 D/ _, ~9 _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER), L( E' H9 e( F+ n+ N! a
continue;8 ~; D9 s x3 P7 y
lpSkill->dwLevel = 5;
S8 h8 Q4 G. n }' l' j9 `- N% i) N7 H5 ?
}
& \% k2 H! k! }; i }
/ s/ S. O. ~) T+ R0 D/ P else if(IsLegendHero())
2 c2 v# Q* X' f4 }- B; n. N* u {
; a% V' U7 S, @8 d+ X0 `" Q; J for( int i = 0; i < MAX_SKILL_JOB; i++ ) : n2 g# r, ]; T0 n! [6 \6 V- T1 O& k2 X
{ 5 _# p( f# ^5 y* w. {1 Q
LPSKILL lpSkill = &(m_aJobSkill);! @5 t7 k% M4 K. F( P' M. [# ^, Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, v/ |$ b% S5 l9 J, E$ y+ h, p( r {, H. G/ N7 [# u9 p+ H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - F% b) X3 h; j9 L5 y' Q
if( pSkillProp == NULL )$ t6 {9 M$ w( ^
continue;, Q s X0 T) {" Z. b1 }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 q5 h, l {; T continue;
6 U( x2 L& d8 H lpSkill->dwLevel = 5;4 ^( J7 t) x! l0 b9 @5 Y9 u5 r
}* Q" X% Q) z. N
}% Z# O& o* _$ {: L5 @ o* R
}3 t. z8 Q! N* h9 K
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. U! \7 I+ Z( u/ a) N
if( bGamma ): s' }4 ]( ?) X# {! k
{; K7 }8 c8 M3 i& d3 C1 ~! k. F
m_nExp1 = 0;2 \8 E8 D7 A/ c# C$ p( o' y
}
k7 U7 d$ J/ o! `
; y* Z* b! t1 O- {3 q$ w$ N ( (CUser*)this )->AddSetChangeJob( nJob );# A+ {4 J! ~5 _7 m3 w
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 q3 n8 v1 A9 b" Q8 V. R+ U$ W; `, h& q" w5 l7 [
' y& m+ D+ r1 s, l
#if __VER >= 11 // __SYS_PLAYER_DATA+ N5 \7 E9 O( Q. u6 C' j+ K% P
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" D# y2 c$ N5 {
#else // __SYS_PLAYER_DATA7 a4 X, R( t3 i9 d. Q! T! L
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
Y9 P: ?' g6 ~' ~* [ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 G G% M4 F$ @* T( n. O if( m_idGuild != 0 )
# a4 }1 ?1 G$ p# B4 e9 g2 Y# m g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% v+ |* }6 ~5 ]# M#endif // __SYS_PLAYER_DATA% B" H; G+ \1 ]5 x: s$ X Q
SetHitPoint( GetMaxHitPoint() );
/ h1 h3 y+ b: I* `' x4 Q SetManaPoint( GetMaxManaPoint() );4 d; Z0 E* q a/ O7 j V
SetFatiguePoint( GetMaxFatiguePoint() );, Q) N$ k) q/ I3 q6 k( ~9 o
if( nJob >= 1 && nJob <= 4 )
9 F8 h% l2 n+ h0 U$ l+ J {4 N6 A7 G( K6 Z4 J
m_nStr = m_nSta = m_nDex = m_nInt = 15;! P/ O) S0 [& L! ]; F. b7 r
m_nRemainGP = 28;, ~: g, a- C' H1 ]9 R2 V" ?
}- D2 D; P K1 M9 O' I: F, c
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 b- D5 j/ d1 k- o0 r3 q5 P {! v4 A, _$ [9 K0 D: `9 I1 Y# Z
m_nRemainGP = 118;
* h- {' Q- J Y# q& _7 q. @! c //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 P9 }& x* {/ }& ` m_nStr = m_nSta = m_nDex = m_nInt = 15;, \, d2 y! U/ y& H1 T7 ? w
}" P. U# B6 |+ I, a9 _7 K8 V ^
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )1 X" h# G7 v( \' d: w
{' w9 m! a% @: n5 e0 [
CItemElem itemelem;/ D1 @/ d' A' T# G5 r
itemelem.m_nItemNum = 1;- i7 o O& g1 f+ C3 M
itemelem.m_bCharged = TRUE;
& z T& ]' e* R n) b% ~ BYTE nID;
0 S$ m/ r l& Z; Z$ R6 z9 z% T
' w4 o" `4 l1 E5 t- g3 a if( nJob == JOB_MENTALIST_HERO )2 m4 g( j4 a* O& i6 P, I
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
7 a E( R& I1 i) r: s0 Y9 G5 z6 T if( nJob == JOB_FORCEMASTER_HERO )* Y- c% u" A( f
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
6 w$ W# G7 `. O: x1 @) i
1 ~; ^+ R( |, \ ( ( CUser*)this)->CreateItem( &itemelem, &nID );9 z' u# t' Q" e' O6 ]
}
}$ z) B# {+ |8 R3 _ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );, w% r& _- e% u; @0 |9 e7 e' V
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
% V8 K, o# b6 X0 N) O0 G7 O' t ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 `7 \* ]3 w; O9 G2 w/ N
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 @& G2 |# @; c, U6 Q
( (CUser*)this )->AddTaskBar();*/# Y" _$ N# B# `9 }9 S& l0 k' l
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ T9 q0 [1 S( A5 u# f6 p
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 h! C. T, E. ^( z
((CUser*)this)->CheckHonorStat();9 c7 C# l* L/ S5 g
((CUser*)this)->AddHonorListAck();' e( ? Y5 m8 d: R: f4 {5 n
g_UserMng.AddHonorTitleChange( this, m_nHonor);
) Y: D: P" x! X2 Z3 r% g#endif // __HONORABLE_TITLE // ′Tà?
0 ]( V! I ?; o' s7 s! Q2 x9 ? }9 F5 G6 o, s6 \+ n: O( L# G
#endif // __WORLDSERVER
8 ?6 r2 U x0 r+ Q6 Z9 A% g- A} 8 K1 P2 `$ x0 V3 j
) _/ N/ e% `& X* L5 F! H
然后你进入functextcmd.cpp并添加以下
( C' p" i; Z6 J9 v
- Z$ o' l2 w! B) u1 V代码:
6 }/ T w3 I* ^9 P: ?- p6 cON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 t1 Z: X% R I5 D8 j9 u5 [
下面插入) u# n( y& e' ~
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 u: U' Z2 K! V( Z, |
* x! n' p: g4 p s$ I3 E1 c5 O然后你去
4 ?+ l- j3 U. c
. b8 l& P8 l6 I! C, Z0 D; [代码:
. i, V0 g* n. }5 l6 w E( N" _, {代码5 D5 B6 L% h6 x& I/ C
BOOL TextCmd_ClearPropose( CScanner & s )8 R3 u" }4 k9 |7 a
{
. I+ y; V! `: V* ^( i- i8 F#ifdef __WORLDSERVER# Q6 J+ {, U' S, I& q
CUser* pUser = (CUser*)s.dwValue;: k* G: @; o, H9 T! m5 [
g_dpDBClient.SendClearPropose();
) h0 |( `/ a( n# c; o#endif // __WORLDSERVER
! c4 H. _' J- k- a9 g; r Q return TRUE;
, x+ G! r5 d6 O: U% \# C9 G}
: F3 z p& a+ X& U! i下面插入3 x) [* [. q F4 b2 s
BOOL TextCmd_rebirth( CScanner& scanner )
; `8 [. v1 O; E+ ^4 o# X: e{
3 f, y; O9 Y6 i! _; {#ifdef __WORLDSERVER
; c3 C; h I" O3 RCUser *pUser;- E' T/ W; \9 _+ S( `, R
pUser = (CUser*)scanner.dwValue;
3 t. ]2 q) R- P3 e6 O' R; lif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 D# Q3 h7 Z1 L9 }2 s BpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
5 ~8 X% R% Y; I0 H7 {& delse
" Y7 u. h5 d2 e2 {& C' @pUser->AddText("你还未达到重生条件!");) P* V6 T1 c; F3 V8 ]" t7 Y0 m! B
#endif
+ r+ n7 p% W$ I+ [# ]7 F- Y4 Ireturn TRUE;
- t4 v) ]* e! v9 e% W5 p} 9 ^2 g8 l) y$ `1 |5 S2 O
1 a$ y/ e" R. n! r. }, Z5 u) g( c0 D( E* A5 ^ Z9 p
1 ^8 l$ M3 |9 G" b4 F: A! z& J; j& @2 y3 r( W0 a; w5 n
|
|