|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 o& d% D$ L/ N% W, L% ^' ^4 h
8 S2 L9 R( Z0 r$ s$ vMover.h
2 H5 m8 I6 H& q4 E0 ?3 L! T2 {" B代码:, F& w+ t0 j( M. U1 k& r* g
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü! T' j% L% E: ~ W. p# P1 v6 k% {2 R. s
& e ^+ [0 I8 }( z2 {下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 @! U# o! Q9 k6 H) |& P$ S
1 G4 m' P7 k8 Z: m" }% D, y" C; @然后你去mover.cpp添加6 W7 C4 i5 U" U( r
, U' ^* ^, t2 b" N+ A( D- u代码:
; ?& c2 H, h4 k7 cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 i( X2 Y/ h& ^0 R{
, \3 P, r! W9 F#ifdef __WORLDSERVER
# ?0 Z+ k# C: o1 Q: |7 `1 v& H0 l // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" |5 ^2 O3 o3 S$ {3 s. |9 ^: l: H$ w7 I MoverProp* pProp = GetProp();% H1 \3 j+ j1 y% d( B L/ W7 c
if( pProp ) L9 H1 v! m. F
{
: m: G) \; t4 ]0 ?8 a* X8 ~2 W+ E if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, q4 [) D: j4 C+ i* a {
6 s' F# d7 _0 T; \/ T7 u6 @- m5 f: H AddChangeJob( nJob );
: U( h6 g4 ~5 q8 b) l }else{
) m& `9 v$ z6 v) E3 h$ M) ^5 m2 U( s return;
; E- @0 w' i- \7 h }
, P& n F( a% Z. p7 I" L: q/ Y int nPoint = 0;
0 P' u" z: w- r if( m_nJob == JOB_MERCENARY )
% C g: F1 m# M* |: S M1 h) f* F: l nPoint += 40;: q' b0 X* u$ c. G0 u7 h k3 f9 B4 \
else if( m_nJob == JOB_ACROBAT )
9 c2 d! O: o$ V) ^8 t nPoint += 50;
9 Q& s$ B4 Q9 Z5 s! F else if( m_nJob == JOB_ASSIST )
' z2 A4 ~" o2 c* H* G nPoint += 60;
$ }( }" R# D& i- P else if( m_nJob == JOB_MAGICIAN )5 z" x- t! C% o* d7 W
nPoint += 90;
7 J- T% B7 t* m1 V ]0 z2 U else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )1 k$ c& \1 e( K6 |7 b- @
nPoint += 120;
: r* g% W E+ U% | else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ M- }- z% S$ k, I7 F
nPoint += 150;
# l; j- N" a5 @+ ~) P else if( m_nJob == JOB_RINGMASTER ): ^8 r/ m7 t& J5 H! v+ F
nPoint += 160;
9 K$ O5 u5 E) r' g- P' J else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 c% y( Q( l: I9 O3 C: _ nPoint += 180;' @& }, I% c6 U8 x5 N. _; ~2 [
else if( m_nJob == JOB_ELEMENTOR )
: t8 f3 [' R* ~; M9 t4 K nPoint += 390;
" A3 C; {# l8 ~! n else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ I2 `7 e6 K0 M- T& L! B8 W nPoint += 120;# U8 @! }* A7 |9 a: `& ]
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); U3 M2 M# {2 d- ?
nPoint += 150;
3 F1 P" e: d( V0 U" e! j# j" D else if( nJob == JOB_FLORIST_HERO )" g9 @9 r& _" R0 v9 v
nPoint += 160;: o0 D5 w" W; Y5 I0 n! Q. g
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 j( j' u( L2 Z' }. Q9 T; L: f nPoint += 180;3 Y+ q% [3 e! @$ R- d9 ?
else if( nJob == JOB_ELEMENTORLORD_HERO )
6 {! w, o6 w% K6 @$ B nPoint += 390;1 i* t7 ]/ [, J7 V' g3 _
' ?+ Z$ V, M6 B
AddSkillPoint( nPoint );
2 ^) j. e1 B1 D: _ m_nLevel = nLevel;
$ I, X: L1 f- C/ S" |
: i+ s5 @$ g) \1 L" n SetJobLevel( nLevel, nJob );+ I) I5 u0 G& W5 I! V
m_nDeathLevel = nLevel;
! h$ }# n* p" q#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, g2 h: R l# ^: U: {2 i if(IsMaster()); l. [- k8 {7 r2 U' h& K
{
. U5 j% o2 @; _! ~7 v int dwTmpSkLevel = 1;//60, 72, 84, 96, 108) H- J) a2 Q, r5 i. `& v$ S
if( nLevel > 59 && nLevel < 72 )+ G* w3 ~) g7 a
dwTmpSkLevel = 1;
j. v, l$ |3 n3 B else if( nLevel > 71 && nLevel < 84 )
4 n5 H3 m* w7 w5 v" u dwTmpSkLevel = 2;
! O U! @% f+ E9 h else if( nLevel > 83 && nLevel < 96 )
% ]' ~5 Y1 V$ A5 j+ N* S dwTmpSkLevel = 3;8 k3 l" U9 r. Z; g
else if( nLevel > 95 && nLevel < 108 )# {$ u5 k! R. B8 a
dwTmpSkLevel = 4;5 t4 K3 ^. c- B @
else if( nLevel > 107 && nLevel < 120 )6 |9 z2 F& x/ ~1 S
dwTmpSkLevel = 5;
4 G7 ^4 v- F5 X, Z1 R# j8 x for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 ]# w! t2 O. Z/ z' ~8 H3 u
{ / j; {+ I T* `& L) W
LPSKILL lpSkill = &(m_aJobSkill);# ]0 e3 v9 x7 S# F1 n0 N ?) d' [
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" ?5 b1 d: {9 C/ `# P {
+ ]' H% p- j m0 R5 S9 U0 ~* w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! M$ G1 @* V$ n2 q- w8 e8 i if( pSkillProp == NULL )9 x4 A; B; p& h- J$ E' l
continue;
' U. W/ ~$ \) y+ }6 X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 B7 [6 m8 E+ F5 C* N
continue;' m! w1 m9 }- i- h5 ^ `2 [$ z2 t
lpSkill->dwLevel = dwTmpSkLevel;
: W, Y: A% ]% i) ^ A! \* j0 Y, T, V }2 O) g! s" F: ]8 W6 u" {' k, N
}
2 a) ` k+ D3 n( |! a' Q( R* O }) y" r" y; Z# z# {; t' p
else if(IsHero())
9 _* Z) {$ v5 k+ E {
. d% J5 Q8 q {. y H" E' _% c6 G for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 }0 o7 h' o6 [1 l$ ^ { 8 o6 x9 e' r, H( W: d7 F/ ~+ o* i
LPSKILL lpSkill = &(m_aJobSkill);- f' o/ h7 `$ y1 x; ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* p. t/ m& L$ e, `5 W9 ^; g; k0 G {
6 x1 r& s9 |' ?+ k" h) O' c2 B; M2 y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 P" |+ w" ^3 E- k
if( pSkillProp == NULL )
1 g3 J; H1 F B2 m: [9 f continue;
2 ~5 R( P" o% |7 B4 C7 P( j' ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 Z1 g* E$ ~9 B
continue;
1 e$ p8 c2 p } g lpSkill->dwLevel = 5;
! s$ L! d4 P9 o( F }
- C! ?( `0 s. }) j4 Q6 f, K }; R, o. m/ L- O4 I/ ?+ M
}" @3 s- e8 _. C2 j5 M% E5 G8 ^ d8 d
else if(IsLegendHero())
3 b- Q/ U4 Q# F1 u. v' L {( ~" }3 ~# U" V& e0 [, m/ m
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : l0 g) ] A+ K, l2 L' W8 a
{ - G$ T& E9 d( q( G- G! m \
LPSKILL lpSkill = &(m_aJobSkill);
! M7 J' B7 H( t5 U3 N if( lpSkill && lpSkill->dwSkill != NULL_ID )
" q" P( s' o- @- }% _6 Q {; W- S, o# F6 D% v) u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& q6 U P# M. ?: a, x if( pSkillProp == NULL )6 l' A' B- _6 S' j
continue;2 Y! i( s3 |% M* @( C( f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" z) J: `1 P4 P7 [2 |: Y1 B continue;; x5 E6 T: {7 \5 G
lpSkill->dwLevel = 5;
" d/ W/ D- |" v, X. ? }
4 e7 t5 J; D! e/ d( d }
; I. S( A' w6 f! w& w) S+ h }
/ Y6 X0 C% H, @% T#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ _$ X( d9 A7 g5 H if( bGamma )5 A2 w3 C+ ]( \9 l! n$ v
{5 K7 W, p& n' Y; q/ R# v; b" O( C
m_nExp1 = 0; p- G8 Y6 e3 g, J* U. i, O4 [
}
& O' s9 ]9 X4 Z6 ~+ E8 O1 M0 U4 g" X
( (CUser*)this )->AddSetChangeJob( nJob );, S* |& \$ [$ q; o E7 H* Z3 x
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 w' A; H5 P3 {% {1 ^( R6 Q8 \/ @+ ~3 x4 ?/ y! H6 s
- R/ ?& g U! e/ w
#if __VER >= 11 // __SYS_PLAYER_DATA6 k1 C+ m+ M# y
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );4 K( ?" E6 t5 N0 M
#else // __SYS_PLAYER_DATA1 @ `* D( L' S: y* d" g
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! B, d9 R: ~; i- y
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );/ f- j; ^9 h. |4 n5 @. `# V
if( m_idGuild != 0 )
# w ~4 a) y4 J( z g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 }1 j2 J: p% h: O#endif // __SYS_PLAYER_DATA
6 H; C5 J; Q5 O; y4 s3 B2 a SetHitPoint( GetMaxHitPoint() );
" u4 N9 j8 _5 k SetManaPoint( GetMaxManaPoint() );$ y! d, @+ X! A
SetFatiguePoint( GetMaxFatiguePoint() );" {- P$ S% p: R
if( nJob >= 1 && nJob <= 4 )
1 r0 U/ T! K1 n; P2 H {
3 }. L5 c) v4 k' j9 Z @ m_nStr = m_nSta = m_nDex = m_nInt = 15;5 V* ^4 `- ^& \4 v \$ @
m_nRemainGP = 28;
! l& R: ?+ L3 @& Z( c }
% x" } C4 y, p1 H) E7 r, A if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 E' {5 x5 g [, E+ K {
8 g, Y9 M P, j. D4 r3 R; g; s. r m_nRemainGP = 118;
' Z4 v# q3 }( T0 T. U! H( z6 D //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& |7 Z2 K, e6 p5 Z; l0 K) _ m_nStr = m_nSta = m_nDex = m_nInt = 15;
' e! T8 c; g" o" W$ R: P } q2 Z, @; }% C4 V2 G- Z
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& y( P1 [% m5 e {
: b+ ]2 y* G" f3 a; o: I$ T CItemElem itemelem;
( X; G$ `) a# d2 e+ V itemelem.m_nItemNum = 1;
1 U/ ]' o2 [# x& _# ~) L' Y itemelem.m_bCharged = TRUE;1 G9 f, }! l/ ^
BYTE nID;; g6 B' o9 X- Q# ?
- p0 q( K( `0 f: c& t/ ~ @
if( nJob == JOB_MENTALIST_HERO )
" H4 o/ g0 w& E( y( h7 |3 [! | itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;/ C/ |) r( c; t. a
if( nJob == JOB_FORCEMASTER_HERO )
2 K4 k, k+ X$ S1 v( C+ d2 V+ N& v4 R itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 u3 W- x! u- S
$ _6 f' R# k3 r( G$ a ( ( CUser*)this)->CreateItem( &itemelem, &nID );
# O/ @0 _! B$ v! K }; ?6 J! ]: C0 R/ ]* d' k8 G
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 B1 }" P# E" \) [: Z ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& ~: s! |* h7 c( ^6 s- M( i1 A% w
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. [1 ?& m9 W8 d9 E
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% r% I$ v9 P' C2 T7 `
( (CUser*)this )->AddTaskBar();*/
3 ^% q" a6 D& P* O ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );. B# d* z4 U' D5 n
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! G4 b, S( y1 g* i ((CUser*)this)->CheckHonorStat();6 h, P+ h. l5 h; u
((CUser*)this)->AddHonorListAck();/ a5 {' p* B' g
g_UserMng.AddHonorTitleChange( this, m_nHonor);
) ?' M( l0 n7 M7 d# x/ }#endif // __HONORABLE_TITLE // ′Tà?
2 F" E5 I9 h, t9 R2 v4 }' Q5 ^ }
% T/ W1 K$ t# p1 F' ^! y" E& ]/ y#endif // __WORLDSERVER8 a* V0 R7 Y2 ^$ j
} & f: ^8 a, w0 z' ]. c- J$ g6 a) q
, h+ Q4 r3 A& W; _6 X. ~然后你进入functextcmd.cpp并添加以下
5 X% L* W; d" i8 m& e# ]7 y8 D6 e) u' }% g+ ]) R
代码:: L4 b1 q& c% [0 f7 u- d8 y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
D1 J% I/ A0 r$ v1 T下面插入9 l8 Y& c: y6 g( D+ {8 k" p& o
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 1 _! g. L* u- p9 O
! F" g* O( S, Y! y/ H
然后你去
8 N" z; h4 R* T$ l$ E1 E3 S1 B
! M9 E' }* d; U2 k代码:* M3 ]4 z. |- O2 L- i+ Z
代码
: t$ n: T- V( v9 sBOOL TextCmd_ClearPropose( CScanner & s )
! T2 p7 s7 M. w& e ?* y{. _* @6 B5 s: T, ^% R7 d a6 I% c
#ifdef __WORLDSERVER1 ` _! z, d2 I+ q! V; C, J
CUser* pUser = (CUser*)s.dwValue;
0 N2 F5 N4 B* p9 ?. C' i g_dpDBClient.SendClearPropose();
/ F) W. ?+ W* z! j; @* u#endif // __WORLDSERVER
, Q, j4 p# h5 C/ J' _ return TRUE;
$ i7 r4 h- h: x. ^! S& s}
' t' D) j8 S% l; S+ S; H" ^9 N5 T下面插入
5 l' ]* F% x) ^4 s0 ?BOOL TextCmd_rebirth( CScanner& scanner )
0 l3 u" ` l' }$ E3 j{8 N* J B5 [' F4 d5 `0 {2 M8 |
#ifdef __WORLDSERVER9 B: Z5 s2 o3 f3 a( b6 M
CUser *pUser;# X/ X! v. a, H# d. R9 }
pUser = (CUser*)scanner.dwValue;: d- Y, k6 C! r3 m* c4 T$ R2 N) [
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" L0 L% c) k2 V6 U }6 F! J3 i4 Z# FpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 \! o: [' J& X
else
0 W9 H8 n9 N$ t1 j5 @pUser->AddText("你还未达到重生条件!");
; k0 Y) f' o% g- }1 o' N/ v6 P8 }#endif
3 L7 P/ V. m' \7 b' {- Y! Kreturn TRUE;$ {7 i7 {& n5 f- K5 O: Y6 \
} 5 ? [; X* @# w5 J: q: t: K
0 M/ F$ g( K3 S! }
- ]/ p/ _# k9 D0 G% p
9 G, }$ A+ M# m8 Z o5 q' m' o0 a( d% {8 C3 ` i
|
|