|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& V2 i- G& W5 R
! N: j; ^' o1 J. Y+ \4 wMover.h
+ @( F& o# |1 Q$ ~/ N代码:
, i% H6 W. U: X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% q* D# r7 N6 l3 P; P2 q" w7 q
4 x" v% t# s, i+ [下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
8 u( T) c7 ?, E4 d4 o1 ?/ p8 |3 {' E$ Q+ ]6 c( L) ]9 m& d
然后你去mover.cpp添加7 p5 C$ k! y1 n/ \
9 P: Q, y& l, E! X" S) E* L
代码:
$ E6 b) r. Y/ I( Q9 i6 Tvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 `5 n h4 e$ \( @/ f8 G{. x$ t9 n6 t u, x# w( j4 Q
#ifdef __WORLDSERVER
/ d* B' E; O9 }! {# l0 f) z/ m+ k // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- b3 Q$ t! F8 |: J( x4 u MoverProp* pProp = GetProp();/ X1 O: A$ n0 h" w0 P7 L( n
if( pProp )7 g) O7 n$ v* _. Q4 l- I7 |) H# @
{, J) T3 C8 v: f4 t/ m+ v
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 _, S& o9 t0 W& X {
4 l7 S0 n3 j7 ?) A5 m& C AddChangeJob( nJob );
# J5 h& \% h9 o+ R' Z8 T }else{4 o C2 t0 y* j. C7 B
return;0 {& K' X! d% ] D( N0 D
}
/ g. t }3 P/ f( O int nPoint = 0;
( m( _$ h6 i" }# [8 V( } if( m_nJob == JOB_MERCENARY )
# ?& I* G2 X6 H nPoint += 40;. h% D9 |. N( _8 f/ s" w H
else if( m_nJob == JOB_ACROBAT )
+ }+ |4 e* I- K5 T nPoint += 50;) b& I$ i* X2 |' P; N( K2 i: J
else if( m_nJob == JOB_ASSIST )
8 Y% s! ]: r' }1 z) D nPoint += 60;
! z3 S2 r. G2 r9 |- O else if( m_nJob == JOB_MAGICIAN )' J$ p# C2 }$ {% j( B
nPoint += 90;
% Q9 a3 K' R6 r2 e0 ?# m' ^ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): l" M: R% p! F- M9 ]; N/ Q* `
nPoint += 120;/ r# p1 y: Q3 U: N* M! J
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 f1 i+ h3 R7 u U: i2 u# S% ^ n& W
nPoint += 150;) G9 Q; @. Z1 e7 h* o& w5 a
else if( m_nJob == JOB_RINGMASTER )1 {; B q0 z6 M' `* b
nPoint += 160;
, M9 L; Y% o1 G3 t, m else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* O0 E! F& c, t. ^1 D2 z( A; ?
nPoint += 180;& m8 @3 n* b: v. w4 V
else if( m_nJob == JOB_ELEMENTOR )4 e; O: S( `. I" J
nPoint += 390;5 A: N4 L |: d+ W8 [! F4 x
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); e5 ~4 y$ e9 H( D' q
nPoint += 120;3 I$ Z9 j; k; S3 T% ?
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )" x. \4 V" L6 X: w5 b
nPoint += 150;3 d& q9 a9 |' i8 E/ B4 P( A
else if( nJob == JOB_FLORIST_HERO )
' X% F5 B( O, [: ]/ _. h; k: ` nPoint += 160;8 j/ l; t0 R6 G" Y% K5 h0 N, {+ f
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )" c# z8 n2 ~! X4 N- m! a, U
nPoint += 180;) B, e- R4 R8 |/ a! `, d% V
else if( nJob == JOB_ELEMENTORLORD_HERO ), v" s% T: ]! V7 l0 b- u+ O
nPoint += 390;' @4 r* @5 u5 n# Z
$ c& D) S$ u5 B! P p7 V2 K
AddSkillPoint( nPoint );
+ k0 d' y5 O7 b& x! O2 _7 t m_nLevel = nLevel;
7 \" U" E, c8 l# X3 O/ I3 V. C% W
2 y) i/ q4 y# z" V0 o SetJobLevel( nLevel, nJob );& Q. \, i- F/ y
m_nDeathLevel = nLevel;
' [* @# Y$ e- F2 E2 v2 \/ @/ s#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: o! ^- `3 Z$ o9 A+ z3 @" ?0 s
if(IsMaster())
1 x$ F( {+ x2 U {
* Z, g% j& _& {. I/ w6 }$ t1 y8 G2 r int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 P2 Y; l. Z3 \- U$ o1 y" X if( nLevel > 59 && nLevel < 72 )/ {& Z" a$ D( h; |- m+ c; i
dwTmpSkLevel = 1;+ e* A& v8 ^( _, q5 a$ P
else if( nLevel > 71 && nLevel < 84 )
* b5 H. n7 _, p7 Z* s dwTmpSkLevel = 2;
( B& u5 |7 ] _ else if( nLevel > 83 && nLevel < 96 )( R, z2 L. v- B* V
dwTmpSkLevel = 3;
- W. D8 s* C! D else if( nLevel > 95 && nLevel < 108 )
) ^* Q: u% d0 G; o: }: L8 A& p dwTmpSkLevel = 4;( b3 x! A& N$ k$ d7 \+ m3 Z- E4 \
else if( nLevel > 107 && nLevel < 120 )
9 Q r' g' l, X# x/ ] dwTmpSkLevel = 5;
& o' }0 z- p% t ` for( int i = 0; i < MAX_SKILL_JOB; i++ )
% a% E: s/ O+ u c {
' i# D& |2 v. B; A P% |! N& C t LPSKILL lpSkill = &(m_aJobSkill);
7 o9 J7 `! J9 q1 p, S7 b6 C5 v if( lpSkill && lpSkill->dwSkill != NULL_ID )6 J' ], X) k7 [, B4 S! s+ s
{
+ {/ D2 g5 k4 a. k& M( c- N. j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ Z0 ^+ a; h: C" M2 V if( pSkillProp == NULL )* J6 N% d- v( j% H9 E
continue;
9 y3 l* h! R% f: { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ ?& O- I+ X' I; P; c# `6 e. t continue;' V2 A& V5 r, o
lpSkill->dwLevel = dwTmpSkLevel;
( U9 E9 m; B! G' H' R }* A! @% X& A7 @
}
( y) u1 i! H5 B }
$ n+ _$ m- G+ X. K/ M else if(IsHero())
0 Q- u! h7 Y+ }( x, i. Q {4 E3 v5 U. I$ j" B: l3 G8 k
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 E3 @# x' @. R6 A/ U" _2 u K( }/ D
{ , l8 A% `: v! p. V2 k& p
LPSKILL lpSkill = &(m_aJobSkill);
- ~/ J i7 m$ H if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 R. t' b7 t9 Y6 H6 D2 { {' ?+ P8 `3 l! p. d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, K1 N; i- e& U e if( pSkillProp == NULL ). g. J2 I: j( P' |& }, d ? Z
continue;
6 h0 b+ g5 [: j/ p U- j/ o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) h A# x6 e7 O8 s: Y
continue;
' H( T3 f+ r1 ?# O* R" L/ k* W) e lpSkill->dwLevel = 5;# G) I* Z$ X7 l7 \' C- j; y. d
}8 _3 J3 e C8 ~2 r
}
" P, r3 V4 ~/ L9 {; Y/ e" G5 ~7 V: y# k }
* D4 A9 k! S. r& S else if(IsLegendHero())# C) Z) x- H2 ^, l$ U
{
9 G$ i( \1 h% D: x7 G for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ G; V+ Y4 Z, u, p- y) f { 9 B/ l, c; J+ h @- o
LPSKILL lpSkill = &(m_aJobSkill); k2 [% Z* ]1 b4 U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# ] J; T ]' A7 D% z! H) b {
# F6 f# E1 R& x j6 {( r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 d' g& A6 D, m) K
if( pSkillProp == NULL ). _) B" q! V( J. L- G
continue;( k& S/ r( W/ l9 p! X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 ?, L' }+ U* y: x4 m* V2 E
continue;
" O4 L* N& G* L; t) F# Y lpSkill->dwLevel = 5;% u6 C& \4 ~" n' N5 N
}
( _5 W# u! k) b) k7 B4 q3 u# d( M }
0 v. S3 v& L' p b8 L4 ]4 H }( X$ Z: l7 S9 n7 S
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 q! w8 o I( V3 u& H/ N
if( bGamma )' A( |$ ^" d% q4 {$ i& [ Y
{
9 f5 T8 G6 ?6 ^& W$ R4 |/ s- d m_nExp1 = 0;: X. n4 @6 l4 ^1 T& C9 L
}
1 t- E" ~ P; D4 C! K/ Q& x4 T3 r7 i/ {% M$ Y# c' Z& s
( (CUser*)this )->AddSetChangeJob( nJob );
% G7 E0 X3 u! y; }5 ? g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );- I) P/ b' H8 ?+ c
& W1 i) L( W1 C( b! l
5 ^/ G _3 ^' `4 s
#if __VER >= 11 // __SYS_PLAYER_DATA; q* F l6 H- M) H& |% t
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* ]8 X) \/ I/ T, v- G
#else // __SYS_PLAYER_DATA
n) q9 y6 O9 |+ W" F g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* e! m6 m$ C/ K" c1 q
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );! U+ L1 [% L5 K% K) Q% r" c
if( m_idGuild != 0 )
5 J+ Z1 M% S) s; E& E2 u g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );, H4 c. Z# }7 R J
#endif // __SYS_PLAYER_DATA
' `- d9 D- H& O, V6 U: Y SetHitPoint( GetMaxHitPoint() );
i- B% I; ^ G; o SetManaPoint( GetMaxManaPoint() );
: W' l9 \+ f7 t; B' \ SetFatiguePoint( GetMaxFatiguePoint() );
* G3 g# I) ]' A, f) V! _ if( nJob >= 1 && nJob <= 4 )7 {' j) C' L8 k3 E. {1 K( o
{9 X' L5 j+ Q, a9 Y5 J% q1 h9 c
m_nStr = m_nSta = m_nDex = m_nInt = 15;. ~, a3 |! @1 h2 V
m_nRemainGP = 28;
& j3 R0 g4 T# C) p- [0 S }
/ M. S, U- S8 j! \0 w N, s2 k if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- Y. b- _+ r. A+ f' k9 q! p
{
/ _3 u' D* J4 F% V4 F m_nRemainGP = 118;0 F" y4 Y' \; v4 ]6 T& p2 d8 x
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 I7 f- R; k9 Y7 r m_nStr = m_nSta = m_nDex = m_nInt = 15;3 g+ w' t: z9 `* k7 p
}7 \# V, K9 A8 L, E
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ); S8 z, d6 a# y& r0 C; s4 P
{
1 x& g; h. b* b7 q, J: s4 Y CItemElem itemelem;
9 D" ^+ Y, I; f/ ^. H3 ` itemelem.m_nItemNum = 1;
: a7 N( Z7 B( k v itemelem.m_bCharged = TRUE;8 _9 f: {. ?3 [. j! U/ L) [% b8 y, M
BYTE nID;
2 J3 h z6 j; _: X; y5 g. U9 f& ~' X
if( nJob == JOB_MENTALIST_HERO )4 j8 P% O& z: @6 u( A
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) K1 D' ?3 v9 w) |5 ?6 w7 f
if( nJob == JOB_FORCEMASTER_HERO )0 g1 t, n5 y1 w4 S+ y, E# e, M
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% ? `$ n8 Q( T$ z1 N
$ p9 J4 g9 z# b7 E. N' S ( ( CUser*)this)->CreateItem( &itemelem, &nID );2 D0 t+ o6 v( ]* B: S, l! w3 f
}
; u3 e: l: h0 l, [' A5 T" {% [: o g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 ]2 {, O5 b, o3 @# S ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
3 n( y& |& {- u' U" e; @ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. m7 U( K( n* j; K! s5 N( i2 ?6 J8 x /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );& t! X3 {# V4 x, f
( (CUser*)this )->AddTaskBar();*/
7 ]# C# ?0 ]1 |5 L; Z4 o ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ V* D! R2 {( `( R/ x: p4 m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 d2 z( ]% Z( y. U4 V& q
((CUser*)this)->CheckHonorStat();
6 v4 y8 Q& a( d- [1 l! ~7 A) R ((CUser*)this)->AddHonorListAck();, F9 k7 x) y' `6 V4 y
g_UserMng.AddHonorTitleChange( this, m_nHonor);9 h# {$ m E( o+ i
#endif // __HONORABLE_TITLE // ′Tà?
9 V r% |% l% b. f2 G, v }
8 h4 _1 s3 n0 S* d/ C#endif // __WORLDSERVER2 T8 T6 K5 M8 M
}
* C6 e8 z/ G4 B" ?1 F& z% g7 e" U, N: [" Y% a& z5 M# R
然后你进入functextcmd.cpp并添加以下2 {0 s4 Q, o/ C) Q/ J
- t! c+ X( o- I; A; G5 A
代码:
4 z8 o* g- z Q7 X" BON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 F1 u5 ~6 Q3 i
下面插入
- i7 v" ^0 R% z, s+ v% I) m% V" `ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % H b* ^0 p2 O
7 U1 {9 v* R; m. J' C+ L
然后你去
: ]" B P$ r; ?0 B$ X# D
: k K0 O, v0 M. J/ J代码:
1 d5 G$ u4 ~# s2 i3 x+ W2 b! W代码
6 }% R f* s2 U$ t' X% q- w) NBOOL TextCmd_ClearPropose( CScanner & s )9 T% v: k" d G2 @& j& m5 K+ S0 ~* t
{; `0 U$ z: L$ I& ]( C
#ifdef __WORLDSERVER
7 p+ c, w" Z& w/ s- `3 {0 g R; J CUser* pUser = (CUser*)s.dwValue;: Y- E! t" _4 ?
g_dpDBClient.SendClearPropose(); b" g8 t2 j+ t4 c
#endif // __WORLDSERVER
# w$ u' Y/ ]; y' P return TRUE;* [2 h* n- Y& `2 b% P7 V
}
( ~% b b7 Y9 y- e下面插入
3 v# {4 E8 r- |, q9 o9 G# DBOOL TextCmd_rebirth( CScanner& scanner )* f1 {+ i* `' k( y2 n* f
{
! }9 `# v' Q; l$ }1 \#ifdef __WORLDSERVER
' K& t0 |" o% X5 VCUser *pUser;8 W! {/ E( R9 M! E
pUser = (CUser*)scanner.dwValue;0 P" n& X0 J/ x& D* l/ [
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 ?4 Z$ U* M, y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" x1 k p& g Telse* T* x+ c R% h8 N3 ?% L
pUser->AddText("你还未达到重生条件!");
2 o# P" W8 {% r3 o#endif: e; w9 C* I$ `' [' x
return TRUE;
) g, A+ I; R1 I$ h8 ~, v+ t} % A& i, y7 `( C/ c
. s7 v( z' m/ S! ^0 K7 ^ }/ j
3 W+ m4 ?" A% k. Y2 |: ?0 ^. ~
0 Q# x% N" ?5 Y* y# [9 O
( V7 i* l" n$ G- ]. `
|
|