|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel8 s, m+ @9 A: Y8 ?
8 A& O5 M) l3 E: M5 K
Mover.h
7 ~* E! C, N, M! b代码:7 M: L W, a! E4 k
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 l+ o/ _. b7 ?3 R
?& Z" s4 c- [* _下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- H/ N/ W; B l/ y. U _* y" P, ~$ U5 V7 \% H
然后你去mover.cpp添加
- c6 ~4 }( R* \. z! E9 [" l5 g
# k2 } R4 U* I& j' A+ }8 p代码:% K2 Z+ W) o3 n; r: t* W
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: a0 G3 |6 v' d7 j, J1 m{1 t r: O9 f0 r" S9 P; J
#ifdef __WORLDSERVER# n. b( D( H2 ~9 P- n% k$ H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
t5 p) J- D& T* \6 l MoverProp* pProp = GetProp();
# p, W: I8 f; d& @7 z# w8 L- s) F4 } if( pProp )6 ^7 m$ n/ `- A$ ] P& b7 `
{& Q2 T" d$ E! l6 U
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
$ |" B G% p5 H# f1 T7 t# a {* i& V, M# v+ u2 i8 _1 l2 }. }
AddChangeJob( nJob );6 N% O& R! j$ Z/ b
}else{1 R- U* l: ?' J; }5 R l+ S# h
return;9 U9 ^1 W' P3 O' R: A% i" l
}6 i: a, `9 m, T3 h
int nPoint = 0;8 v) t. g, a- P" q
if( m_nJob == JOB_MERCENARY )
. B8 r5 K+ |5 z2 E# }. A nPoint += 40;
8 D& W5 z% q( W else if( m_nJob == JOB_ACROBAT )
% `" s# O+ ?1 u7 B nPoint += 50;6 V' a' A9 f* Y4 z
else if( m_nJob == JOB_ASSIST )5 t& x2 i7 B. N( O8 O
nPoint += 60;$ w8 [) [( k/ n9 V0 |+ a
else if( m_nJob == JOB_MAGICIAN )' _$ w9 W. I6 \! L7 b% e, \- c+ S
nPoint += 90;8 t8 k- X6 z5 K/ A7 e% J# C
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )! |% @4 @4 V# C
nPoint += 120;) W$ L {" { y1 n/ U9 c6 A3 E
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" w; w& }% ^. A4 T \ nPoint += 150;+ T6 w5 v+ q; X: Q
else if( m_nJob == JOB_RINGMASTER )
& P6 s) T* y* {3 ~. A# g7 O& t nPoint += 160;3 v. b$ Y; F$ @
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" T9 h# u) `4 }/ P4 Z1 N nPoint += 180;
8 ^4 Q$ Q7 [* A) R else if( m_nJob == JOB_ELEMENTOR )
% `$ I# l, k& e) h nPoint += 390;3 J. o# O J! i- ~
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 \7 [' U6 a$ }* u nPoint += 120;
) N$ |; Y7 w4 f- ?$ s' \ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
9 Q4 y, L: X. R" m: E) { nPoint += 150;7 r' h2 f4 M- @# F7 z
else if( nJob == JOB_FLORIST_HERO )6 Z3 ?2 z, C! g( t3 v1 N
nPoint += 160;
) b6 z: }% g; y8 i! r5 o else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 p. r+ U8 {& R I nPoint += 180;
- x E9 F' H; X$ c: n& a' N" C else if( nJob == JOB_ELEMENTORLORD_HERO )
' U) r/ s5 F+ @( V! B: z nPoint += 390;
% p3 n0 m8 p% b2 {+ M3 E
8 V: ~- E, s* x: K7 h$ M AddSkillPoint( nPoint );0 u" k4 k+ W, T( {
m_nLevel = nLevel;
: b L$ C( L k3 w
- L" u8 f" f9 m, R9 s5 u6 H SetJobLevel( nLevel, nJob );
( @" T8 g$ D) e7 @" B# l$ c8 y8 L m_nDeathLevel = nLevel;
7 S' B; W! b6 h: B) U& g#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 o: V2 w/ H/ {5 _, `( B9 i- H
if(IsMaster())
* V5 z: M) V! \4 L {
+ f. ~- L) n+ |& T# z6 t; ` b int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- W$ P. D, C* o) r( ?5 ] if( nLevel > 59 && nLevel < 72 )
. b0 T5 N. t' a, t8 V7 v dwTmpSkLevel = 1;( F, @! v1 E; K* A
else if( nLevel > 71 && nLevel < 84 )
0 i+ a9 k' j9 P: G7 d( ~ dwTmpSkLevel = 2;
6 j3 I1 I9 l( K+ Q" }: q else if( nLevel > 83 && nLevel < 96 )
1 T% e6 k9 ?, x dwTmpSkLevel = 3;# _9 e o' S+ L, y6 j
else if( nLevel > 95 && nLevel < 108 )
! m+ k" {+ ?) M. u2 `* z) a dwTmpSkLevel = 4;. Y5 v U3 q2 S; L" }/ _! M; s0 Z
else if( nLevel > 107 && nLevel < 120 )
# p- r9 S( r+ G) x: f0 S dwTmpSkLevel = 5;
7 |$ e1 R2 Y! ~5 W# @% [& f3 z @ for( int i = 0; i < MAX_SKILL_JOB; i++ ) . m" R, l0 c) r9 ^, m9 d2 H: J
{
; ]8 f4 L' T5 y3 b5 z LPSKILL lpSkill = &(m_aJobSkill);
: p1 s& j2 z" z$ J if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 r/ V9 k; e$ ^% f- q8 g {
+ i! e0 o4 _: P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) T6 c( `7 A* E3 w# w6 S
if( pSkillProp == NULL )
8 x9 L8 `7 l# ~/ s continue;' J9 Z( A8 H! m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 F, {- e" A- x5 U/ ^0 B% R continue;
& @ C; l2 L/ V+ f9 G C lpSkill->dwLevel = dwTmpSkLevel;: a6 }( b" Y% J* Q* _
}# j! A& t" K( H3 |8 C+ K
}3 Y8 T5 J y% Q; b, C
}4 J. }. V8 r6 c' O2 ?4 P1 u
else if(IsHero())
) M+ k) |0 L) K, n e1 r {
6 z4 q( l* b! ` for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 u* v, I" h4 S! f% e2 z) V- k# {
{
$ h% m7 M9 ~: G' C- o, ^5 P LPSKILL lpSkill = &(m_aJobSkill);4 G8 b+ R5 z/ h: p; N$ u/ U
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 @1 `7 i0 @; F6 p" {6 a
{; g% W/ g2 l2 V$ j1 O( G* W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 }& f% r' a+ C# r" j, i if( pSkillProp == NULL )
2 l4 r Z8 m: Z' G% Z" g# a continue;+ X+ y7 d7 W& T1 R; ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) K+ F; M: @8 j! _" q( h# A9 l continue;
* k( [ }7 ?/ W; ?( ~. F. L' x lpSkill->dwLevel = 5;
- E$ }& x; X0 U# j2 {( p" m# Z }
7 L" ^9 b' z9 E) t2 o5 V }
6 H2 f: |; C/ _- j }
; `. v) }' T6 p6 u else if(IsLegendHero())1 U& x" @/ _0 k6 f+ o7 j9 M/ K
{3 e/ C: e1 {9 ]' C
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" O; g9 l* P% T7 r! o { , o6 P" c& M3 r9 f. \
LPSKILL lpSkill = &(m_aJobSkill);% Z2 d4 W- ?" J0 l/ G/ m" d' `* ?, x
if( lpSkill && lpSkill->dwSkill != NULL_ID )
n* B; |9 I8 m/ c {. A: c1 a' Q$ Y( m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' n9 ^0 @8 V$ T1 n, Q
if( pSkillProp == NULL )% T4 A. ?% H$ q8 p8 Z
continue; p8 T2 z3 l2 f- X: a& [: [/ G ?0 Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 n; Q0 ?- _1 c- Q7 M! r$ b
continue;
, Y7 {% |$ W* w3 Z- H9 F1 r lpSkill->dwLevel = 5;$ h2 V; ]( d; ~+ n2 G9 z
}0 g1 B1 w& c( O/ S. \8 C: J9 l8 M
}* P) o4 ` V4 _0 v2 T5 [
}
N! w1 g- G* Z#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. L% b- v1 |0 N/ g; N6 p if( bGamma )0 r6 i1 F+ `- ?4 x, i
{3 ?% |2 U" j6 c2 G
m_nExp1 = 0;$ D. r B% p# E$ F3 I
}7 o$ A9 y$ n9 I+ P
. o0 `9 I, T8 x, l0 L) c5 Z
( (CUser*)this )->AddSetChangeJob( nJob );
$ m/ p A4 n0 D. h3 {$ K g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );, Z7 |% r1 ^9 ?% g0 z7 i$ q; q
# c; N9 X$ @+ {5 ?0 @ {/ f/ a
( U1 [4 F$ E) \1 a#if __VER >= 11 // __SYS_PLAYER_DATA3 t. U5 s6 K2 ?4 s' ^* s, s- Z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- Z5 e0 m2 N2 q; R: X, C0 R E
#else // __SYS_PLAYER_DATA6 M! b3 J0 [' p+ x, ~
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 ~+ O" V. c/ ^0 X/ o+ \ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 B8 s6 S7 n9 S0 s0 H. W; H* |( U
if( m_idGuild != 0 )
( Y; w: Y5 t }0 x: @ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 I& w J; l3 g/ C6 X
#endif // __SYS_PLAYER_DATA
6 i* q1 q- T+ `" v! @ SetHitPoint( GetMaxHitPoint() );
" f5 q" q+ G* k9 a8 l SetManaPoint( GetMaxManaPoint() );
0 t" A* i" `" T* F+ x+ W SetFatiguePoint( GetMaxFatiguePoint() );
: E. M4 @3 v' U" _+ r9 _9 J: v if( nJob >= 1 && nJob <= 4 )
3 g' p d3 e0 P5 u( [; J9 y {
4 `6 D3 @* d! i% z7 F4 q1 f m_nStr = m_nSta = m_nDex = m_nInt = 15;
. K Y5 X9 \$ W. H5 y. N8 A4 { m_nRemainGP = 28;
$ W' r* W5 H0 _2 [& c }
, U/ P$ `# h' Q if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- N1 P8 @/ A) G& V
{
( Y& f7 K; c) k2 \ m_nRemainGP = 118;! q. f1 Q9 Z" Y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ c, x; ]& Q( f @# C m_nStr = m_nSta = m_nDex = m_nInt = 15;
' x) @! g- t0 b! l7 V# n }
5 |' q" i+ A R if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 I; W" b- \2 ^3 j$ P: D0 h2 l- ^
{
4 \) ~2 `) `- C* q3 @ CItemElem itemelem;
% U7 i& o" e% }9 ^4 e( ~ itemelem.m_nItemNum = 1;" k, _4 }' Y( a; y* _$ Y6 U9 o
itemelem.m_bCharged = TRUE;
# | v& |& @3 z6 M) `" c BYTE nID;
, W% _' A5 [& u; C! c% r7 e( T! w7 z& V& E2 {
if( nJob == JOB_MENTALIST_HERO ). s) I' P$ E2 d. D
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, x% U: {0 O/ d; K
if( nJob == JOB_FORCEMASTER_HERO )+ t! q$ ?2 {' m9 t8 o
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 v$ c# X! _: v. F
6 ^ M" V1 R. p( j6 k( o r% M1 z$ Y
( ( CUser*)this)->CreateItem( &itemelem, &nID );' l/ M1 c" C Q$ U; Y. q
}
$ m- Q4 c: W9 i% Y$ C7 F) n g_UserMng.AddSetLevel( this, (WORD)m_nLevel ); w$ Y8 y: @$ J! [$ B% ~
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
W% |% e4 G+ Q8 {# a5 `. E ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 d8 G' I0 J/ `8 ?, ^- ?
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: T( d9 a2 X! b3 |7 g- g3 ^0 x1 d ( (CUser*)this )->AddTaskBar();*/! n0 i- m" q5 |/ m3 ^( p
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* F& @/ H& n% x b" }. O#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?5 M2 Z+ x$ o" ^0 C
((CUser*)this)->CheckHonorStat(); \. X5 T3 W* W" H
((CUser*)this)->AddHonorListAck();
2 c% g8 R+ X" J( L g_UserMng.AddHonorTitleChange( this, m_nHonor);" j, \$ U# {1 G5 w9 d- L
#endif // __HONORABLE_TITLE // ′Tà?" e- l7 K; }" |4 U, R k
}
4 ^: Y6 T6 R# ^, B6 h5 u#endif // __WORLDSERVER
: Y+ }* S+ h9 S @1 B! D0 G} . {# T+ I8 ~! k
9 O2 d u0 E; J( O5 a然后你进入functextcmd.cpp并添加以下
& D+ H: {/ l9 o. z: A X: }! \) B1 I% ]- o8 A
代码:
4 S6 ^ {! j8 KON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). z. T9 u* _, A/ V1 }
下面插入; [2 D! p1 q' {9 x$ ]! u. R+ z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 t* b* f' C# @2 e, h& I
. e4 }+ k' W2 [6 w6 X; n9 i然后你去
0 s8 G) i' N3 V* A4 b* e3 S5 i: ]2 o- l2 q0 H3 [
代码:
2 I- b3 n0 V$ B代码
1 B# X* ]5 Q, V5 f( SBOOL TextCmd_ClearPropose( CScanner & s )
( R: s0 f; l9 ]- x$ Y f4 T$ x{
: Z; u( `9 d9 D& |0 [0 K) l#ifdef __WORLDSERVER5 s( g, b( V4 ~: W2 J5 a' U& y, J0 F% K2 Z
CUser* pUser = (CUser*)s.dwValue;& x7 `0 ]/ I! k h( P8 b% K9 |
g_dpDBClient.SendClearPropose();& y* G$ r5 y% Z
#endif // __WORLDSERVER
4 U$ E* `$ X7 l5 t: ^) K4 d# | return TRUE;
, q; z& R# v! w1 M6 v}$ F9 V7 m& n2 g* ]+ B
下面插入$ r. [" f3 y- _9 p( u }1 K# L
BOOL TextCmd_rebirth( CScanner& scanner )
3 B/ H& a, h; r9 E8 i, {: Y7 m5 D{5 u1 F# C1 g" X1 P5 K
#ifdef __WORLDSERVER
. {* H$ w8 {9 _CUser *pUser;
, A& Y% i. \+ |; P( qpUser = (CUser*)scanner.dwValue;3 a! ^$ c# c: _( x, T i2 O6 @
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: V' K% I$ [7 Z3 \8 r; L3 w( xpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. \1 k( m8 ]2 R/ n f
else/ \7 M# L5 [0 Z1 v7 H
pUser->AddText("你还未达到重生条件!");5 |3 c4 [# s/ u( S: k. |
#endif( H* E$ Y5 Y4 [0 D9 b3 A6 h6 W
return TRUE;7 v/ E6 \5 n) F% a' `" I
} ( i7 \6 d u/ f+ m# r0 F1 Q# _9 T1 @8 N
% O# F5 Y# V) N7 A- K
! J. ^5 j2 F1 \$ {' I: J" M
% C+ C l1 q" ?, o5 w6 i/ j* T# Y# A v U
|
|