|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
X: Q8 c$ C: ?: W+ m( O+ Y! \& O& _1 V1 h" [3 j7 ~
Mover.h
+ L& K! d/ n( x1 I( Q F2 r代码:
5 s1 x( S- K5 z* I4 r6 G1 i* X$ M. |找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 x/ a$ ]; Q) l
s' k1 O$ m/ }4 m下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 S) Y; G# k) F
& i1 f+ d7 B4 M+ e% Q$ K0 ~* `
然后你去mover.cpp添加6 p3 x+ C# P1 S! E8 a0 }
% F5 E; m0 s9 g+ h8 Z
代码:+ |. d/ t. o" `/ B' [$ |+ c
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ T! K J# i6 L( \# H, k{
r7 i( h' W; ~9 j: e. a) G#ifdef __WORLDSERVER2 n7 @ f' E$ F6 B/ m1 M: F
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( ^5 M3 L! Q7 f MoverProp* pProp = GetProp();3 E2 l; z0 m- I2 q
if( pProp )
+ _2 R+ Y6 R, i2 A& [+ l( V+ S" L {
- |9 L% c- ?& \7 g! L if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 G3 A7 A! o# H( G* j' o7 E9 @ {. F i& G9 [4 O
AddChangeJob( nJob );/ R5 r! x' G6 N! v& q8 [$ t
}else{2 {% K% E; b: X' k/ K# K
return;, P- U P$ r3 \) ~
}( {. a8 n- B [" K
int nPoint = 0;* `. g, W% q9 Z
if( m_nJob == JOB_MERCENARY )2 B' `9 b7 Y/ v8 e9 o% G
nPoint += 40;6 l. s }1 X) N2 m
else if( m_nJob == JOB_ACROBAT )
0 B, O+ L/ y/ r nPoint += 50;
9 X9 R8 {6 z" {$ @ else if( m_nJob == JOB_ASSIST )( {6 a3 d- H1 {- B$ [& L
nPoint += 60;( p) ]# X+ ]1 h3 |
else if( m_nJob == JOB_MAGICIAN )
6 t9 T& }& u* W+ G nPoint += 90;5 V* b* v* z( r2 K+ R9 G$ i+ S
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 }/ D; n M! z
nPoint += 120;
7 x: f6 D$ P) s5 R else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 U# L$ B; I8 [5 C6 z* W
nPoint += 150;5 e/ k, m" p; N# C9 Z, H1 b3 p# l
else if( m_nJob == JOB_RINGMASTER )
1 Q, z6 [" Y8 T7 r; b nPoint += 160;8 _+ h3 O. b# E
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- j0 |# i u9 E! }- t$ P8 k+ @
nPoint += 180;2 \2 V* _, V3 u2 h7 S
else if( m_nJob == JOB_ELEMENTOR )6 Q2 b4 {9 Q' z. Y ~5 k
nPoint += 390;
7 t3 q7 h* i/ I; w else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 b: X- W/ w: F$ s) n# n nPoint += 120;* [' [; j+ i- k# ?* U, p/ i. |2 _
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
" t W) H) E; n2 { nPoint += 150;
; W5 P, Z- N2 c3 y) l else if( nJob == JOB_FLORIST_HERO )
! x! F }4 Y4 W0 ~ nPoint += 160;
* Y V3 s1 A- |: U5 ?* w else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); K& Z, w8 @$ r& f6 c& N
nPoint += 180;: B# D- |% `2 W
else if( nJob == JOB_ELEMENTORLORD_HERO )
. x& |# Y! H1 d% U nPoint += 390;
/ e% R1 t9 w) K; V. U+ f M) q( S9 H# {5 e5 r
AddSkillPoint( nPoint );
* B1 X/ O: r+ P! s" K% @( J m_nLevel = nLevel;
3 X; Y/ _: ^0 [7 l+ ?/ E
$ a# V* U$ [- E" _1 Z+ N SetJobLevel( nLevel, nJob );+ U, R" U# [3 r/ A
m_nDeathLevel = nLevel;4 h# b) i; H8 H& o) x
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# n5 V0 v. K6 G. |" K if(IsMaster())" f9 v2 E# m( Z9 k! G" u/ e
{4 U2 e( |* B, I! o, j
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1080 R7 w1 v. u% h0 O/ c0 k8 B2 h8 ^
if( nLevel > 59 && nLevel < 72 ); E1 \/ _6 R! E% N
dwTmpSkLevel = 1;
, j/ v( f( h5 |3 |( k. | else if( nLevel > 71 && nLevel < 84 )9 j/ b7 I) Q. W
dwTmpSkLevel = 2;
+ Z( S3 U9 E, z& X else if( nLevel > 83 && nLevel < 96 )
' i! T3 c8 O+ }% G- t; K dwTmpSkLevel = 3;$ H& t3 M# P: ~; H' r/ H+ ?) k- a' j
else if( nLevel > 95 && nLevel < 108 )
" u. A$ {3 A5 |8 k dwTmpSkLevel = 4;% _& j% \8 {- J9 U; Q: i3 A4 E0 p$ b
else if( nLevel > 107 && nLevel < 120 )7 M7 u7 u: ~6 d( |) y
dwTmpSkLevel = 5;" s3 n4 E& M+ N @0 ` m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 ^( O q& n( F { 1 d; ?4 P' K" x0 ?) D
LPSKILL lpSkill = &(m_aJobSkill);
5 k7 f! X" P, u2 s" T1 x. | if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 u0 e s" }' b {
1 j' Z; V; z% f' S7 ?* X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( f, F: W. G/ |" Z7 o4 h if( pSkillProp == NULL )5 t |/ a. I8 @) s" d6 i
continue;" L, }- c4 I* V5 ~0 v) A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); j- Q0 V, S8 b! g) e
continue;% J8 h5 h6 `3 [' R
lpSkill->dwLevel = dwTmpSkLevel;& e2 K0 R) f9 n/ {* ~9 P
}
1 O# @0 w/ T/ M5 I( {# A }
: P1 V+ L. ?" A }
3 q7 w* t& e; _5 @- }) R8 \ else if(IsHero())
4 Q7 r. f0 D8 O {
: E& @2 l: l) a; u' N0 J for( int i = 0; i < MAX_SKILL_JOB; i++ )
( \; v/ C W6 ^8 j {
& s; u w# c8 O) P; Z/ e8 m LPSKILL lpSkill = &(m_aJobSkill);1 d6 z' W4 t& W* G4 y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* h2 Q5 s; s0 a/ _' V" I9 u7 i {
9 r6 f# D6 K& Q1 X. s3 L2 Y& h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , ~2 ]. |( q# E1 o) k
if( pSkillProp == NULL )
! s$ r; `& Y W# g2 g continue;" D' e9 ^9 ~' z4 R" ^; e' _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( [8 a. A. G4 X* ^ Y
continue;% a* V; k' p% y- G+ p% @! Z6 I
lpSkill->dwLevel = 5;
7 A& Q& L6 e% a! u% f, @# C }
2 m8 c: [( [ Q" A1 o0 W }' ^& I4 H+ B4 r+ n( H* l# U
}7 s! Z P7 h, L
else if(IsLegendHero()); f+ @4 k6 h' j5 D! d
{
& `5 d; d4 M% M- b for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ d, H8 f2 {1 r1 z {
8 J. W$ i" f" t LPSKILL lpSkill = &(m_aJobSkill);# S3 [0 g7 s, N3 r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; ]( R+ ~0 Z. n1 i$ w' l {
8 } f, t1 [4 T ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 l# ?, Y3 ^ o+ s
if( pSkillProp == NULL )0 H7 W" j" b, h5 U. D: M. Z! @, ~7 J
continue;- {" n* h0 a% z7 n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! U C; q" o2 \0 U7 T) p
continue;2 G" x- a6 r5 h* C. ]
lpSkill->dwLevel = 5;7 e; @4 k# I- B% i" O" W
}* j. M3 y2 l8 x9 R' H/ i
}
`! U# ~4 m) X, c5 f2 Q }! ^( v3 O& U: g' V+ a6 _+ _) P
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, f' L) j+ c) ?+ x' D( D- Z if( bGamma )( D* G5 N! m$ m) r# O1 n( u' o
{
- E( L! Q: E% L* t0 c- T5 C% i$ f; V m_nExp1 = 0;1 J/ G7 G9 g1 u$ P0 v9 X
}
/ F/ h9 }9 m7 a0 J; y4 r! c, L1 r0 [) G* o9 B
( (CUser*)this )->AddSetChangeJob( nJob );3 Y& K. k% N1 ?9 S1 u: ^
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 I8 T2 ?8 S- N
/ w$ H9 A- ?! Q* A( c5 ^3 w
; g6 S2 v5 o+ x
#if __VER >= 11 // __SYS_PLAYER_DATA
% t8 F( C% c2 i3 y" n1 p4 f g_dpDBClient.SendUpdatePlayerData( (CUser*)this );9 V5 C: V, F0 W: l& a& y: F
#else // __SYS_PLAYER_DATA: c9 }! u! h- W
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );$ |$ w& w* ^6 \
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 ^9 F: Y2 @$ h3 ^- u6 O7 [3 e0 P8 w if( m_idGuild != 0 )! L( S, P$ N1 r5 \- g
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
# f0 x& y- x& r% U1 N0 ?#endif // __SYS_PLAYER_DATA
. _- e4 }4 o' m" o/ N0 y2 a* Y SetHitPoint( GetMaxHitPoint() );
9 H( ?, N/ E1 b) K5 I7 } SetManaPoint( GetMaxManaPoint() );
. [3 y) L% v2 B SetFatiguePoint( GetMaxFatiguePoint() );
. D3 d6 W, X S, z" `; |$ I if( nJob >= 1 && nJob <= 4 )9 I4 P' x# d. |; d7 {
{
- ~) e' T0 L, e s, q m_nStr = m_nSta = m_nDex = m_nInt = 15;0 j: d( c. L( P! ]
m_nRemainGP = 28; W, i! T5 {- w2 A
}
7 z& w) x2 j* j# t& H8 W if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 V, D! L0 f$ h
{ }( z4 l6 Y) t+ n
m_nRemainGP = 118;8 | U+ K0 u, ^$ x6 {6 i' |7 s
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
, t# Z% t$ R/ U+ _ Y. P0 E% Z m_nStr = m_nSta = m_nDex = m_nInt = 15;2 j+ P+ U% V& }+ C
}
; N+ O8 v* \% ^4 P# ~ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )$ H! {4 e! P' p" g6 P u' C% }
{
2 |) y# `& h3 s1 R CItemElem itemelem;
2 O0 ?, \' s) ^% U itemelem.m_nItemNum = 1;
1 L% r' n3 C6 ?7 J itemelem.m_bCharged = TRUE;
& f$ J, j3 i w3 M; f' E1 i( @8 }0 V BYTE nID;8 M$ Q1 c* g1 p! K2 O
9 L5 S h, ?% [% J& x$ J
if( nJob == JOB_MENTALIST_HERO )
0 O* \/ g/ Q5 x4 D itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;. z, j0 p6 g* F! @/ _
if( nJob == JOB_FORCEMASTER_HERO )
( C! Q& m% u. j itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;6 [ Y% V" ^% Y
" ]7 y6 D! a0 H3 J. q0 \/ \) b. o4 o
( ( CUser*)this)->CreateItem( &itemelem, &nID );* R; x6 @; s4 B5 d
}
6 l4 @6 Q7 x) X$ F+ l g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 L* q9 R/ t- S( u" F
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 _) b9 t0 `1 X5 ?6 n' j/ r4 i) h ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );6 L- `$ D H: ?% p1 p; h
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 n: [0 W5 N8 u
( (CUser*)this )->AddTaskBar();*/ p' l, f: j: [: R8 B
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- u) G! h C; L3 v% ?3 x8 b
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: H/ J( E$ g' X& z* Y ((CUser*)this)->CheckHonorStat();1 a- f7 [4 {9 N o/ Y+ m9 q& E
((CUser*)this)->AddHonorListAck();
/ R0 n/ v$ T) p- t7 m g_UserMng.AddHonorTitleChange( this, m_nHonor);
. S9 b; p( E# @9 m+ l! {- ^#endif // __HONORABLE_TITLE // ′Tà?! R8 r. d5 b6 b) r( z
}
( l! w4 X4 C. H v. S Y% R7 T#endif // __WORLDSERVER
' {3 ]/ b1 \; C7 i% G- H! M} ; ^6 V3 V; X# c* _% G
8 u1 ~) f$ ~0 E) I$ V1 R/ l然后你进入functextcmd.cpp并添加以下6 b" L; n& u z8 @. S$ M
! g# s" f/ y. Y: l1 c2 S
代码:
, C4 E: p8 E0 w. f8 H# L. H9 pON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )0 s8 E+ |+ }3 S$ F$ T8 W
下面插入% C; _, `( P: ]; h
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 Q0 t- `" B* w( Z( N5 e
9 v' V5 `' W" _: v- p; ?; e& N然后你去$ }( \+ B" u+ [7 t
) o. [* F+ n3 b( h% `! J代码:
; {- d9 ~; V4 D, H9 n1 Q- E代码/ d: v/ v) V& g* N: {
BOOL TextCmd_ClearPropose( CScanner & s )
1 z+ r6 r! o( b2 b: v5 S1 V+ C4 g8 Z{. `' s; S" h; n! x5 R- I
#ifdef __WORLDSERVER
- p9 O9 i3 y1 C# s: M7 G CUser* pUser = (CUser*)s.dwValue;. C. O1 Q$ d( n \$ Y
g_dpDBClient.SendClearPropose();
/ c; F! d/ m' Z% r#endif // __WORLDSERVER
+ g) F2 h5 r8 J. C, { return TRUE;
" U+ R) F; J$ O+ e$ V9 e}( r& i% k' A5 n( z
下面插入
4 m5 Y, o/ F jBOOL TextCmd_rebirth( CScanner& scanner )
; ]5 i) B9 [( U+ ?8 I# D3 y{! W5 s; f) n0 U& ^% b
#ifdef __WORLDSERVER
# Q) N/ ^* }# e0 z* mCUser *pUser;1 O- Z" [' O' g& v, k& z0 p _
pUser = (CUser*)scanner.dwValue;
+ Q' o1 _# g7 y$ Aif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
9 Q% D p- K3 f6 }( DpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# I3 Q1 U& Z5 O( q- M; G% j' R
else
# k$ ?* Q) V+ K: x0 n* l) g1 VpUser->AddText("你还未达到重生条件!");# G" ?; F# N/ i) n, @/ d, j
#endif3 ]' F& @# |2 u6 m) I2 A
return TRUE;6 y7 z$ L; Z% C0 S; j9 g. a
} 7 _4 j+ O' v* \" q: [$ H# o
4 r/ O( @# C( Z! w" ?
. H4 E6 w( P) k' r7 B" G
4 _: o+ `) \$ E/ c' e6 Z! X7 u7 e* M
|
|