|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel1 R% Z! X3 }$ U3 b! c: [
) a4 z9 p( h% W) f8 WMover.h
6 J, R4 g( `5 L/ r代码:
8 S- @9 Y" J0 S4 p找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 l5 A& x9 b% u6 U; M9 |, C
! Y0 J( @) z k+ \下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 p5 \ c7 |6 E+ U0 _* K8 }" i
$ B' K' i1 W9 }; j: w6 }然后你去mover.cpp添加
/ r, P; W" x/ e+ c8 F' N; E# K8 [9 ~0 `( a% H4 _
代码:
% w( }. V* H& m+ x" T$ ]: Yvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
. I1 q% L$ E5 g( F/ V% X& [{: M0 Q/ z( _. F) B) w
#ifdef __WORLDSERVER p4 y% Z) W5 s5 r+ }# d
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó3 i8 a0 {8 B, C, H/ X
MoverProp* pProp = GetProp();
+ r6 _3 W) H% C# u if( pProp )
3 p( Q$ k6 s) P0 \ {5 }! ~9 a0 s) U! w* w+ t0 c: E4 z
if( nJob > 0 && nJob < MAX_LEGEND_HERO )- G A0 N# t' D' ]- r |& I
{' v! H4 C; A8 K/ E
AddChangeJob( nJob );
& R, \! f0 ^' A/ {# C. Q" A) f$ J }else{0 g3 S( R( Y5 h9 W7 L9 y: C
return;
" p* y/ m! \6 ^! T G0 h. N0 t }
' N7 ?/ b: h( S' R5 _2 v7 d int nPoint = 0;# L9 z; d3 K# l6 n, }7 k; [) c) _
if( m_nJob == JOB_MERCENARY )7 E# j6 a) P3 S% ]' h
nPoint += 40;
) p! s# d+ ~. o/ N; M else if( m_nJob == JOB_ACROBAT )8 }9 D* ?) a! ^9 f! K; E
nPoint += 50;
& e% w5 p5 I$ D* i else if( m_nJob == JOB_ASSIST )* f- \/ Z1 {; \9 @! C. r
nPoint += 60;
; S, B t$ n5 A; N: y# q4 V else if( m_nJob == JOB_MAGICIAN )
& y' V' I$ R' p nPoint += 90;
; _, t5 v+ M3 `6 r2 G else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): s/ d$ B/ z6 w2 i9 p( Q; t0 k: f
nPoint += 120; ^4 ^9 C. \7 e% x
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 e% z# N' z2 {) |+ d2 f nPoint += 150;1 ?3 c$ e' w( ~+ d; U9 E. G
else if( m_nJob == JOB_RINGMASTER )8 S2 e7 y# x* k2 S4 ?! o! b; p
nPoint += 160;
. Z' A1 T4 F5 q( N& w4 R else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 C: B. K' p" D5 q3 R9 r+ D$ w, K
nPoint += 180;
% c6 X$ o, L1 K+ V- K else if( m_nJob == JOB_ELEMENTOR )
$ k" {! T% J8 @6 U" b( V nPoint += 390;2 ^6 A' P: o4 [
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- w+ W! t J4 R. ~4 Z2 M nPoint += 120;' ~ {9 c' Y: Y& h" I0 W
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )- ~" ` }( _5 T% }' J4 x& K
nPoint += 150;
) B+ R; z" N0 F- S2 ]* @1 F- W else if( nJob == JOB_FLORIST_HERO )
+ k( k6 l" d+ V" [5 U nPoint += 160;: w" u( i S" S u7 T$ K+ Z7 M4 N
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); \1 o& o" _/ U* m+ P3 _
nPoint += 180;
! \5 f/ U7 ^& e else if( nJob == JOB_ELEMENTORLORD_HERO )
/ j0 i& M2 ?. }) z* ~, o nPoint += 390;" A8 R8 s: ?" S0 E( A( B
4 ^9 S* p4 X, o$ Z0 {$ P AddSkillPoint( nPoint );$ _( f8 O% f$ o2 |9 u" j O
m_nLevel = nLevel;2 C' {) a7 A6 o+ a/ t) V: C4 h
; `: J8 j6 `+ B! {
SetJobLevel( nLevel, nJob );
) _3 h) W) k3 Q) C m_nDeathLevel = nLevel;- o( s+ I! `0 y$ Y$ C, y# d4 x- s
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 u" N2 L9 X9 z! l; ^8 C, y
if(IsMaster())
9 P5 I" m! |" D2 s( Z4 T {" u9 C$ a# s Y' g# d0 B
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" |; p7 V$ h5 K# y$ H
if( nLevel > 59 && nLevel < 72 )
, c$ N+ e8 u- Y% F dwTmpSkLevel = 1;
: j! P. X( s$ Q6 ^6 c else if( nLevel > 71 && nLevel < 84 )0 j9 x$ E6 e! q" S/ A; w+ b
dwTmpSkLevel = 2;' K, J! a. J( u
else if( nLevel > 83 && nLevel < 96 )( q2 E- h$ l- r. r4 p& H8 c1 h
dwTmpSkLevel = 3;
4 Q1 v) U7 p9 X+ y# k else if( nLevel > 95 && nLevel < 108 )
' t6 D: R% h9 H0 y' n* Y: [ dwTmpSkLevel = 4;
- U: ]6 A0 N+ ~3 C9 G, x: U5 o k9 b else if( nLevel > 107 && nLevel < 120 )* m% P3 Z2 N7 d# C! ?
dwTmpSkLevel = 5;: u k! ^3 r) X
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , W$ l. {+ _' S$ }
{ 7 H$ U1 _" }2 W, R! v
LPSKILL lpSkill = &(m_aJobSkill);
8 k) k7 v) W( i& L if( lpSkill && lpSkill->dwSkill != NULL_ID )$ b; Z* a4 X4 G' B) o6 s$ F
{
* ]. V Z5 q3 [0 |7 p1 f- T4 g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / C1 v1 j- \/ \* Z
if( pSkillProp == NULL )
1 ^. b+ \0 `: G! p continue;+ g, Q) O' v+ y( K3 j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ y" j4 c9 D6 t5 z
continue;: _2 H% P3 R/ }/ u+ N; v; F
lpSkill->dwLevel = dwTmpSkLevel;
/ ?/ z# a% c0 p r: _ }
: X7 s& R9 p9 w; U }
" }6 V- @; x* m/ z, T( M, h }4 H( Y( ^0 q/ j; Z; [& T
else if(IsHero())
0 w9 u2 z# s0 Q0 H/ N {
; W3 [ M. a2 S) V for( int i = 0; i < MAX_SKILL_JOB; i++ )
: `( T" t2 ]& s. v& Q5 s { - |5 b) b$ b2 Y. n6 x) d' f9 i+ b
LPSKILL lpSkill = &(m_aJobSkill); R# j! b3 J! z, M' l/ g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ e- h& D3 }% U, }+ m) K {* ]3 J* i( n/ _* Z8 i R1 n, n: L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 }7 l9 s+ E, F
if( pSkillProp == NULL )
) v: H1 B* n: E$ h( `0 ^ continue;" X, v5 b; o0 w6 }+ P0 g" B5 z6 F1 O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" m% } y: c& m% s
continue;# D# i9 R& S' i7 n
lpSkill->dwLevel = 5;1 c. I& n0 T1 D3 M* N
}
6 B, V. }- @( l+ F }+ K8 r& B" }5 E" M4 c) e6 n
}9 f$ Y' C4 |/ H
else if(IsLegendHero())
l Z- T% w* H2 X. s {" E; e y9 j) c5 `8 |: R+ e; p; F
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( z+ m! l7 i5 [
{
" H. \/ |+ U/ h9 B) v: m0 V LPSKILL lpSkill = &(m_aJobSkill);, A. ^- S6 z7 t* U3 i5 C, a
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 O. U! a$ q& D3 V/ [3 g
{
: A" f0 S) N9 Z4 i& z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( n8 l- p& R6 H" w
if( pSkillProp == NULL )1 t: T2 I z6 J: X( y
continue;
& Y/ a% q9 Y5 M( O* @9 m$ \! s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) u% C- x( U! `& b6 ~0 b G
continue;+ [3 ^# Q! [& Y0 f0 `
lpSkill->dwLevel = 5;
9 b: c- h! H) \& g9 @) x }& D$ I1 z6 \4 h% \
}" b3 y7 N/ K- M& k- c$ U
}3 H' c1 _% Y3 F. W$ M8 F
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 I9 i1 d+ f8 t' A( T @
if( bGamma )2 N" J" p& V Q7 g
{
3 x1 G# M" E9 c3 m% F m_nExp1 = 0;
7 c5 b" M' A8 R* t4 d }
% l$ C# N, y5 E1 z
' G( U* B1 }( i8 _/ N8 a6 M7 n ( (CUser*)this )->AddSetChangeJob( nJob );
! {4 F# p" z! d1 k- P' S, j! Y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ H& I. j5 l8 }9 t* p5 Y T4 j1 E, ]# Z5 g
! X3 I7 h( t8 e6 f" [6 w
#if __VER >= 11 // __SYS_PLAYER_DATA
: a1 M- l4 R6 g" q1 \8 W4 {- T7 y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );$ ^) J/ q5 }' e0 L' s. s$ l9 y
#else // __SYS_PLAYER_DATA4 C8 |9 P- D" f4 [ }
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
' a( x' P! i, P+ a. Q& W: [. ` g_DPCoreClient.SendFriendChangeJob( (CUser*)this );9 u! n( v9 w# X
if( m_idGuild != 0 )
! K6 |0 j3 w3 I) @! R g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& D! C) _- A* K! T#endif // __SYS_PLAYER_DATA
2 M6 y3 c( Q+ R- o/ o7 R% s: j SetHitPoint( GetMaxHitPoint() );; p+ y6 R' i: T& k
SetManaPoint( GetMaxManaPoint() ); D! [' S& h" M% _ s
SetFatiguePoint( GetMaxFatiguePoint() );
6 @% U+ G1 X% k' Q% ?# M if( nJob >= 1 && nJob <= 4 )! v! ~! x/ D% ], m4 X, l
{
" [9 R4 }) P, g# e- G6 a0 n m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ Q& u; u/ R. W! R+ H# v m_nRemainGP = 28;5 D% O# ?4 `1 g: Y# U- K
}' ]; g2 ? E" U0 @. c r
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( f) U6 p$ B! U+ o: O {2 o: k$ g, _) n' X: n, v. L. [
m_nRemainGP = 118; T# X9 o7 h+ ~. B+ q2 l3 z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ Q8 n% P6 g/ _3 D) z, ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 B+ Q0 Y& K# @" A }
% @: T/ N7 C, U& x5 R; G if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& p, Q: o6 }4 k1 {% }/ _ {
- O" g r# `( Q- R CItemElem itemelem;# t+ {& M9 M2 e+ T* n ?( \
itemelem.m_nItemNum = 1;
- K0 N3 Q' D- v% ^8 r itemelem.m_bCharged = TRUE;& A! Y5 P; T' \4 a
BYTE nID;. n. U( N! }) ]$ [- n; w
1 z/ Y; c, K9 L* F& d) M1 i% c
if( nJob == JOB_MENTALIST_HERO )
* X1 k" U) y' n$ P/ B) R4 _ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 Z& G8 Z! x# r8 H5 A
if( nJob == JOB_FORCEMASTER_HERO )
. u7 W% ~) \, z5 n" f itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: L1 Q0 z0 U0 z- y' a# `7 T. L' q% Z$ K' i, B8 r1 V% J
( ( CUser*)this)->CreateItem( &itemelem, &nID );! x# R3 |! P: Z3 G+ }/ e" _3 W
}
$ w6 y- H$ h+ k" c g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
: m1 F. e. i8 u C% z8 C( C8 V ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! G1 w# J ?% F0 |; l% q ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' o+ m( A( v& [# v4 V /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# o! H: C. X6 Y: z
( (CUser*)this )->AddTaskBar();*/
& ^+ [; ~ b6 [5 r0 [" x ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
; x* @' a& M0 G" o+ X, [#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* F' N: I+ i( j1 q% d
((CUser*)this)->CheckHonorStat();# z0 Q# _$ k( e, c8 G+ F
((CUser*)this)->AddHonorListAck();
$ T4 W6 m6 M' X" }9 b g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 \( j0 R3 Z! d) \# l#endif // __HONORABLE_TITLE // ′Tà?, G. `1 t2 N) k( L* ]& X' @
}1 v6 y2 O5 ?2 f" E- s# U
#endif // __WORLDSERVER$ ^. d. k$ q c3 j; k
} 2 w M$ j% [9 ]/ Y6 L% @" ]0 {
+ i' d/ B( r8 O6 _然后你进入functextcmd.cpp并添加以下' W3 M+ o- r# Z$ Z2 U( f' S
# M3 f" u' J Y, t5 ^8 g! N4 d
代码:
. ]& ?2 {$ a1 N% d4 v9 |ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 H8 i( z) p/ Y2 X- ?9 P
下面插入8 }% o7 A4 M4 w, T4 ~5 W
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ y5 }- g" I1 }7 s
/ O5 ~& \% y6 F( k; D) e6 ~$ o' c
然后你去. S& Q6 h6 }6 I L
3 V. k% s- ?) z g* Y- L( f+ q' U代码:
) x$ L5 A- |% s代码
5 H! ?0 {- T( ~) F$ OBOOL TextCmd_ClearPropose( CScanner & s )
/ { w3 l8 X0 s Z{4 B/ \4 m5 _2 }! j
#ifdef __WORLDSERVER! c1 K6 c6 P7 P& m. O# G* A
CUser* pUser = (CUser*)s.dwValue;
, h/ U& H8 l4 l' h g_dpDBClient.SendClearPropose();8 U# @' J4 O) G' q
#endif // __WORLDSERVER
* e3 X7 ?, h6 L: @7 q return TRUE;) i3 j; n4 z L0 r( d: ] Z
}' K. R! P" `9 y1 A
下面插入
# Y" `* E* b& B7 J& EBOOL TextCmd_rebirth( CScanner& scanner )- ?9 h1 n( p0 K' k/ M: J
{
( z; O0 {) R7 M. l4 `/ \/ d0 Y#ifdef __WORLDSERVER
! K& v$ {4 m1 bCUser *pUser;
* Q; h! [5 Q+ h) [. l5 b- J" HpUser = (CUser*)scanner.dwValue;- Y. L- _: m% h
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
x4 }: B8 Q& g' l, d: tpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
: K0 Y5 K; K1 q1 ^ M; |else8 R# Q" `9 H, A. F6 r
pUser->AddText("你还未达到重生条件!");
~# H5 x" ~; r' H#endif
( T5 L' q( ~; d( Ireturn TRUE;
1 g J% P7 w9 [! D& o7 L7 {& u}
3 L p' l/ j+ f3 W. i% F2 E
; t* T/ p/ _+ [: z6 o) T4 s( h' \$ o2 u
. p, V3 s9 T1 r' V- T2 X$ \) N
; o( D8 u7 a& e1 P0 {9 J& e# _ |
|