|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel3 s" k! m$ s1 ~( ^3 @$ b, X9 b
. ] V" U% Z- b; d# b
Mover.h
7 \ L$ a( C7 a8 x( T) J' ]) m代码:" |! b2 a! _( h0 `* t+ s. H
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 }- L1 l! o, Y, ~& t v4 \
8 E: U1 F$ F+ a, H下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& z% A4 ?5 g8 I. }1 i5 L& Z5 v! d& M
然后你去mover.cpp添加% w7 C) y# m/ `$ t2 P# n
. B+ i1 n- ^- C! q# e$ g
代码: a! \( Q! f% E: Z; B5 t* {7 R
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 R: e7 {, O1 Z) |{
7 V. \5 J1 c$ _( e9 `#ifdef __WORLDSERVER" h/ e; y5 N7 V$ {
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 L# l; _* I$ d1 K0 {% e2 n
MoverProp* pProp = GetProp();/ [3 t8 R. L. R& |1 n# n9 v
if( pProp ) k0 j% v" Q. v/ X: i4 d
{
/ `& a# d2 A3 T+ {$ p if( nJob > 0 && nJob < MAX_LEGEND_HERO ). s' v+ [1 L$ h6 Z7 y
{
2 T! b: T; S) d Z9 z6 s AddChangeJob( nJob );; V% x2 j1 A5 A4 ?5 o
}else{
8 I7 C4 }0 }0 ]$ [- D& Y return;
& h2 P/ R2 m: r% @& W- | }; ]! H6 K8 e$ A7 p$ ]8 q
int nPoint = 0;
1 s( M! Y9 V( X9 o3 N3 h9 B3 @2 v if( m_nJob == JOB_MERCENARY )1 G3 d5 E* g+ S9 R; j( @3 z5 j
nPoint += 40;
2 C/ n1 P0 E& z* R0 j. | else if( m_nJob == JOB_ACROBAT )
6 J; x8 m% J0 B7 s2 L g0 n, Z H nPoint += 50;
5 B2 R" r' L7 a else if( m_nJob == JOB_ASSIST )6 S. c- j- Y2 |4 a* I; y1 a
nPoint += 60;
6 J0 k& B! t0 I* w else if( m_nJob == JOB_MAGICIAN )3 w4 ^& s- S; a- f2 f7 G( r" P
nPoint += 90;: [( a: m% ~ X6 i3 G
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 K/ J. q3 u% G$ _. g
nPoint += 120;
4 ?, x. s+ k( f. \% a1 M1 P else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 _* z1 H* I! }/ w
nPoint += 150;7 h" g* ~- G! K; x( b
else if( m_nJob == JOB_RINGMASTER )
, J/ v- B2 R$ K( }* r nPoint += 160;
8 C# Z$ K. O/ e5 U" H else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
5 t' p- g$ ^. v" t9 Y nPoint += 180;5 o% D* T- k6 K
else if( m_nJob == JOB_ELEMENTOR )
, Z4 `1 n& A& l% r' f+ \' Z4 a nPoint += 390;
8 x5 J0 ?8 H% n$ a a3 ?0 ` else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). V1 R1 N' w2 u; q( q$ U% G4 \
nPoint += 120;
0 `2 n- c% C4 Y% Y6 D1 C else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* ?; E# D, p( U/ t6 G0 J6 J x nPoint += 150;$ ]0 ]1 H" N8 F: g) v1 ~; K$ G9 ?) ?0 K
else if( nJob == JOB_FLORIST_HERO )
9 l; k1 x" F$ _" u8 F nPoint += 160;
- e3 o: E- c0 U' d' N1 { else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" h/ {- S/ X& L6 M" g nPoint += 180;
9 M& [6 U+ _5 q0 Y4 k& Y; s else if( nJob == JOB_ELEMENTORLORD_HERO )3 D- d1 y7 N6 L+ A7 Q
nPoint += 390;
, ?1 j0 e$ x9 a4 @
; y7 h! }1 J* { AddSkillPoint( nPoint );
' E3 Y8 o& I7 q! s) Z8 x% ^+ P m_nLevel = nLevel;! _+ h+ f7 Q$ A
6 x8 f: I& @' N+ F% x% @- j: h
SetJobLevel( nLevel, nJob );# r! u4 f" |2 ]3 b! M8 Y
m_nDeathLevel = nLevel;. j6 s7 L0 A) t3 r
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; t, o5 e% T) G/ ?5 j
if(IsMaster())
! F) |5 v8 R; \6 v3 Q. h {) I' }) O+ t: k: t" X* @
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 D; U7 R- z, ]9 {& g' Q3 t if( nLevel > 59 && nLevel < 72 )
2 l* J) w7 ~$ k3 ?9 x8 M dwTmpSkLevel = 1;
- N3 q7 j' o! n% P. K- y3 @ else if( nLevel > 71 && nLevel < 84 )4 M, Q3 n% A2 J- K1 X' D
dwTmpSkLevel = 2;2 Z4 u1 R- Z% B+ T# b
else if( nLevel > 83 && nLevel < 96 )
E/ R' X/ C/ s. y8 s3 p dwTmpSkLevel = 3;
2 V3 m$ N% E* J$ r9 ]- A% A else if( nLevel > 95 && nLevel < 108 )
3 \- r. ~" l1 l" I* Q, m, Q0 ] dwTmpSkLevel = 4;
4 H2 O# V6 K" A) N ~- f else if( nLevel > 107 && nLevel < 120 )
9 v- c4 Z( o/ l" b2 t; a dwTmpSkLevel = 5;" b4 _! F( B7 i- C) h. @+ v$ Y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' a; w1 p% v. p5 L4 p) W
{ & } p7 ?" S' N; H& G/ W% _5 ~! p
LPSKILL lpSkill = &(m_aJobSkill); \% ]8 `; O$ ?. V
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 s+ z( x( q8 K4 w9 F
{
2 b: P& e7 i8 `( }9 G ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: d* V1 y% {. y5 ~7 C if( pSkillProp == NULL ) P4 { m0 p& q: q4 }* H0 V
continue;
$ ^, I9 a/ N7 d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% a% t) l5 H3 i2 c# U6 }! ^: V continue;- e" D- R: x' F
lpSkill->dwLevel = dwTmpSkLevel;& w1 B3 U g7 I
}
2 f8 |* Q4 t3 v* p7 t- j8 F }$ @. S: a3 K @$ n2 g. g0 w
}
* T; ]% |$ p* T! I else if(IsHero())
2 ^8 M" @; e) |8 }+ [0 s {, J5 V8 V& b! ]. B
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 d6 n' I5 a6 ^8 T* t" F" s {
8 p1 z. {4 @) i; |# T3 Y* Y# v1 s LPSKILL lpSkill = &(m_aJobSkill);
h) W. t5 A/ {4 F, X# Y if( lpSkill && lpSkill->dwSkill != NULL_ID )% I8 A, m Q# [5 m5 X0 {
{9 d5 \1 B7 x6 k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 o0 E- e2 X# g O. o
if( pSkillProp == NULL )
5 i7 i) I9 r# F7 F1 U& G+ i continue;' k D8 K3 F: m8 @1 R8 f- g6 M% L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; a& n# M: W9 y9 ]# A- Y continue;5 N/ N4 S" ?) P1 O: ]: {, |9 N) g
lpSkill->dwLevel = 5;+ S2 G7 }# `0 c0 t! u9 I$ c
}
: S$ L1 M q, [, m. d2 N$ F }% w) ?1 U6 u# ^0 J, D
}
' J+ a5 C+ ~, y; m else if(IsLegendHero()): V6 |0 t3 T0 p7 i) e+ B
{' |/ ]( e! G% n( a' o% @6 i2 f
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : @* [! n: ^8 z I
{ 2 g; d2 E+ o. L! F; |$ p2 L& F
LPSKILL lpSkill = &(m_aJobSkill);; W( N0 z( m/ r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- N; _; b# L" I) w& n/ q- | {, B( A( v8 e1 N$ v" Y3 f# s" K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; B5 M& _8 A. g, c
if( pSkillProp == NULL ) n2 v! t9 u) Y
continue;
5 j) |$ D1 @( U: w; l$ [# V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 p2 G7 N. `: T0 P4 x' Q continue;' q& o( Q- |! n
lpSkill->dwLevel = 5;
7 x& y) B/ B4 H- e/ I4 L7 g }
5 Q( I, {/ X$ O. R0 L" K }, j0 y$ \: J) b7 g4 [
}# g% h) Q& f& D
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" n" J; O/ \; ~( h: t. l" C% x' @ if( bGamma )& [8 n' c q9 @8 o
{
# S% t, w. e5 f: f2 R# Q h4 X8 k; ^ m_nExp1 = 0;
* O3 E M9 \; @; I5 k }
, x- l: O, D4 ] W$ g6 o' F
# y) t1 R" q% T" h- @ ( (CUser*)this )->AddSetChangeJob( nJob );
6 h3 S7 h' X4 h& Z g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 X/ O6 |0 R( L1 }0 i# _
! Q2 L$ _1 o5 B$ x K6 C8 @
4 k7 @0 V# [& ^5 W3 v/ r#if __VER >= 11 // __SYS_PLAYER_DATA# y1 x* C9 E' a
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. |% j( \# L8 v( K
#else // __SYS_PLAYER_DATA
) T/ s3 P0 I. E! t$ ~, e g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. R! r9 y) M$ V% V$ {
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );& |. e4 p2 L8 u2 [% J
if( m_idGuild != 0 )
: m: O$ s' k0 G& u g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
+ `' B! e }, J: \* w#endif // __SYS_PLAYER_DATA) l H$ l. F7 H6 D
SetHitPoint( GetMaxHitPoint() );
( [1 }. R; D0 r. V2 Q SetManaPoint( GetMaxManaPoint() );7 J+ _: ^" G5 c
SetFatiguePoint( GetMaxFatiguePoint() );. T: Q# z: [6 R7 G
if( nJob >= 1 && nJob <= 4 )
) Z* ~# ?* c9 ]; t" m. z {) H5 b' G- V6 q1 D: s% t
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' N3 m) R) a0 l( B2 F4 x m_nRemainGP = 28;
) H. v) O) [ \1 [/ j }9 C8 r, K* A9 x
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 X6 o% w( n2 I3 Q" s) z$ w4 G1 g# I {3 g( z( w. @2 j0 j! r0 v* W% x
m_nRemainGP = 118;1 e5 n' F. d9 i& C" x
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 X! w( g' t( W( R- }; J, }1 J m_nStr = m_nSta = m_nDex = m_nInt = 15;7 A; [. |3 @2 f. }
}
8 S* t6 t6 J8 R# r4 Q; z" `9 ]- c if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 O! ^2 F9 Q! Y, l {
, C) x7 F2 @: e% @; @ CItemElem itemelem;
- r5 @3 ]. }. t9 F6 A itemelem.m_nItemNum = 1;
+ c. K5 n8 D9 T, r" h# j itemelem.m_bCharged = TRUE;" a" n+ C, h/ U
BYTE nID;
5 W: D! o; X. ^4 q6 [8 y2 v8 N
# h; K' h0 p+ |. b" d" G: s4 X& y if( nJob == JOB_MENTALIST_HERO )7 Q/ Z4 d$ s1 ~. K, L7 c
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
/ w' ]) e! L+ q+ J- Z if( nJob == JOB_FORCEMASTER_HERO )
" a T0 F: S4 K- B. E& W itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 s2 {) K, q6 _+ _7 @$ ?5 b3 n7 r: @2 `
( ( CUser*)this)->CreateItem( &itemelem, &nID );
; S/ G- s# A1 S! W }
0 l$ N d, R4 b/ [) Y, U g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: M; M* Y* A, {) w( R
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );( p- q- j* t. \ Q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% L+ B. h* z M3 t /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! Y4 U" t* X* r
( (CUser*)this )->AddTaskBar();*/3 u! Y3 ]+ s5 h" F$ p
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
+ f: `1 i# k% f5 d( Z#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' B$ v0 |. G# ^& Y8 G3 o; Y) i, t+ m ((CUser*)this)->CheckHonorStat();3 r. n3 L2 y" M+ i! N- z
((CUser*)this)->AddHonorListAck();' v3 c3 s: x: L, \( `
g_UserMng.AddHonorTitleChange( this, m_nHonor);
B5 R5 l0 k, T- l0 s#endif // __HONORABLE_TITLE // ′Tà?! E& y s& X2 c" Z" f
}2 w6 s7 r8 N/ F5 m7 |
#endif // __WORLDSERVER
* o& l: M1 b: L, F1 ^} " v; R6 H- A+ ?
/ T7 e7 k% K X4 h3 }然后你进入functextcmd.cpp并添加以下5 Y7 H6 @- a! r! |6 a7 C% ]" B7 S
) `5 F' F S, R
代码:( M! T& A. `7 b3 Q2 M
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )" x% q7 L: x% j( A6 [1 ~
下面插入
; _! v: w7 [. F4 n6 ~4 VON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 [- e0 O9 \, V$ g1 H# `8 r
# e2 n* c8 o& l然后你去! i3 u+ _% |8 K5 g4 c. o8 U
' w+ T" O" }; d: y& n
代码:: E2 R6 h5 I4 g' S" t' A. A1 s( c; n
代码
* [3 d* T# D3 w" j# r- NBOOL TextCmd_ClearPropose( CScanner & s ), O, A2 M3 [5 q T& v Q
{4 X4 [2 E9 j% f, z: g, @1 i
#ifdef __WORLDSERVER
* v+ F! A ?( W! r7 D7 T CUser* pUser = (CUser*)s.dwValue;0 N5 k/ z) k/ M Z) J( h9 {/ @
g_dpDBClient.SendClearPropose();
2 R( j9 c2 L+ u' x; C; n% S#endif // __WORLDSERVER r9 @) }; b9 \2 R, J3 f
return TRUE;8 a. u r& B$ J3 m+ L. g
}1 M. U: U* {. L3 h7 _3 N2 v5 i
下面插入6 b, u% ]" E( i$ T9 w9 R& z6 D% u
BOOL TextCmd_rebirth( CScanner& scanner )
% }+ h) \0 D# X9 c. ^{- [7 l. N' i- }7 q2 l
#ifdef __WORLDSERVER
$ C# n% u2 O$ c( \ @CUser *pUser;
6 x0 j" S; s, K* ]0 S0 z; h4 qpUser = (CUser*)scanner.dwValue; @* i9 |5 v) d4 `# |# F
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
/ r( J( t% q7 K ^$ D* `6 w. |, k5 npUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. K8 v# t# k- F5 Gelse/ w# S1 q% Z4 D S. ~2 x& c" ?9 b k: g
pUser->AddText("你还未达到重生条件!");+ G k+ L8 I* O" g* D4 o
#endif
# L) k2 }9 W8 p" d" Ureturn TRUE;
, R4 d Z" p1 j0 C. I0 f}
+ a' d0 F, B+ e/ M; G- l6 M/ T* [8 e8 g9 Q
1 _' v. F2 |2 L* I1 S# D R& s- w2 x
5 [2 l# w9 i' Z8 F' L: A2 L& I8 v+ I
|
|