|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel+ q5 s: z1 N9 ^& V' B
, t' S( ~! J4 x7 \$ {3 i- AMover.h
/ v' H3 {- o7 I& b+ @代码:+ l! `+ {8 \8 F7 K1 [: I0 r# y
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü6 K( d. q4 A5 `+ X4 D0 p8 ~) m
( ^) I* P6 u1 ^7 X( R: k
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, Z/ a2 h8 ?6 x3 E V$ V4 v" f6 I8 x) x0 f
然后你去mover.cpp添加
6 G4 r) l& U( ^$ k# W' z! g' r( O1 w: m1 ?# g
代码:! ]5 k/ j6 j$ y# U# g' ]1 d
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )3 K1 H& a( e& r% Y
{
/ U6 x1 d) ~! p, u' L$ h#ifdef __WORLDSERVER: h3 y: `' U( o
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
^9 y( i5 h$ z( u/ W4 [ MoverProp* pProp = GetProp();' N, `4 g9 @# e" O+ ~
if( pProp )4 t5 o$ y# T8 F) U1 O9 {0 V q; v9 h
{. I3 m0 p/ C; M" ^
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 B9 ~/ l; c! z {
3 T% g+ k3 ]4 Y7 b. c5 L AddChangeJob( nJob );
# {# t9 X- X: k, i H. C* `" x }else{9 A9 Y' a" r! Z" x
return;
1 |4 b8 D; { [0 r5 u }& ~* v+ Q$ }. h
int nPoint = 0;
* E7 B3 b/ d& r( u9 L/ x if( m_nJob == JOB_MERCENARY ); j9 b, h/ Y4 f& A' M7 y2 q
nPoint += 40;+ b [2 z$ k8 w8 K" J& t
else if( m_nJob == JOB_ACROBAT )( X2 x, J( g. n, X2 }9 Z
nPoint += 50;
+ m8 @! E$ s, i! {3 w( L else if( m_nJob == JOB_ASSIST )
& _0 w3 E4 {3 n0 @$ X nPoint += 60;, W/ N0 e$ Z+ h/ ?& l
else if( m_nJob == JOB_MAGICIAN )7 |5 a- |' E2 C& A* s$ l+ ?+ K
nPoint += 90;# J4 Z) d+ C( V% p! D
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ c# X4 i8 o! P y% d: |
nPoint += 120; V3 j! v' c; l+ T1 d
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ); ]& {6 V+ A1 v1 A( V1 i
nPoint += 150;
- d; N; J1 p T, h# W" i* M1 Y( Y: U else if( m_nJob == JOB_RINGMASTER ). a; Y+ q: B" g( k) h: t
nPoint += 160;
8 ]" d, S. b5 z P" d) Q' y3 M else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 \% t. q+ @9 z+ s" e nPoint += 180;2 n, G3 r' t; P
else if( m_nJob == JOB_ELEMENTOR )
5 L) @, y, W2 x; B; h- U nPoint += 390;5 U. }6 B3 k# R. g8 h: Z; J
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) Y! I& u( [5 O8 `. V
nPoint += 120;. q) X- N t) R8 g& E. E0 O& n, f
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). l! M& _/ ?+ z8 a7 G; c
nPoint += 150;
; w$ J2 m: W4 r9 ]( O else if( nJob == JOB_FLORIST_HERO )
$ T7 T; d6 _# y. m, @9 Z) f! k4 Q nPoint += 160;
, I4 A, u1 f) V+ a( A0 u" O else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- ?: z1 M& n2 H+ E" E nPoint += 180;% v: N9 l; @8 j- I
else if( nJob == JOB_ELEMENTORLORD_HERO )! Y- S7 z& ^* q/ }8 O+ v2 u
nPoint += 390;. D& d8 E& z1 z/ s% A+ W$ o7 v; X
& A$ R& ^5 W3 m" ?5 ?! j
AddSkillPoint( nPoint );
2 Y3 v U" S1 q6 ]6 V) x+ x m_nLevel = nLevel;
9 s/ ] x" s+ i( u7 `/ V$ x) I# c; q2 M- I
SetJobLevel( nLevel, nJob );
1 p; Z$ ^; B0 } m_nDeathLevel = nLevel;% N, s, U# F# T
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 C7 x" j% z7 q4 v7 x3 C- N9 f if(IsMaster()), ^- y4 [# o+ U3 y6 x& d
{
2 n+ Z# a% f8 f9 x int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 N: H) h3 h/ ~ if( nLevel > 59 && nLevel < 72 )
, C% a' ]* B' h$ L$ k# \ dwTmpSkLevel = 1;' Z T. k) X, c* Y+ t) i" b; }
else if( nLevel > 71 && nLevel < 84 )
; c, C' f/ F7 e dwTmpSkLevel = 2;" U- K5 H1 F! V" }/ j% J! g- F6 E
else if( nLevel > 83 && nLevel < 96 )
- A$ W* g7 s7 f dwTmpSkLevel = 3;! f7 P+ x! q' N9 T" Y% m
else if( nLevel > 95 && nLevel < 108 )2 r; ^( T$ q$ t! y' G/ T
dwTmpSkLevel = 4;
, p9 t3 L5 G$ H else if( nLevel > 107 && nLevel < 120 )- ~, F2 @( E9 b/ d* I
dwTmpSkLevel = 5;" y9 d8 I7 q! Q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# a, u" ^1 a V! D2 R { + x; m9 ~4 Q! b P" a3 a
LPSKILL lpSkill = &(m_aJobSkill);% v1 }- ?0 u/ j% u# z$ T
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 K) r- Y% t8 V% w( K1 { {: l# K4 t( ?/ B$ C1 |, H# H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 q% L" V3 P8 l' m% f+ m; a2 l
if( pSkillProp == NULL )
# Y8 o. A, }8 u+ M& g9 g continue;, d0 ?2 Z$ c' v7 M8 `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; e; \/ u" \9 x% W' P& i continue;
' l' b8 w g+ L) X7 K lpSkill->dwLevel = dwTmpSkLevel;& @% k( q# f. _& U/ @, ^
}
% Z! z/ ]$ C, c: E2 G: @0 j }
7 i) m( }3 ~ N8 L K }6 C; {; U& k2 G
else if(IsHero())5 q+ y: C w- e1 {4 Z
{" b3 [. K% R. ]% v
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 r$ b3 n" y. U6 V
{ 5 o6 h5 p5 f) r A) L$ M
LPSKILL lpSkill = &(m_aJobSkill);
% r i, d( [3 z! m( s6 J7 X if( lpSkill && lpSkill->dwSkill != NULL_ID )
. d( b/ A$ w7 z1 W8 m8 S {0 X) g( @3 j/ M$ \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); v' {! e) y x8 i$ I* x# E) W V( I" x
if( pSkillProp == NULL )8 {* N- A9 M7 ?
continue;
+ B9 t0 A4 k) W6 j& ~: o$ N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% u( I- d9 m* _8 A9 K continue;' q' A, m( f% e _& ^0 v
lpSkill->dwLevel = 5;
; n* u# W7 y" O9 O1 ? }
Y! k) P1 r: E% Q1 h8 ` h% S" |+ G }
. W6 j7 ^( I( R' W( T5 z2 l }: } |& w1 R* R/ }/ G
else if(IsLegendHero())* B$ u1 a7 i+ Y. y6 T
{
+ u3 A% W+ R8 e- Q1 @ S. h for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 y! s+ ^4 v2 g9 Q4 K
{
4 G* W. |% t2 Q LPSKILL lpSkill = &(m_aJobSkill);& u' s, Q; R( k) h- } m) R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ b( E/ `' |" a; K, |) ?5 U {& ]6 h1 j. V9 g$ y5 B2 D& m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. ]+ @5 y) X/ w. z/ r/ s) `3 V5 l if( pSkillProp == NULL )7 d1 J. @0 r+ I: B) U6 {+ D; e. t# h2 t
continue;
/ t! y- c; N9 S. D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 x" s0 s0 G! M- `7 z" j continue;; R% v3 P7 w- r9 d* P
lpSkill->dwLevel = 5;
1 F0 i/ L, F8 w: b7 i) Q( t }* w8 u0 t) z; O# m) r# T2 C0 E
}, _8 I' f. i" T$ C O
}* q* L0 m9 B" M, Q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% J! v5 w: H2 r" c if( bGamma )" B% ]0 q2 j$ Z# w
{) a7 n N+ A* D
m_nExp1 = 0;0 E, n* t/ {0 c# V9 P
}
- ^8 Q7 p$ ?9 P
' ^, F; R. Y0 A, p' W ( (CUser*)this )->AddSetChangeJob( nJob );/ P) W8 c" r9 P$ k S3 m. h9 R0 o( F
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );( Z) N7 `* ^% U: ` X4 `/ a6 b$ d
0 \# a/ H# |! ]% [
# U: G0 ~9 u6 Y; `, X8 z* A( W: q
#if __VER >= 11 // __SYS_PLAYER_DATA
& U7 q/ C% [3 g i" v' D3 f { N g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% ~* O' n& T9 {! a- x: b" k. [#else // __SYS_PLAYER_DATA; t1 X! \) h f$ @7 r
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );0 v6 }' _$ v1 c9 n X3 x
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 J* N4 T" R: r& C9 U6 Z if( m_idGuild != 0 )
5 v6 R% T! W6 x$ V. M1 k g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; u* e# g% k' o' D( o! z
#endif // __SYS_PLAYER_DATA
a: i8 k! D& D! C2 M SetHitPoint( GetMaxHitPoint() );
/ j- k" n' J# @ SetManaPoint( GetMaxManaPoint() );) F5 Y' R3 a1 L' x& Z9 j, n0 O
SetFatiguePoint( GetMaxFatiguePoint() );
4 s8 o5 p' ~% i if( nJob >= 1 && nJob <= 4 )& l% e6 s& ?6 H8 G0 S* c, U
{
, m7 `; o8 e# x0 z2 R0 G m_nStr = m_nSta = m_nDex = m_nInt = 15;% X9 Q. f; Z% E+ V
m_nRemainGP = 28;- r+ |8 E8 v: z
}8 s8 k6 x* ?% g7 W5 m* J
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )* u$ N7 V# ~9 O1 U' ]9 q4 i
{
: R# E2 h$ j5 Y$ B) z m_nRemainGP = 118;8 w, I$ B9 m; C5 {! D' }
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! ~; X8 S b/ {
m_nStr = m_nSta = m_nDex = m_nInt = 15;7 q+ e$ u7 l; N4 s6 {. V, q
}
' z2 z% v! _/ K W' B if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 _/ \8 h; V: K1 A4 g {" r- H0 \& r: {3 x
CItemElem itemelem;
( P3 b; L5 h4 i itemelem.m_nItemNum = 1;+ H6 y( R6 `! g( d7 {- }5 K1 ~, J6 |, i
itemelem.m_bCharged = TRUE;
! R- A* }8 y" H. |' n BYTE nID;% |5 z9 x9 [, p: V9 g+ x( u
8 d' x) O* |( P5 F# `3 ]9 G3 X l3 C
if( nJob == JOB_MENTALIST_HERO )
7 G3 _3 L$ I( D5 V) D itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( S+ I4 b; i+ }! c% Q. w6 s if( nJob == JOB_FORCEMASTER_HERO )
- X; V1 V; h/ H( E8 Z itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: g! O5 M% A( s# y9 H! ?" k1 S$ _
2 Y$ ?. r5 i6 Y8 E1 n1 F ( ( CUser*)this)->CreateItem( &itemelem, &nID );( a* {2 E, b0 C% d
}
' ~- S' J; h# J. p g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( q1 v) e: Q4 M$ P5 B) o" A1 [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 E9 ~ J, F: a p ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 z5 h2 {6 ~0 |/ D/ D+ J8 a, Y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
) W7 p6 X9 ?6 |" O) { ( (CUser*)this )->AddTaskBar();*/
* y7 E- n$ w9 A6 t ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( f# z; ^0 f0 s/ X* i
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?+ k" \0 T) l# v9 v _
((CUser*)this)->CheckHonorStat();- ~' m( j! A9 T" D) c% x2 W
((CUser*)this)->AddHonorListAck();* _" b: V/ t6 I6 B8 J
g_UserMng.AddHonorTitleChange( this, m_nHonor);( _; Y2 \7 B5 E9 z# F. G5 f7 m
#endif // __HONORABLE_TITLE // ′Tà?7 ^& [: [; K. @9 c
}' N( G- W5 H, _
#endif // __WORLDSERVER ?6 O; N9 f) f- c
}
: M- V! G- |4 K5 d3 H
* D, Z0 M! H6 z+ l% ~! u/ D然后你进入functextcmd.cpp并添加以下& _5 n$ |% i+ ^$ y, K6 b
& v& v7 j9 I# }: f2 ~$ B* S代码:
, N6 ~, h s3 l& N2 aON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% K L2 H6 V' i( z! d+ b, q下面插入
9 I6 Z: N+ X: ^ k6 BON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 n1 Q7 [2 ?% |' ?
6 e* Q2 @! |; _/ E3 [
然后你去$ q0 `& d. a, B# ^6 j
& {* V5 H) ]( F0 V* U
代码:5 ~+ [% `- v8 e# F9 P/ w$ M( b
代码- t7 Q# \ B+ `7 ~% O+ t }
BOOL TextCmd_ClearPropose( CScanner & s )
4 f- S7 c" W' S{: s1 \3 y' a/ l d" w' u q; }
#ifdef __WORLDSERVER
1 z& h% T+ K/ h4 f6 E CUser* pUser = (CUser*)s.dwValue;
7 P( l7 h1 a, W7 U& H g_dpDBClient.SendClearPropose(); O9 D6 Z! d! K S' l4 e! m
#endif // __WORLDSERVER/ {9 d- B& r; D5 B2 _ u
return TRUE;& v) K7 K6 p+ c# z5 R+ v
}( ~9 {7 P3 ?* e# |
下面插入
* P8 h3 V# k/ Q2 xBOOL TextCmd_rebirth( CScanner& scanner )
7 W& c7 V; m p{4 [" h7 T1 v" g( M5 I, ~" c' V
#ifdef __WORLDSERVER+ T5 b# u2 s7 W& b
CUser *pUser;
5 k4 ~2 O. K; v/ A- h! y( UpUser = (CUser*)scanner.dwValue;' ~) J. B1 @: O# S( L6 U
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())1 m0 y9 G( u* [. D. X2 X: E
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( j7 V& ~; c+ @1 U" U$ ?
else
, f' ^$ }% ?6 f5 \7 N' spUser->AddText("你还未达到重生条件!");
8 C2 w, F' K; j- l3 u( m#endif& o( ?, h3 V: ]8 R) x4 {0 E( F
return TRUE;
5 n$ r* Q3 _: G' t# b, x}
+ }$ x, j0 X/ [& q& D% o
- O8 Z3 @( a. S: S l' h4 C W: z. ], b+ z& K' Y" S
3 L# e9 }& X) w i' S1 }) U" A% ^' q) e4 R) w Z n! Y
|
|