|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% q2 M3 R( l* _" G: Y8 R/ O+ P
" J* ~5 c, u$ Y) h- t) U
Mover.h
" e+ {; D! E) v5 S2 f代码:' d0 x9 _) X$ ~# f$ P( S( q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% k- k" G$ \ {+ D2 u( A T
/ u" q; V( y( s下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( F: X: C3 D5 ~
& N$ x! t: @2 Y/ W, p, Q+ G然后你去mover.cpp添加
- L' q' g' {; s2 q/ G. l, T- G+ p; o, G- \$ X
代码:5 b8 D* s) |" o/ G! e9 d3 s
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( V# H4 }- ^9 ^/ R) s{
1 L! o: ^) O( m2 W# g#ifdef __WORLDSERVER
9 W2 O5 F/ u+ {2 T( i8 a+ j // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 M; L8 D8 q" E4 T% Q' |: r MoverProp* pProp = GetProp();
# U; t3 [5 D: A+ i& p5 a if( pProp )$ l8 y0 j: [ N. n' \2 M
{
1 r O: [$ f+ N- ?/ G6 a. ^ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 c Q. V% L% l" h/ s+ ? {
0 W* W3 ?7 c( m AddChangeJob( nJob ); o% g/ S9 S: p4 _0 I' o
}else{* E; ^: |( ?- R s3 H1 h
return;
f n2 V3 G- W8 s. Y( h2 ^ }
( H& V! \3 v: e* L. F int nPoint = 0;
' _3 V3 p. a+ U3 y# Y1 \ if( m_nJob == JOB_MERCENARY )
% D. J- K' ^+ @0 ~/ k4 _: t nPoint += 40;
! n) n* F) Q) y3 f+ j6 Y6 K# K else if( m_nJob == JOB_ACROBAT )
9 @$ p! [" A1 S. X/ B& z nPoint += 50;! Q2 C3 a g7 i* U( [" w
else if( m_nJob == JOB_ASSIST )# r d% n0 \' n) l3 o6 M
nPoint += 60;2 p% g3 L$ W/ y" @5 _/ M
else if( m_nJob == JOB_MAGICIAN )# _# K& @8 Q3 E9 K2 W
nPoint += 90;
! L5 b0 {/ D* H. b+ x6 j else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 }" I( X3 T% t' H% z
nPoint += 120;" G% z! |# [% P$ A" ^( L
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 N7 N" D! f! K8 X2 J9 G
nPoint += 150;
# J/ |4 C/ r2 o2 W. `! R* J else if( m_nJob == JOB_RINGMASTER )
; P. G0 e9 H. f! r2 L; O8 S+ \ nPoint += 160;+ L& u1 ~! I, {( `* r* ^
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 B0 l4 I: ~# L) k$ c# y# Z
nPoint += 180;$ H* `3 N# K# N. D1 H0 B6 k1 U* _5 e
else if( m_nJob == JOB_ELEMENTOR )
2 W2 K, p b1 b3 k: n9 y nPoint += 390;, |8 d1 q+ X9 }: v: i# \0 D K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 ~9 n& \, w/ o# s! Q! Y9 U
nPoint += 120;; R8 U, ?9 @* b2 u; |% l4 ]. p1 b
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )8 {7 D6 ?! A4 G0 q, S8 k
nPoint += 150;9 t5 b1 g' I7 B% Y
else if( nJob == JOB_FLORIST_HERO )
7 p J8 K( N0 V* ]# L# z' d* B) A nPoint += 160;
0 ?5 d. Y& x- k6 l4 y else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- D8 ?, t, d ?- j/ {5 S2 |: q nPoint += 180;) T& U+ x- H; w, ]
else if( nJob == JOB_ELEMENTORLORD_HERO ); s* U4 v, d* N. T) M' [
nPoint += 390;
( l- @3 O# [" E) ]4 A3 V. x7 }! X) X: g2 v
AddSkillPoint( nPoint );/ j9 j' W" b) z, L+ B
m_nLevel = nLevel;
5 u2 E. ], z0 @! S6 I% F
z. z6 @: k: z2 h, d. Y SetJobLevel( nLevel, nJob );- @& ^0 A9 ]" {! Z6 D& U' r
m_nDeathLevel = nLevel;
5 D$ I4 s% j$ L3 t; c0 F! d5 b#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. f6 J+ e3 i6 q4 Z8 ]2 h9 s5 O if(IsMaster())
5 y% V# q+ o+ ]: Z; V' A1 f5 Y {# G8 _( Y3 a/ W4 ?7 Q T# r
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 O' C: l+ b, ~# n if( nLevel > 59 && nLevel < 72 ), r; U0 {* G2 y" D! H9 V
dwTmpSkLevel = 1;
: m4 @6 F& ]2 C& w4 C; ^, ? else if( nLevel > 71 && nLevel < 84 )/ |: A# G' F$ W- h; x
dwTmpSkLevel = 2;
- N& Z9 z$ i( w) j else if( nLevel > 83 && nLevel < 96 )/ G7 f B7 ]3 [
dwTmpSkLevel = 3;* |* c2 s, f: A* }7 j
else if( nLevel > 95 && nLevel < 108 ) `: z6 p) f. ?+ S0 v: `6 G- a+ V
dwTmpSkLevel = 4;
8 _4 H" a9 F% ]( x) ^- r else if( nLevel > 107 && nLevel < 120 )
, K0 m( l+ y9 f: P- W dwTmpSkLevel = 5;, j3 q$ F" @% A0 ]4 b/ Y+ q& Y' K
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & I$ `, D4 V$ S _( Z
{ " |: z. O5 ^& y2 f4 N0 f
LPSKILL lpSkill = &(m_aJobSkill);. w. p3 t1 [1 i" m% Y- f- d
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 M" O. {* r+ [7 N" g K7 a) ~( z {
' [% |$ P3 ]6 C" n0 Z6 h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ y F; f" F/ X% Y4 @7 H, T
if( pSkillProp == NULL )
( c( x, R! Z" M! x4 p# `2 f continue;
! K# R _4 l5 X/ y5 j) P$ t, W if( pSkillProp->dwItemKind1 != JTYPE_MASTER): D. v" k- l" l3 n% H( e
continue;
8 i/ {7 ^3 }( e) l* U9 z: {5 a lpSkill->dwLevel = dwTmpSkLevel;
! m, d- Z* Q5 J }
, \( p3 K' P; v9 \9 \) V1 c8 r }# q* E( z, U' x* m
}
0 c5 e* D( u7 `* d7 B) F% p else if(IsHero())
. |0 {# R0 {4 \4 n4 X6 w) y+ L {4 o. r% t8 A! e. z6 W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( o/ b* o7 G2 ^- w) ]7 {
{ $ H$ [! n8 \! k$ W5 H# ?
LPSKILL lpSkill = &(m_aJobSkill);1 ]5 E. N# S2 s) A: p
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ U& ]" m+ z# x1 J
{
. R4 ]: D5 M5 O% i# k, Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: P! m$ y( q* ]& Y" [ if( pSkillProp == NULL )
& N) }: _0 ?8 N/ H6 [7 u+ Q continue;
1 X( g1 H4 \3 ^8 r/ V; S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 D4 K, V$ P; \ ]/ P9 P continue;
. Q7 W% x7 p4 U: c lpSkill->dwLevel = 5;( d+ @1 T. O f9 ^2 o# _' m/ I
}
6 r3 }8 ^: i" m2 O5 C3 k }: }: Y1 I* x1 { R) y; d) r
}
! S+ Y) A! v; v' C5 l' z5 G# H else if(IsLegendHero())4 O7 R/ \: s9 }2 _
{7 D% b8 }, O3 |( {5 Z# X: q$ w
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 W$ b, K4 a1 Y, e6 v7 J {
3 u+ G# ?. r* E; B1 k LPSKILL lpSkill = &(m_aJobSkill);
( r8 y8 H7 g- H' e' V if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 a! x" T5 E: `: D {/ J9 S& Z; Z3 @! z5 ~. R3 z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , E8 g7 O6 [0 [7 H ?9 S r
if( pSkillProp == NULL )0 W9 F# y' u) T3 R& a4 w
continue;
4 E, @2 `6 s! ^! r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 [# d, P- [ V4 C' l- U; f& U
continue;* l: B1 `! r3 G9 z, k6 M$ N
lpSkill->dwLevel = 5;
! w4 ]; H% S$ q" G( V0 l. Y }
8 ^" T9 O9 x* i9 p }
( W/ G, p% m, n5 b1 X. c% E, d" d }
8 B1 Z2 y& a& y1 u! K/ M5 g#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. d. q: X% d( ]* G8 C* o2 h i
if( bGamma )! f- {8 R* _- e* t- Z
{ T R! {: t$ s2 p0 X: }' |8 ]
m_nExp1 = 0;
7 B. @: d9 J; V6 A }% B4 G b& s; |. ?. ]5 v, G6 h
$ t) Y. H( V0 w2 [; Z ( (CUser*)this )->AddSetChangeJob( nJob );% v0 z) R% t& _4 y5 j0 n) O
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );& N @. i$ l5 r+ C6 L( P) E; z" O! o
) s9 y& Y- w$ P5 p( ]
4 |) X3 f( q+ \0 Y2 R7 \0 ~: z#if __VER >= 11 // __SYS_PLAYER_DATA
) Z9 l" a N6 m5 T g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 b4 A- v* }$ C& _ w#else // __SYS_PLAYER_DATA( S, f- ?/ A. m1 }, t5 A
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 a) ^" |) ^5 r/ t! e; l/ O# g g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* l" w1 c8 r. P0 o- f8 t if( m_idGuild != 0 ) B9 }+ s, m" E
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 i! x' g8 m" u2 |) U/ }
#endif // __SYS_PLAYER_DATA
+ b! _" l0 s+ R7 }6 x) Y& i: k SetHitPoint( GetMaxHitPoint() );
! h- S V0 X4 q, q% B( K SetManaPoint( GetMaxManaPoint() );5 X- p1 k! N" J7 [ P& m6 g
SetFatiguePoint( GetMaxFatiguePoint() );
# J! P2 k6 @" W/ J5 T/ ] if( nJob >= 1 && nJob <= 4 )
' r0 u7 {/ K/ E2 q4 U: V: O {
/ A* S2 J3 B9 k1 d! |; b& ] m_nStr = m_nSta = m_nDex = m_nInt = 15;
" w. s$ |1 ^8 a7 f% S M6 A m_nRemainGP = 28;! ]! G0 s& F0 t: k
}: \2 n4 D4 ], T& i; U4 a
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! g5 V; b1 f/ [1 ]4 \ {
$ A( c4 X) }* n m_nRemainGP = 118;
! j9 j! ~: W. ~" ~& E //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
, p$ E+ @8 ?' ]4 A m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 i% e' g* s" r6 b }
- x/ q# a9 G% F+ v- p if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% ~8 ?4 Z v7 i, Y# |9 p6 y0 Q {
" e0 O% ?" S2 V+ V4 R1 x6 q CItemElem itemelem;9 h( A3 _" c- W; c/ g/ T3 B+ x
itemelem.m_nItemNum = 1;
7 K, x0 E9 G( y% q, p itemelem.m_bCharged = TRUE;2 T; I% S' e9 v) A( p n" `/ C
BYTE nID;6 i/ r; M I( `' U7 E V0 E
5 T" Q) v8 {5 @$ u5 \* D if( nJob == JOB_MENTALIST_HERO )
: I0 x0 R4 z3 y. P7 E$ U+ A# m itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 \$ U4 `, s1 _5 x6 i
if( nJob == JOB_FORCEMASTER_HERO )
, d- D- a n& q( P itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ v' P+ T! X; y9 U" D, J
u. Z# l. `" @* ^7 U6 u ( ( CUser*)this)->CreateItem( &itemelem, &nID );& `2 d6 X) z8 K
}
" g4 R# A' R. g* \ u4 ^ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" p+ o' L& y; u" e* O+ C9 {
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& ~9 e5 q- q7 p: Y. b) ? ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: Y( U% |4 L6 t, ]3 i* k. | /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: G( J- Z. T p- b5 O% x) F
( (CUser*)this )->AddTaskBar();*/ i! D7 B( A# ~; g' E y- c# j
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. B" N/ [" B2 e' ]; `3 j#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 f- c3 I. k$ V* E& d9 } ((CUser*)this)->CheckHonorStat();! v; S9 T# _! K# R/ I/ N
((CUser*)this)->AddHonorListAck();" F8 ^* s2 Y; W1 {$ m. n
g_UserMng.AddHonorTitleChange( this, m_nHonor);
: Q! n0 q, o, ^$ F# V4 K# ~; }) }#endif // __HONORABLE_TITLE // ′Tà?
: G+ ~/ {" F8 i# @/ z! A6 b+ a }, h0 y% t. r6 a n
#endif // __WORLDSERVER3 ?4 Q7 f& _# T7 Z
}
& t$ W7 C6 ? d9 d) N; x! c/ [ e' x: @ W
然后你进入functextcmd.cpp并添加以下* ^. W, V" x& d0 E
2 D: o! C" I+ d3 V" t& d; S" a- k
代码:
- ?# I5 p# J$ t8 MON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" T8 k5 N7 Q( D' A: ]- E) V5 h, U- h下面插入
) H9 I8 k+ I. k) Z8 y9 QON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . u; t# a; n) N: Z7 ~" m
; N+ \7 l$ \& h
然后你去* |; ~, U6 u7 Y6 D
& J x8 [. X+ d, I+ c& h! x
代码:
& o+ }) \$ u# ]+ ^; B代码
& S- P: c, i0 B" p `1 ^7 e3 |1 zBOOL TextCmd_ClearPropose( CScanner & s )
+ p4 k* s: h2 F: s1 p5 Z1 [. V{
2 c9 U! O6 Y4 E: W. D; l$ b* g#ifdef __WORLDSERVER
( `) w. q! J& ~2 g, V; H+ Z CUser* pUser = (CUser*)s.dwValue; x8 i2 O6 p! `
g_dpDBClient.SendClearPropose();
y) r* d% E, p# g: N#endif // __WORLDSERVER
0 [! w+ A; j3 q: H3 Y return TRUE;9 L0 x! m( v& Z8 O/ |5 V
}6 u: \& X) j- N2 X: ~( N1 k
下面插入
- U2 P6 A1 G" `" ^BOOL TextCmd_rebirth( CScanner& scanner )4 g# M' d* }$ @; j4 ]
{3 b" K w# G' Y$ D; X, I3 ^
#ifdef __WORLDSERVER3 |( f$ [. E) g7 l1 R4 |4 E( t
CUser *pUser;
/ G" [( A. w- A: j4 XpUser = (CUser*)scanner.dwValue;: U2 B G7 U5 ?9 \* [2 n
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ H, u/ k k) S( t3 J% }
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
) {3 r% L) _( C- W- s& Qelse( @3 d9 V" k* G0 v; s4 k4 r
pUser->AddText("你还未达到重生条件!");
: s! b& A* r( P#endif
6 I+ ?' M$ C/ @return TRUE;
0 X. u, W q- `, o* w}
- }! G; @0 T6 J% G$ |# a
# `! t8 @) k+ h) N$ }' G
3 P+ r( F+ y: ?0 C0 U/ S: c& }' {+ X( v9 d7 ]
. m* a, U# b \* \9 j- w% H% r7 z |
|