|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
5 L) \. l& Y; p% U
# `: w5 m7 W* |) R' I tMover.h3 T, l( T( L8 v! m
代码:1 j" Q; ~# d+ P+ A$ g8 [
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: i, B3 v" [6 V6 V1 y7 R0 M! C8 a9 R
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 y$ Y/ U: r1 L9 F# t1 Y
# q) k! ^- j& p! ?7 i4 q
然后你去mover.cpp添加 F; L: K3 k- @
) w% y1 v0 ?7 C: x2 o( z7 j2 l1 l代码:
D g/ [+ Q( u6 X' ovoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' @2 x9 n( V+ J. v+ i# l
{7 y4 x. f7 d- o# J
#ifdef __WORLDSERVER7 n6 o; u& X; b# A5 |( d3 F
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
7 a( ]2 M0 K% [% A i, t4 P MoverProp* pProp = GetProp();3 u$ T/ U7 b' w) K
if( pProp )' d9 N0 E1 o3 g0 f
{. y& g# d7 n; f- u, R1 f- d
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
: i0 r, r% ^) b {& N" k' \0 L' W
AddChangeJob( nJob );8 e+ v3 R K% r4 p
}else{" m1 e7 M( ^; k& u. ?3 C
return;3 R+ l+ e k2 b
}
' T+ ~2 ~3 m8 y7 | int nPoint = 0;
' [" I6 B! a# A$ O if( m_nJob == JOB_MERCENARY )
) i" G/ z2 x1 E3 Y5 X, {& K' k$ g2 @ nPoint += 40;
; o8 g6 b* m6 n4 I7 C% { else if( m_nJob == JOB_ACROBAT )
) q$ `# d4 w: }; H nPoint += 50;
) Q. H9 d8 B6 s. y$ [8 E# k5 J else if( m_nJob == JOB_ASSIST )
P$ y. V( `% T$ A' f& i7 T nPoint += 60;% x) g6 \# K% d E
else if( m_nJob == JOB_MAGICIAN )/ k H; |% Q r7 {1 {' L( V
nPoint += 90;) ~ `( @. Y9 q) ^, [
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) y5 t$ H/ s/ d3 J nPoint += 120;
- x# u8 H& u; c6 s5 j( ^. x: b else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, Y+ X- v5 e. b9 x9 m' F+ ]( v nPoint += 150;
$ Y( N3 s, ^: C3 J else if( m_nJob == JOB_RINGMASTER )
( K! G3 W* Z3 m+ q& _9 ` nPoint += 160;
. A2 M5 P; j0 ]: C2 S. e else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- a1 n: f. Q5 f. @' Z nPoint += 180;& E0 N7 a d2 x3 I
else if( m_nJob == JOB_ELEMENTOR )
4 j1 p5 Z2 D* _0 b5 H. T+ R1 ?1 K$ Z# z nPoint += 390;$ k; x. i6 A, }6 z
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
c2 h% E9 T$ k0 H4 x- Y m: M" v nPoint += 120;
2 A! N6 D7 X9 F8 g else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
V9 ^" H' b6 z6 d# B3 L |/ l nPoint += 150;
4 }) ]5 b8 }0 w; X) N else if( nJob == JOB_FLORIST_HERO ), h0 k) f# A0 w3 U# y$ V# s& p
nPoint += 160;
* F+ `: x' ]$ { `3 ^3 P% Z- P else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ R( t0 e2 l0 x4 y
nPoint += 180;
% O. V6 N& i L3 v( i2 l else if( nJob == JOB_ELEMENTORLORD_HERO )& _$ b. {* N1 J- n$ I5 x1 w
nPoint += 390;
3 v9 a" S& E' _9 i/ L& X
) z3 f* P# w. n+ Z AddSkillPoint( nPoint );. [/ J1 w% |0 [) t5 X
m_nLevel = nLevel;
& W: v, A: ]7 @$ N, }: v2 T9 q: {6 P
SetJobLevel( nLevel, nJob );. O, K# C7 o, | Y. n4 G( m; U- c0 J
m_nDeathLevel = nLevel;3 Z& X$ R& o' l ~" |, r
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) R' M3 n" \9 C# k, W
if(IsMaster())
* t" Z: s- w* ^( y {* ~- F O9 T, g3 Q R' m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% ~% u: [3 F# G+ j7 d* O' V if( nLevel > 59 && nLevel < 72 ): i. r: H, a& q9 `6 E/ T+ i D; }
dwTmpSkLevel = 1;- J8 Z. y: j8 h) H
else if( nLevel > 71 && nLevel < 84 )- E9 w2 @7 O( r9 F2 m
dwTmpSkLevel = 2;% J: f. j# F# T
else if( nLevel > 83 && nLevel < 96 )
- g8 R- f1 W% i, v& X) `! V7 k( Z( E dwTmpSkLevel = 3;& j+ E f3 s9 g: @ x
else if( nLevel > 95 && nLevel < 108 )' c& T. n& h& [, G3 u
dwTmpSkLevel = 4;
( ]- {4 Z w/ ]0 o else if( nLevel > 107 && nLevel < 120 )
0 u/ E' _( n* x dwTmpSkLevel = 5;
) }9 x8 a& `8 [4 D2 y- L% L for( int i = 0; i < MAX_SKILL_JOB; i++ ) " H. X, {5 m D! ~! u/ j
{
+ L( F2 S: e" k7 u2 A+ l; K LPSKILL lpSkill = &(m_aJobSkill);
. Y2 A0 y0 W; d. U! Z if( lpSkill && lpSkill->dwSkill != NULL_ID )
* ^" [( ~/ t; X) z8 `& c {
, u, S; A8 `& G7 j' j5 c( U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; a, Z9 E% h, ~! s2 Q9 x
if( pSkillProp == NULL )6 P. Y; v" G: Z% W0 I/ O
continue;! o5 B" E1 K6 i" r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ z' M7 O# O+ s, p4 z; M5 N
continue;
0 G' N( T4 B3 h! h. h0 r8 b lpSkill->dwLevel = dwTmpSkLevel;
" q; I3 |5 ]" @* l5 V" ?/ t }
9 b: O8 r q# H4 w }
# A$ v0 {: |2 K }1 s& d& _. u- ~ b
else if(IsHero())
* B7 E" Q. Z5 A3 u! _ {! M& t0 ?, q. b4 J1 x k# m
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 h7 t5 O5 I1 Y% R" r) Z( r
{ W# m$ v) T8 a- H- C
LPSKILL lpSkill = &(m_aJobSkill);, U6 ~: h" t' M6 U$ o
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 v2 y+ ]/ y3 V& G p
{- ~$ ]0 }/ r* W7 J- E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 N1 p* y! f2 G+ j5 H: _
if( pSkillProp == NULL )0 [$ r; x2 c9 h
continue;6 V, U v" ]7 O) K8 O! K1 }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 C# Q' `: \! m" Q' [( _/ h
continue;
0 y) @. i5 Q; p0 m lpSkill->dwLevel = 5;, T* K5 z- b" G, u9 K9 ~, U
}
) P9 N) C6 s8 E) |8 ^( R8 x }
- `& W& V9 s6 M2 o4 o5 p, i* I }
5 f% ]3 \* r5 f7 C else if(IsLegendHero())+ i8 ^. {9 j7 r' ]+ t1 k- U+ k& d
{2 G) b3 C, \5 T
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : v+ o; \3 K+ k; `
{ 5 f" e h5 x, U. m: q
LPSKILL lpSkill = &(m_aJobSkill);. g+ q/ O2 `$ O
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 b! ?2 S B3 W/ _. a% P4 x7 l {$ `0 f6 l1 H7 E" e/ x, F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % {7 I* U! t3 L! h, Q% \; G
if( pSkillProp == NULL )
7 k- P' h" ]# `( ~1 z8 b continue;3 D3 Y: n1 K, i: c. M: J: J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
M4 U. h; [% {& r continue;% ^* P- O* L; S- k0 P
lpSkill->dwLevel = 5;- \6 ]8 v6 `( @) u4 J
}
x9 H0 P3 t9 Q3 u1 ^7 ? }, J! [4 T8 p( _' k6 x! z% }2 Q0 u
}$ U; V5 ^5 z5 @: V; Z" E5 W
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( u$ V% O: P9 P! E3 i" S
if( bGamma )! @/ y" W) o8 E0 E8 X
{1 t8 s" q7 C% f1 U9 z$ Y& T
m_nExp1 = 0;8 F& H+ O6 q. Z. P3 V8 l
}
2 z, z0 H) x. K6 _
0 c0 K- y7 b, m1 H8 x* n% f" ?+ J ( (CUser*)this )->AddSetChangeJob( nJob );
2 M4 l) Z0 @6 P4 b# u8 g! j g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
* s/ s7 S: o, E9 g1 t g0 M* y) X3 ?# f: ~: C3 x: p
, _5 E+ y6 U: G5 {* B) j
#if __VER >= 11 // __SYS_PLAYER_DATA* D2 i- \, C" \6 f' I; Q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 p# o9 h* n0 }6 Q
#else // __SYS_PLAYER_DATA+ L! @% o6 a- X$ N+ L5 C9 ^
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: G5 O2 A' ^3 f$ M! n3 g6 u( J8 ] g_DPCoreClient.SendFriendChangeJob( (CUser*)this );" N8 R R$ n2 E8 q& j
if( m_idGuild != 0 )
% r$ {& p5 d3 _7 a g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );* D' H( V7 w3 d, {5 ?: R8 h
#endif // __SYS_PLAYER_DATA
" h8 p- n. H# ]) A, X9 p SetHitPoint( GetMaxHitPoint() );
' F( p1 ?3 P; P* i( v H! F5 M SetManaPoint( GetMaxManaPoint() );3 V% I9 ~; u# c2 t/ v
SetFatiguePoint( GetMaxFatiguePoint() );; C/ V8 p9 ?9 a
if( nJob >= 1 && nJob <= 4 )
) s5 z+ t: M( T1 C {
- E- s. ~& O( ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 Q2 F& x2 { i5 D! [$ T; |( ^. ?: a m_nRemainGP = 28;' Y( [5 g- C% J# U
}
- B6 s, U5 x: Q- _ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
, z3 ~) o X7 l# J {
& e) }# B. T- t8 x: }% n: n m_nRemainGP = 118;
% E4 {- O+ |+ o( [8 a, n //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;9 A3 o0 X- X( }! b( Y a. {0 l# k2 I
m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 p1 e" k2 ~. f+ a: J& u }" c5 v" i$ X/ d
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ), M6 J8 ?' v" D5 E7 J
{
! |3 L! E7 ]% s6 z6 W CItemElem itemelem;( t# B7 O* [5 i
itemelem.m_nItemNum = 1;
- [4 e2 S4 F* j7 j8 y) n itemelem.m_bCharged = TRUE;
! _9 y7 }" m) [8 T* \ BYTE nID;
( k- Z4 }" q1 S% {" H- i% Z6 f6 U, |( n
if( nJob == JOB_MENTALIST_HERO )' }6 U( d& I, I2 k7 Z9 x
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
/ c5 M/ {% K3 T, E# s, Q! X5 f if( nJob == JOB_FORCEMASTER_HERO )
4 t+ ~" ]6 z3 |. x itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' K7 A# p0 i6 C2 @; X1 L/ `
9 o8 ` {$ ]& J% Y3 x, R* e1 s u
( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 u4 W1 o; ~3 o* p8 V" h }9 ^5 \- N) r$ ^1 z2 X
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 }, i4 {# o F; f" g ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
M) ^* ?; J4 f! q; j& T* g ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );; m Z8 ?, D5 |
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 o4 _. K# @3 t: O' l6 ?' G ( (CUser*)this )->AddTaskBar();*/
- K6 D0 N4 {, Q6 z4 b ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
( n. M1 h9 c3 H#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?; u/ P" H& | ]6 @% q- {' z+ \
((CUser*)this)->CheckHonorStat();0 G, ^, c/ {/ R0 B0 V/ @
((CUser*)this)->AddHonorListAck();
) K. `# ~( S' v6 i4 j$ j% } g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 M( P0 p* t" b9 d6 K y5 f#endif // __HONORABLE_TITLE // ′Tà?# z2 |& Y- n r$ b1 H* H' j$ `
}. y3 @# t4 m6 D- v
#endif // __WORLDSERVER
/ p6 {5 h$ Q! K, E} 1 m8 @. l5 X4 S5 X" d! T: c
, e$ f) f" k4 q; R! f( W然后你进入functextcmd.cpp并添加以下) v. H& O# y- G5 o$ x8 A
) G/ q* O' @" f- A& w8 k% A2 p% E5 {, o
代码:! j! A j! G8 p, s8 h* y/ t4 P
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- _! Z& e1 l2 l下面插入% M# Y4 K3 s: B: W2 L+ r9 Y) n% {1 P& q
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 Z9 L! J; S) P2 ^3 b: d6 t2 |. y0 K
$ F* c1 H |+ O& R4 x
然后你去
. `+ J2 R9 a1 ], L
0 a* K6 X* K; y( |8 E1 W代码:4 s* y. a0 e$ X! P! @4 \4 z6 ?
代码
: x3 e+ C! E: iBOOL TextCmd_ClearPropose( CScanner & s )
) ~8 ]7 w) n w/ x- O4 P9 F% c{
2 C6 s9 ]! u7 Z; P0 _$ V6 V9 Q6 Z#ifdef __WORLDSERVER
, \+ N4 C2 l- P2 {' W% o CUser* pUser = (CUser*)s.dwValue;
6 u* R# ]6 R( b g_dpDBClient.SendClearPropose();
% v5 S# W! A: ]#endif // __WORLDSERVER$ J3 G9 b/ }! A
return TRUE;
9 n3 j3 p/ m- ]7 T3 P5 h}7 ^0 b/ @! Y2 W4 J8 k1 r1 P
下面插入5 u) U- S1 W' k
BOOL TextCmd_rebirth( CScanner& scanner )% I$ G4 B0 g) H& z
{4 t# l2 k9 L$ ~ j
#ifdef __WORLDSERVER
! \+ h! B2 S( |5 R0 ^CUser *pUser;
4 O i' ^8 T9 i& N; ~. E/ S7 UpUser = (CUser*)scanner.dwValue;' f' |+ v( b# M
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 _& \! z* E0 G/ lpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);2 N* U5 q6 N. Z6 U7 W1 [& o
else
) q4 z6 e7 L1 @* u# B9 gpUser->AddText("你还未达到重生条件!");/ H$ f, ~6 I- o# }" b1 E d: u
#endif
: ` ]5 A" R; v' [5 C" ? b) @return TRUE;4 H, a9 f5 K1 G# E5 b
}
$ @6 q/ o+ s% X, {
1 ~1 I/ `( c% e/ ~; i' }# F+ A9 |& Z3 v9 }6 T! o, C9 M, Q
# W( m4 B$ ?, H) ?' w/ q9 I) @8 E/ \; g
|
|