|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! ~2 r' y( |8 d9 }9 l9 z
, Y l. ~$ ^" }% H2 `Mover.h
* i1 r& `) j1 D$ {: h6 R: D代码:5 l A' Z- S0 N1 R1 j. K5 L( E9 O: p" q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 a4 M2 O' k6 l* L
1 e" w! o( e+ K% x# B- l$ t0 \& |7 }2 Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 N" l* u0 m9 A7 P6 B" V8 Z
3 S: u ^: d8 l- n然后你去mover.cpp添加1 h9 o# G1 `/ f$ [" s
$ r7 c1 Y6 P& L' Q
代码:! _9 s2 H& H5 J8 a! }6 d
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 l% X( U$ R5 W& i: Q! d* z{
4 m. v% g9 F$ h3 W#ifdef __WORLDSERVER9 S- w! `2 u0 A! z% m+ r
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; H3 Z. W9 V4 W0 { MoverProp* pProp = GetProp();
8 `2 m- d i8 p# r6 j" v if( pProp )% A! E) G& A" H0 D
{
5 Q7 C/ f6 X/ I2 E/ t1 H if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 z: F! D+ d% {! u8 d" q {
+ k$ x% g, Q9 ~3 o AddChangeJob( nJob );. F" ]2 h* l1 ]( i) Y
}else{$ m A N% H. h3 T
return;& H7 ~ X% [( f! }: ^3 g+ U
}$ Z/ {/ S4 T4 _( x
int nPoint = 0;; M0 \7 o/ L; V* z5 q" S
if( m_nJob == JOB_MERCENARY )
- a9 [) @; m' k nPoint += 40;
$ ^ ?, g/ |) s& E; H. p. w* F! {6 ` else if( m_nJob == JOB_ACROBAT )
4 q" R: q5 G: L/ ^4 u2 c4 { [" ? nPoint += 50;( C" P! v/ N1 L
else if( m_nJob == JOB_ASSIST )
) R) {( x- l' l7 K0 ~ nPoint += 60;
- g1 o6 C) d9 F% _% G else if( m_nJob == JOB_MAGICIAN )
! o' @, x$ k/ B* H# o nPoint += 90;
$ y( C. M! Z2 O8 N, n else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ), p# z. ~/ \6 }, y8 B( n$ A; f
nPoint += 120;! W; i- V2 S; K
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% s% Z, q" n$ _3 P. I" }1 ]9 P0 K$ Z
nPoint += 150;
2 g9 f! e& B& Y" U" r else if( m_nJob == JOB_RINGMASTER )% m9 V, H6 I- ]$ J/ M* C- P
nPoint += 160;1 i0 D8 G2 O! ]. Q. ^
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
3 v% g* a5 g! y$ p) p- K* t nPoint += 180;
7 Z( N3 V2 L5 m5 s5 v else if( m_nJob == JOB_ELEMENTOR )4 R6 s, X! h/ Z! n
nPoint += 390;
4 Y" S& q, z8 x% P' P8 ]( X- q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 }! y( _% c8 }- w: A& S m nPoint += 120;; i( X) O8 C3 i7 {: \9 F
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); j+ N0 k- f! r- Q0 K$ K
nPoint += 150;
$ b+ S2 X- B' H: K% v) V& d) J- d0 i else if( nJob == JOB_FLORIST_HERO )
4 m/ ~) x# V( f, i5 K7 J/ ?( @$ S nPoint += 160;
( e' \) v l: r4 c/ Y+ A else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 r- o5 b! |4 f3 L nPoint += 180;( A7 W1 C, w5 G/ k, Y7 Z
else if( nJob == JOB_ELEMENTORLORD_HERO )0 [9 z& y3 ]- `" a
nPoint += 390;
" s$ q# n7 ^8 J( V
0 l+ O7 g0 c* _# b9 N6 x- L4 o AddSkillPoint( nPoint );, G! U& E, \! r5 u( k- d" h( f
m_nLevel = nLevel;/ B7 D- Z D, i- j6 E' ?' w
! T1 x6 O: v3 @& Z
SetJobLevel( nLevel, nJob );
$ A- I- q+ X+ ~" K4 ?- N9 F# Y m_nDeathLevel = nLevel;1 |6 i( n- r$ Q4 f5 g9 a( v9 w' ?
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. Q% ~: A3 r$ X3 a. s if(IsMaster()) Y! ?4 n9 T: ^2 N a; v: F
{) f& b( D; c$ L# K
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, ~5 G4 t8 i8 X w& ?, p3 [ if( nLevel > 59 && nLevel < 72 )4 l# a5 B# h4 S& i, |% N |0 |6 f
dwTmpSkLevel = 1;
, L, `% T% D0 r! j4 w" @* Q& ?% S else if( nLevel > 71 && nLevel < 84 )
9 ~0 b# X2 p" R* h c( N/ d dwTmpSkLevel = 2;
3 i: n1 r5 y# m5 p else if( nLevel > 83 && nLevel < 96 )
4 c* O8 h5 `" ~ dwTmpSkLevel = 3;
( c5 ~5 Z% t. ^ |, i0 O8 r2 w else if( nLevel > 95 && nLevel < 108 )+ f$ \6 C' ?* [9 X# k& j! I7 a
dwTmpSkLevel = 4; X. I& k Q1 I8 x2 @6 H6 X/ ]" J% [
else if( nLevel > 107 && nLevel < 120 )
" f0 f# n2 @+ d" g dwTmpSkLevel = 5;% ~1 ~$ c8 k* n
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' D% N& q, y" W$ b' V* a$ T
{
5 p+ ~: t. X8 P& M8 B3 q LPSKILL lpSkill = &(m_aJobSkill);
s; n9 j, d/ s/ s. D2 K) N0 b if( lpSkill && lpSkill->dwSkill != NULL_ID )
( Q5 r* ^! P8 I* g) l {* R& P- ~3 J. \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . V5 s' O7 n( _: m- r
if( pSkillProp == NULL )
- c6 \) f% {! |/ `. K1 P continue;
" x: w# X, J( l1 J' g# @1 c if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 n/ {& N0 ^) p& G continue;
/ e) G( X9 _: Y$ i2 x% R0 \ lpSkill->dwLevel = dwTmpSkLevel;
0 A; L. p X: A }
% {( T7 \. p+ }7 L9 Z6 I4 R }
+ Q4 M8 y& f3 s4 ?6 F7 E }
1 p$ d# W. [* s) d" D else if(IsHero())) I- D- E- \9 m5 e
{! Z+ u6 N- Z; `2 g4 ~# p) L
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 o$ P( y1 u4 w7 `
{
$ f6 P# F& L1 l J: e! R% T) j8 q+ { LPSKILL lpSkill = &(m_aJobSkill);1 o+ d$ I0 z% P2 V) ?( p, }
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' |. P; _, w; X- v/ ?' Q {3 F" w z5 p0 f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 a. L1 _3 M, b; d" _) a( c if( pSkillProp == NULL )
, H$ Y: @# T" d! d1 u continue;
% m1 ]% \6 B' ^4 ~7 U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! ^. y4 A3 k9 U, t, {- y
continue;# x/ [2 p6 N) F! x
lpSkill->dwLevel = 5;
- q! o' h J S: r( |2 ^( P& o) ]) s; p }0 j$ ?4 Q1 s U, ]* \
}
$ {: Q6 t; V. _ }
8 h" ~% I7 Z3 w4 u2 f/ e else if(IsLegendHero())
: a/ M! V# U1 {' O3 c* {4 r/ \7 w {
l/ X' w" `/ K6 {* }4 K1 I for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 i# T' \# T: I' E4 r/ ^
{ ( r2 K+ p" A/ H0 G" T/ {
LPSKILL lpSkill = &(m_aJobSkill);
% i& O8 l4 ]8 a if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 }1 G- Q: X9 P5 }+ I8 { {: Z$ M& w) @, g9 Q+ |) J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 c1 J9 W% _( m" S/ L6 \ if( pSkillProp == NULL ): z1 |4 k! m' t* `6 x/ T+ V/ P# @1 ~
continue;
3 T1 U0 I3 g# c0 o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" L) I. W }# S/ Q/ l" k# G. | continue;
* N- X* |7 _6 | lpSkill->dwLevel = 5;) x, m9 P6 ^/ E2 ]) z: u& l
}% v" t; I4 T; n. T; H, E
}
0 i& S/ S5 q0 `, s7 {7 y" G- n }8 g% J. D6 [4 @% i% d9 { v. b3 j/ ^
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; P/ v+ y6 Z+ {) w6 _1 v7 G
if( bGamma ), q6 \ \* Z- g: N( T$ z
{. Y0 A. X; R0 G G( E/ W0 n
m_nExp1 = 0;5 |. N5 o6 c6 S4 m) C
}
9 C' a# [, X3 T! M
' a' D2 E% s$ i ( (CUser*)this )->AddSetChangeJob( nJob );- C3 d6 x2 p! e1 `! Q/ v
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' F6 Z2 ^' W( F' k- I9 l) `) U1 E. f# ]2 @8 a' ?/ q+ \
1 f# q n" T& A7 \#if __VER >= 11 // __SYS_PLAYER_DATA
8 h& ~$ @% ^% l5 q% P3 @! M g_dpDBClient.SendUpdatePlayerData( (CUser*)this );4 j' d* J: H2 x, ~- _1 B) P: u
#else // __SYS_PLAYER_DATA
5 O2 @0 ]1 ~6 I, m: w% O g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 p0 C' ]1 i5 R9 l2 F* z) y; U g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
" ]7 _) z: Y6 x8 f if( m_idGuild != 0 )
* V& H! j2 m1 t2 O- W- t6 w4 y g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );2 U1 j! a6 I7 u; T/ E# ]5 z! F
#endif // __SYS_PLAYER_DATA9 p6 n9 j1 ~) d& ]! ~
SetHitPoint( GetMaxHitPoint() );9 V' M z( ~/ `: H2 n
SetManaPoint( GetMaxManaPoint() );% _% I0 e" r* s- r/ e2 F% T
SetFatiguePoint( GetMaxFatiguePoint() );& i1 }3 ~7 r. P3 G
if( nJob >= 1 && nJob <= 4 )
. r& ~. n* O t1 B9 p {2 s, H ?) l. o& l( q
m_nStr = m_nSta = m_nDex = m_nInt = 15;( R# R& R% s5 J/ w; T: Z7 `# G
m_nRemainGP = 28;
4 O' p! D9 P, U4 a* t }: [; U2 A% W. r( {5 o3 v
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 V6 r* I! r( L, n Q( m, l& c {
& P" P+ F% B- W# g2 K! G- ] m_nRemainGP = 118;9 M! D( _# V: g% x$ R) E$ g: n4 w
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;5 U5 X, g- B2 ^! @: s2 R
m_nStr = m_nSta = m_nDex = m_nInt = 15;3 B) S, g% M1 T5 N8 o4 w9 S
}4 ^& { {* F" A% d7 t
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ c0 t L( r: X3 u {8 s4 s, _2 U; A+ ?4 @
CItemElem itemelem;& a2 H2 S( Z+ Q0 N) I' O* r, s
itemelem.m_nItemNum = 1;7 }) w1 ~' G. Y2 v6 N, }# V3 B& ]
itemelem.m_bCharged = TRUE;
0 f( m3 F, \- d. X5 c: K3 U: M BYTE nID;
/ I! L3 c0 O( M( f# N9 j0 V
" `, s0 n: [8 ]# E9 O if( nJob == JOB_MENTALIST_HERO )
8 i- o I s4 h, j- k itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 z. I6 m0 z- |# o. ] S
if( nJob == JOB_FORCEMASTER_HERO )1 c# K& T. i7 ^* E# g
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) }$ r: w: H: z7 A/ h1 N
+ K3 G$ e. h" [; A ( ( CUser*)this)->CreateItem( &itemelem, &nID );0 A4 G2 Y' d( U+ O3 R
}
6 q3 g! J Z0 m9 U- A. Z* x+ _ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% L4 T; C* V0 p5 Y' Q* B ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 _" S# }, z" Z ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 K8 N, n" R* R4 e) x- Y( ~
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
' L4 j0 n( a. ?( {' T ( (CUser*)this )->AddTaskBar();*/; T, b; `6 z: X) P8 A7 B5 o: z
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );% k: Q0 S2 `; X+ d7 i6 U S; p
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' I( m+ A$ v2 ^( r# C% b- U ((CUser*)this)->CheckHonorStat();
( _: ^1 s; t0 ]& {9 C ((CUser*)this)->AddHonorListAck();! K# Q4 ~8 J; Z0 {4 ?* F
g_UserMng.AddHonorTitleChange( this, m_nHonor);
, w3 G: k, n% W7 z4 ]8 j( I#endif // __HONORABLE_TITLE // ′Tà?
% @" S/ s$ c- ]8 n c, d }
" S! x8 v2 A N) B6 a* Z#endif // __WORLDSERVER
$ }9 _: [5 K/ D} 6 }; Z% n$ V2 q4 R# j, R. u
) t3 j' O$ h+ W
然后你进入functextcmd.cpp并添加以下
9 `! t. R. L; z! U( N
t6 b6 w* Y( c# L ^; n q6 B代码:' _2 w9 O1 G1 s1 D: Y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! c0 N( ~8 J/ ?4 g6 X; N% }( h下面插入! g: o9 G) W9 K0 ]7 S& E2 j" e2 {' h0 M
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 }, v0 {8 |! v* b, U. F' o4 Q
* p4 [2 r) U; u- k+ B* z
然后你去( G6 I8 g+ P y; w3 ]" m* n
0 I- w0 j% I5 U代码:3 ?+ k. e9 D2 y1 i& S
代码. F: {) [9 K% b" d9 x F6 N- u+ f
BOOL TextCmd_ClearPropose( CScanner & s )
7 g# V# ~9 @+ P1 }) ~' H, M$ H0 m{1 i# y6 ~% P# f% w* K/ T9 o7 C
#ifdef __WORLDSERVER
! J N. l' g% d) K3 e+ a0 D CUser* pUser = (CUser*)s.dwValue;+ {" L( Z" z& C( h: {8 c& C" v
g_dpDBClient.SendClearPropose();
# t, H; C- _2 m% m#endif // __WORLDSERVER
2 E! Q# v8 I7 E! ^5 L8 L2 T return TRUE;
: N& A' \. U1 ^! Z3 ^}
5 M) z- r: d- O( w* p6 Y下面插入
0 S3 e+ _3 L0 v$ |3 { B! zBOOL TextCmd_rebirth( CScanner& scanner )( F4 D z/ {- O* F
{
1 j2 u0 }/ K2 G, m a& D#ifdef __WORLDSERVER
( o' U1 f# A7 N. {CUser *pUser;% C' ~+ v3 s' o' u
pUser = (CUser*)scanner.dwValue;
/ n- F7 p" `$ {/ aif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 |9 A) b, I# z" h
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);! m/ g Q* Q& b
else( R. `6 w, W! s' Q! x) ~2 F, p R
pUser->AddText("你还未达到重生条件!");
) Y1 a; T6 P* s# v H8 X8 V( q#endif
! [% r5 V8 I$ [. O% s2 A* S7 lreturn TRUE;
7 i6 Q0 F& L) D( g}
. l+ t7 j3 a* K' m* k& C
3 E* K( R9 A( |; r' Q* F" y
; R! J3 G& }- P) ^5 x u# d* H* H! _% {
% l) S0 }8 Q3 T4 o+ V0 p6 v& d- p |
|