|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ t( R' H8 ]" k
5 U! ~ y6 r z; f
Mover.h% G- M& b: e5 L' f2 E( G& X
代码:
: C. e L6 f# v! i7 j" M3 H- ^找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; J7 c0 P! F3 c) ^$ C4 W5 G2 a. O B6 Z }- C9 O4 {
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
0 w% o2 o2 j8 S5 S& T9 |( C0 K
$ Y6 v% s' O* I: ?' g然后你去mover.cpp添加
2 r3 d8 h" H5 e: ]% N+ v5 r- G1 u
( P4 \$ l# o* ?' L. S/ I代码:
& J ^! b6 ^, \5 bvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 m; I7 i. X+ _* x8 W3 @0 n4 Q
{% G: u- c8 D. h; B/ L
#ifdef __WORLDSERVER
# b8 y( J1 @! [6 W0 h7 S& g // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- s% F& S+ S: ]. S u6 J
MoverProp* pProp = GetProp();
/ p$ {/ F, z _7 B# F if( pProp )$ ~1 \; Y# Z! r8 |4 \
{& h G! Y' m6 @- ]) Q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* z4 o2 c; L% L" Q* r6 I {/ z* B/ z2 ^' c# d$ @8 h
AddChangeJob( nJob );5 |4 z3 A0 H3 L8 v
}else{
7 u" a7 R; H, x4 H4 [1 p2 s* a return;
+ h, t; ]8 R1 R# U3 u }
- x) T# B' H v/ R. s2 B$ J$ b int nPoint = 0;
2 }9 R" H* R7 I. z" i if( m_nJob == JOB_MERCENARY )
% m* I# L# [/ u- E9 v nPoint += 40;) C1 G# q3 n! \, o1 l2 b
else if( m_nJob == JOB_ACROBAT )" p8 f- W0 F Q0 C
nPoint += 50;& L; _; E; i8 L' h" D
else if( m_nJob == JOB_ASSIST )
6 A9 |$ G% s9 x1 O0 ] nPoint += 60;) ~+ i6 z- Z6 S' T, A
else if( m_nJob == JOB_MAGICIAN )9 B8 b5 a! t4 ?8 a
nPoint += 90;# H7 l6 o! F0 \) c5 P
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% [1 x5 i: ?- [1 r1 h6 N
nPoint += 120;
/ h l9 l9 l& K else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
; p M+ Q; y$ B1 ?: s& ]) H nPoint += 150;& ` [0 ?6 D1 P. E
else if( m_nJob == JOB_RINGMASTER )9 U$ f. C2 J% D! i) X" B5 h
nPoint += 160;% F7 E+ Z- i& f; `. S
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ Z4 A9 j# x# G( b6 P2 H! M: ~
nPoint += 180;. Q: V; W3 \1 H. r4 @' ]( i' } E9 R3 o
else if( m_nJob == JOB_ELEMENTOR )
; a/ V" t/ |3 s3 }. W$ C: E nPoint += 390;
" q) E( B; w# A, R/ j$ x else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 A6 Z- i8 }7 a2 ?$ A2 D# d: Z2 E" G nPoint += 120;& y: q- b" k3 k0 f$ G4 X7 w
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )& D% i+ @/ Z/ T
nPoint += 150;+ N+ n; k5 P( J8 Y8 O: T
else if( nJob == JOB_FLORIST_HERO )
0 h& Y; f, g9 S nPoint += 160;
) L) r- M% V& j7 L! c( B$ S else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )* t( K2 D9 l6 G* b1 x+ O" E. g
nPoint += 180;' `% a: q0 V: P
else if( nJob == JOB_ELEMENTORLORD_HERO )
( Z" g9 [" r/ }& i9 }! k1 } nPoint += 390;# M) c+ g4 W( @0 S7 b2 b& I
/ [4 f8 W) r) n4 T AddSkillPoint( nPoint );! H5 I p7 M9 ]2 W+ h0 t
m_nLevel = nLevel;7 O; e- T: u9 n+ |4 s" Z: M6 V
/ J7 o" g' Q8 B
SetJobLevel( nLevel, nJob );
: D0 [) `+ ^$ F: r m_nDeathLevel = nLevel;- a @1 [- ~' x4 x% y1 ]* t/ D
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' }* T* B" T; u) K7 g if(IsMaster())1 ] J8 s+ ~& M9 V
{; r2 z# n+ Q z# ^. r) Y7 l
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- m( n" ~' r B7 y9 c! M
if( nLevel > 59 && nLevel < 72 )! `5 d! F# O7 @" Y0 @8 @
dwTmpSkLevel = 1;% s4 x- z' v+ }" B! i
else if( nLevel > 71 && nLevel < 84 )4 z: |$ {* G$ v% a& z1 I7 k
dwTmpSkLevel = 2;
0 r g" K1 [3 \% ]: ~ else if( nLevel > 83 && nLevel < 96 )# T( e: q2 t) S J2 P
dwTmpSkLevel = 3; F* P/ d( p& O
else if( nLevel > 95 && nLevel < 108 )
# I5 ]) |7 J$ n; Q0 P) q dwTmpSkLevel = 4;
( T5 L+ c1 ]0 w, q3 {0 J' S else if( nLevel > 107 && nLevel < 120 )
" P. ~: F6 e4 l3 s dwTmpSkLevel = 5;
1 a; `+ y* a8 @" V for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ \# G5 I5 M' @8 |: B5 e {
. I* U4 N6 C; w$ H0 B LPSKILL lpSkill = &(m_aJobSkill);
( p* O0 Y" h* ~. w0 A; I* W if( lpSkill && lpSkill->dwSkill != NULL_ID )# e; c) j, p1 m9 n" G: \
{
% f2 k9 D7 X# l C3 ?) A1 J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : C6 [! k* b: P' y, Q4 Q, _1 l
if( pSkillProp == NULL )% D) b6 [( N/ d/ r
continue; i- t. y) }$ S' P. S$ \4 N! O- j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ \# m$ X/ j. ^( U2 y
continue;
8 f4 l2 m- G/ d3 ?4 {3 U( u lpSkill->dwLevel = dwTmpSkLevel;
~; W( S- K! f! S: x% L. s }
; F" u& L% \' j8 m5 D }
4 \) x, N* z! A% @8 a: l }7 a ]# J4 v; r8 Z3 Q, T7 r
else if(IsHero())
; ^# i$ p4 X" f5 t- b# ` a {
: {! X& g9 N+ w: _; ] for( int i = 0; i < MAX_SKILL_JOB; i++ ) / I% [- N7 F, _0 U' J
{
4 i; n! v' A% x7 N LPSKILL lpSkill = &(m_aJobSkill);
! z" x. [+ i: L2 T6 V" i# {4 [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
* X1 K& D( k' Y0 j {$ W" W: c, k! O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! u8 }6 C( j' A. p7 g. V if( pSkillProp == NULL )9 K+ }9 I, {7 c. {' ?
continue;1 u) a! P' n, r5 k' A+ z8 G+ y& i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ x |, y: \" x9 x$ W
continue;
& b C, j) d" K- o2 l+ w lpSkill->dwLevel = 5;& U* R- k# h3 _( e( s
}
5 v: Z) Z+ C2 V- t" t }% b6 g- `7 K7 G; V4 l4 I
} @; D7 N& n, [! [- i
else if(IsLegendHero())
8 c. z0 c: s1 Z- |+ ?0 j {- q9 w6 B/ O- e& V# b& ]* N! e) N
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 e- s7 U7 {* @" Q, K
{ 3 Q5 z, H4 C [7 U1 W% e/ `
LPSKILL lpSkill = &(m_aJobSkill);: h) R, Z: G/ N$ R6 k
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 }. L! y# \' c" g
{
7 N# ?3 n& F* ?) U7 r) f6 ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 e8 ]0 P5 V! D. d5 y3 _: R6 ~
if( pSkillProp == NULL )! \2 J1 E- f# A
continue;
' c2 v# I# y1 j5 x/ C4 P% F9 ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 e3 U5 @( F& W+ l4 `/ V
continue;
' n/ M/ M# w e" Z lpSkill->dwLevel = 5;
3 R& g. M4 ~: \- d% k, s }
) |; i* v& C J; e }, n2 n2 z3 A% [" v( c/ j: i
}; k5 \" \1 U( _- Z3 e* n. m
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans V7 j. d3 u# ]. Z1 u1 X8 t/ g
if( bGamma )
2 ^+ W: ~! Y( O Y4 {1 U! p6 r( j: | {( t' q' j/ M0 T% N5 d
m_nExp1 = 0;1 `* x* y4 d" y( L; p) j
}) b' O4 L8 O' b) q
: l% W' O# r* l: R- X
( (CUser*)this )->AddSetChangeJob( nJob );2 X6 o% P4 T8 y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 ?( b( F6 k7 k1 Q
8 @( r4 e: T u; u; K
5 N$ h- h+ g. p( p4 M8 ~8 ]5 ` }. V#if __VER >= 11 // __SYS_PLAYER_DATA" D1 v! b" L: A& |- A
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 c/ |( s6 a( I6 i
#else // __SYS_PLAYER_DATA
1 |( {8 l1 S: |+ N g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 \. Z9 d" W) O* z8 y& H g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% R4 o) O1 G% r2 U7 `
if( m_idGuild != 0 )
) T8 _, |9 X4 s8 D2 F2 b. G4 I$ \ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );1 n u# ~( j$ f' _2 K' w* o
#endif // __SYS_PLAYER_DATA
9 w' J. f6 p" T SetHitPoint( GetMaxHitPoint() );
1 l; ~& u6 c: x6 I- }5 F) z7 i9 Z SetManaPoint( GetMaxManaPoint() );
( \( }" d5 x8 I ? SetFatiguePoint( GetMaxFatiguePoint() );+ J- e' }6 q) m6 a
if( nJob >= 1 && nJob <= 4 )
& v E5 k3 t7 L# x! |9 T9 J { n% v' A1 Y5 S! r2 G" c. ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;9 `" ?( F" k- m2 N! \* C
m_nRemainGP = 28;: W6 [8 V" V) v; \/ G( N, V; R! u! h
}
5 U d( N4 r1 e if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* V. K- q& B* e: q) Z8 r {" S; g8 R* [- u+ `6 j3 h \5 b, E
m_nRemainGP = 118;& v/ D2 O7 N5 g# y/ w
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; ]/ O8 e7 B7 M3 t, g: W2 _; U m_nStr = m_nSta = m_nDex = m_nInt = 15;
j' `" d0 R2 B% ` }1 t- n/ W4 V% s8 n! V3 N/ q- R" S
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 I0 J- A, G" ]% `6 W( x
{
( F( ?) M+ X2 @ CItemElem itemelem;
! C% m. O6 A% k* a" c+ w itemelem.m_nItemNum = 1;
8 j, o2 g& H4 e; B: O itemelem.m_bCharged = TRUE;
& h; ^! ?! P% o3 `' e& s BYTE nID;
8 L- |- |) ^0 V" c T5 n7 U# B5 [2 E- A k) r( I( p
if( nJob == JOB_MENTALIST_HERO )
& I/ |; {: i7 E* p4 K. e6 C itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 P1 T2 O1 Q5 O& K2 N+ |
if( nJob == JOB_FORCEMASTER_HERO )
* u8 `1 I9 ?9 c9 v- a itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 L9 }7 s7 `* s4 A: C: L9 e9 }# \
( ( CUser*)this)->CreateItem( &itemelem, &nID );+ A: K* ^: q2 r9 l6 w E7 i
}6 v& a- a4 ^9 j
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ b3 p5 Y0 e5 g6 |5 n ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 f5 o$ F$ }. Z: l& G7 m% }
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 V7 N6 E& b, `
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& f2 {: A, u3 q2 C6 K3 P. @ ( (CUser*)this )->AddTaskBar();*/
9 j( l# X& ~* k& A ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );' I9 f: Z1 X! G
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà? i5 V9 [! {, C
((CUser*)this)->CheckHonorStat();+ W# y! Q7 d6 Y7 ]
((CUser*)this)->AddHonorListAck();
1 B+ d/ V% k' N0 L7 `+ m+ [8 Q g_UserMng.AddHonorTitleChange( this, m_nHonor);
( b" Y5 R, |1 f% q, e/ B+ ^#endif // __HONORABLE_TITLE // ′Tà?
# c L B9 H9 m. }, M8 D, p- O+ }- i }
* K6 C7 m5 l4 i#endif // __WORLDSERVER
# l. N* ?! ?' R8 E% U' D2 G! i}
$ V" [* x( _$ i* h. ^* V* @9 J! }3 J7 T7 N+ q& M' k# B' g% I
然后你进入functextcmd.cpp并添加以下1 k0 E2 P% r/ E9 ^* Y; W% K
0 J8 z8 S" r( Q* F+ O代码:
8 e/ w! P( g( T `: MON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& K2 \7 f; E' O4 N
下面插入! J( s$ q2 w9 ?2 Y' L. K5 o1 l! c* S
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 s% b/ Z" G1 ^! y6 x/ _0 a4 h) {* t5 R0 h$ g6 \
然后你去
% L+ d, Y8 q6 C7 k) B6 E2 a6 u) f! k" G2 g! C! ?. Z! E
代码:- s) x' S6 G9 o4 g
代码' L" |5 w+ [1 l& y, _* W2 W# y
BOOL TextCmd_ClearPropose( CScanner & s )0 h. ]- l6 a8 k5 J; }) s
{
8 o8 O3 P, `+ A0 Y) H#ifdef __WORLDSERVER5 D; e$ _# ?, w* P' p
CUser* pUser = (CUser*)s.dwValue;5 t( z% k1 _# M
g_dpDBClient.SendClearPropose();
, ?) i! x! \4 W* b8 d#endif // __WORLDSERVER
. r# I* P t6 D1 m2 {6 T& O1 h return TRUE;3 L6 @: o: |. b& N2 H
}$ K" L# c3 k `) w1 N* R
下面插入/ P" X; m% p/ \6 |) T8 b" J
BOOL TextCmd_rebirth( CScanner& scanner )
' w M+ W. @( j( a{; _6 G9 e1 |' m
#ifdef __WORLDSERVER
( H8 T" H( D/ z/ Q9 PCUser *pUser;
2 E$ \) ?3 o- v b* TpUser = (CUser*)scanner.dwValue;
9 ?9 `. J- {9 ?* l3 tif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- } `. _& f3 T" j8 zpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 s! r7 g* _2 ^$ Nelse/ n$ p& x; }( W' t* n
pUser->AddText("你还未达到重生条件!");/ x" ?. [% g3 l# z, |
#endif' m. {4 p. E& @! P* [" t- R; Y
return TRUE;0 k0 _' d( m! j5 _3 R- j
} $ H2 C3 Z4 v$ E. j: ]6 z
, W- j: L6 w2 b
* |& `6 u9 V8 R3 Y, |. w1 J3 b: @" C H# ^
* Q" a1 d) l5 w3 a" G# y5 I$ I9 Y |
|