|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel8 r" l. T& n |( K( ]: c
0 a. @& c9 h+ \ NMover.h
6 Y# ?" [2 n: R. O$ d/ y6 H1 x代码:
9 D w( a+ f8 D1 n& N1 a% M* ]找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, L" F# P% P% y1 Q4 y r" s5 ^! {/ _' D" o+ l3 h* \% @2 J8 J
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 @: E; S) B4 R& j3 d0 q# s/ [0 I M* V( Z. w. _1 U
然后你去mover.cpp添加* `. C( w2 Z K' [" G
/ j/ e$ Q9 q& q9 ^# \
代码:" L% Q3 d% F7 r1 r' |
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )) ?$ \% {5 o3 N0 C$ r6 c/ g3 w
{+ ^; w9 B" |' {4 P
#ifdef __WORLDSERVER
! g8 f8 ^. H$ P' i // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% O+ y$ N. P( B$ [8 v; t% N
MoverProp* pProp = GetProp();
/ O+ h: e. c* U+ l) q6 J$ c if( pProp ): r3 k! K/ Y7 `, n$ t& y" v- \
{" a3 j! D1 O3 Q g
if( nJob > 0 && nJob < MAX_LEGEND_HERO )$ d- n) g N. V- S0 x
{
0 l5 l) e, d3 n; `7 D AddChangeJob( nJob );
4 v9 W4 Y) V7 j- g$ _/ H }else{* j u* Q) U* J* i& p
return;: [& `4 e9 y1 w9 V. u5 O0 o
}- x2 G- K3 i. Q0 P4 _( S5 F7 B
int nPoint = 0;( N* X3 _! q, W, E. s, c8 X
if( m_nJob == JOB_MERCENARY )
! K+ v6 T; u0 r) e& v5 _ nPoint += 40;
- ~ q o" @0 T& {* p9 C4 K7 Q else if( m_nJob == JOB_ACROBAT )* j+ w. M# z @+ ?
nPoint += 50;/ h" k& _# v+ l: D* q
else if( m_nJob == JOB_ASSIST )' e9 y; s1 C8 l1 ^
nPoint += 60;+ e* T( m4 L# K8 h, f# |) `( h
else if( m_nJob == JOB_MAGICIAN )
4 c3 P- T4 Z$ w, J" U nPoint += 90;( {! p9 z% S/ Y' S2 j4 i
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 F( q6 Y6 a- A" k! G
nPoint += 120;
+ `4 ]9 P5 P, g6 P# D/ f else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 O2 F6 w- @% L1 m
nPoint += 150;7 I, Z5 m+ _ Z+ I% |7 h8 H: S
else if( m_nJob == JOB_RINGMASTER )
; l* b: T. D7 h6 N' B+ a nPoint += 160;" |6 @( l& A4 S# T
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ s. F0 q0 d0 r! h0 `9 K nPoint += 180;
: x9 Y5 o& B" ?5 W else if( m_nJob == JOB_ELEMENTOR )
! `. Y- Q, J' O/ }# U$ h9 s/ j6 \6 Q# ` nPoint += 390;
6 @- Q/ @" \! T0 W# A6 {5 U; `) `% p else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) l* b! x" D. b( j, q) U
nPoint += 120;
( {; b! q. W9 M8 x+ H else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 ^% h0 F/ L" n7 m* O. t- Q
nPoint += 150;
5 D& {; u( K/ [% ^- V+ ~3 l/ L. y else if( nJob == JOB_FLORIST_HERO )- t/ O* T9 y% H1 w' }1 j! M
nPoint += 160;
7 j( x/ |7 ~1 ~) M. ] else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
* r6 r2 F" m4 U" ~6 E- m nPoint += 180;* R1 r" S1 U- @& `) S
else if( nJob == JOB_ELEMENTORLORD_HERO )
8 J) m8 N' d5 q- K8 P. e, `" X nPoint += 390;6 ^& ]! Y s% t5 s5 G
) U' q* Y, a' x, N
AddSkillPoint( nPoint );
* A1 o- F$ k; i. Y* j m_nLevel = nLevel;, p. C' B! Z. _
$ M [$ O& j t: V0 B9 p+ _ SetJobLevel( nLevel, nJob ); F+ m" d1 s! t2 v
m_nDeathLevel = nLevel;
, M3 f+ f3 }8 i5 x8 A5 j# G% g# T9 m' B#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ S: [7 N7 E- H" B if(IsMaster()). E2 x5 E3 L; I# }
{
: }% r2 H6 a9 ^9 G0 w int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( `5 Z' u# J: u% q% ]
if( nLevel > 59 && nLevel < 72 )
% [ H2 g( W; w. C4 S0 [ dwTmpSkLevel = 1;5 x+ c. p, y; }; v- K$ z/ b
else if( nLevel > 71 && nLevel < 84 )* @) r6 ?1 s9 p* {6 ?3 |
dwTmpSkLevel = 2;
p) Z. f# D3 k else if( nLevel > 83 && nLevel < 96 )
% r' i) U, h* U% C6 I4 `4 s dwTmpSkLevel = 3;
3 `4 w# P; n; j1 w2 F( ~! ^0 Q2 s else if( nLevel > 95 && nLevel < 108 )1 ?" R$ I9 ?: `1 A! Z
dwTmpSkLevel = 4;
$ \ K2 M" p( W+ [9 E. X: a4 L8 W else if( nLevel > 107 && nLevel < 120 )( Y4 \; _) x; @1 [. j, f! d) U" U! y
dwTmpSkLevel = 5;* v5 m3 U" g* B0 x1 a
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( Q4 ]' g! [) _7 e# H, O
{ # T' _# U, K& A
LPSKILL lpSkill = &(m_aJobSkill);
; ?+ ^8 D( D" t9 S+ m2 e8 K& v' T if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 Y) u; p7 m# x3 ~ {
6 V' G5 E1 h! o% n& g+ \" q" P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / D* `9 e% G* n2 p% q- K: N
if( pSkillProp == NULL )
( d) c7 ]; b; U& s: E/ T, f: g continue;$ l: `' |, f: T! d$ S4 j/ L4 O) }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: o/ @9 C9 J: u; x# \- x; w( y0 W4 T continue;
8 t4 z4 i' k# R9 j" n x lpSkill->dwLevel = dwTmpSkLevel;
" y, r: O/ X$ p$ D }! x1 d: x/ Q6 R d0 B$ m& J
}- I' s4 t. u/ z/ Y, U- W! w
}) o6 M& F( p. {0 e: `/ s. r4 R' D
else if(IsHero())
|* ]* y% i' y( V {" U' {+ ]) B( ~8 s
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . Y8 f( j* D6 S ^/ A7 f: Q2 [4 T
{ ( v, t7 x$ I5 z
LPSKILL lpSkill = &(m_aJobSkill);
/ X& z# f+ g7 a# E- v if( lpSkill && lpSkill->dwSkill != NULL_ID ) V+ Z! V4 P0 [. a8 M1 Y( g
{2 |$ ?6 n2 ~" o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 A% W. T" k. l2 m
if( pSkillProp == NULL )
+ M. a* n, j+ B! H7 h continue;
( f( @; W& i% U3 r# p6 w* u if( pSkillProp->dwItemKind1 != JTYPE_MASTER), V5 o; a! h' M. t
continue;6 l# } ?4 k+ W
lpSkill->dwLevel = 5;) w$ J7 L9 U% @9 {9 z
}3 s4 q/ e3 g. E6 C0 u. l% r- A
}! v* Q$ D5 |+ ]4 c- X, Z' ^; y" ]
}
" r: w& m7 s/ X9 u8 d/ ? else if(IsLegendHero())- W$ x' R7 {/ p' k/ }8 t& k
{
# U9 Z9 i( a$ \' v# e' c for( int i = 0; i < MAX_SKILL_JOB; i++ ) % g3 i3 t1 m a e* U) c0 w
{
7 F7 u2 S3 L. l8 w LPSKILL lpSkill = &(m_aJobSkill);& T! [; Q# @/ u" e/ U2 \
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- A3 Q, C- \' A& s/ E$ s {/ N$ {) \- r. M n% _! d3 G% p9 b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
m, U2 d) Q T1 }; ~! q if( pSkillProp == NULL )& Q( y+ t+ h7 _$ Y; `, [# `( i+ E% E
continue;( ]) }* z c- r' s! G2 i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" }4 i. X* N) k9 }. K+ L
continue;
2 p, g# P3 g8 q4 \6 V lpSkill->dwLevel = 5;9 c9 ~; e- J6 p% h6 x! S
}0 S2 g8 D* n# z6 b% }- z& }
}& ?* _; {( w6 s2 B# n$ i( a
}
* T/ S M7 Z8 p5 G/ M#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 F+ |/ L d! n% n2 x+ M+ x
if( bGamma )
0 z( }1 a- g9 H& ` e6 a {
1 |3 J6 ~0 ]: R4 Q5 j) i( } m_nExp1 = 0;
3 @9 B$ Q& S8 q k }
, w6 |& R- P3 @' ^- n9 a
$ r: i7 x7 U0 F9 Q$ K% k+ G/ R ( (CUser*)this )->AddSetChangeJob( nJob );3 U4 g8 n1 q7 O' k3 C8 I
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );1 t7 S% U6 I6 P! R: E) F7 c" h2 m
& n# p& E6 {: o/ R7 W4 j- C/ I/ k
+ [1 L4 @' r, u+ a. D$ |#if __VER >= 11 // __SYS_PLAYER_DATA6 V2 L2 r9 z \" F8 K
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) W) ^8 t/ U9 |4 T
#else // __SYS_PLAYER_DATA
+ L1 [8 O# q2 q g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
- Z; L/ O5 t9 Q* [3 F g_DPCoreClient.SendFriendChangeJob( (CUser*)this );) z% Q& l/ P# @6 u, L% t7 T7 k
if( m_idGuild != 0 )
+ y/ x |1 N0 T& u1 Z+ t g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );9 R5 Z* C7 V8 H& m% y4 k4 h
#endif // __SYS_PLAYER_DATA* Y0 L. C3 g% ?* g
SetHitPoint( GetMaxHitPoint() );& {% o9 r# x7 n5 O: ^8 k
SetManaPoint( GetMaxManaPoint() );9 S; v6 ?4 H1 J- [; d/ J2 O" f
SetFatiguePoint( GetMaxFatiguePoint() );
/ f% W6 i0 ^, T _9 p6 M4 m& `; z if( nJob >= 1 && nJob <= 4 )% ~- H1 M- _, Y! _) g' f
{
* s) o* K! b) c+ J2 H1 C m_nStr = m_nSta = m_nDex = m_nInt = 15;
, j, `" S5 |! }" ^' E m_nRemainGP = 28;
7 D+ u7 p! z% Z4 P# ` }
+ n- }' X* a% G7 { Z# u6 I/ J if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" L2 ~3 h2 y. l( q) P {
0 F7 q% i( {% T/ x! I( M4 } m_nRemainGP = 118;% q: k& P* J# T1 @! B
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 I: X( V, z4 ?7 U: C" F. s& H m_nStr = m_nSta = m_nDex = m_nInt = 15;( C! D' v% O- z T& q0 P
}
3 F3 T2 w) z" s8 v6 B5 P2 r1 m if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 }1 b" f+ X9 T# { {
- p# l& R. C, ?/ d CItemElem itemelem;
+ z0 B4 z/ l9 b itemelem.m_nItemNum = 1;
3 x5 N) [. U, C# x: K, w+ |' M itemelem.m_bCharged = TRUE;
p0 M; |1 d P, A BYTE nID;/ J \' X: z: O6 J" ^
8 {' ~7 z" s. `4 b2 ?" [
if( nJob == JOB_MENTALIST_HERO )
, W3 C# v# V; I( q" z/ Z7 S2 g2 U itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
: A7 ?" y# H5 T, K if( nJob == JOB_FORCEMASTER_HERO )
7 l5 L: l3 }0 { itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' o" J' k7 B, k; h6 C( ^
- u8 z* h6 y1 ?- @6 ^( O- R0 \
( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 w9 E1 {7 E, W2 l, f0 }+ E }+ [# x$ R4 H, G0 L( c
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 h- n2 ^9 z* x _( q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ W' [7 M ~: @: z+ S ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );* A1 V9 v+ v5 b8 f5 F
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! z5 y7 ^ R, k B2 C
( (CUser*)this )->AddTaskBar();*/. ~" }% w5 x9 q! L0 j
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );. U0 }& n2 x v; g7 A W; o
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 d: d. L" q5 g
((CUser*)this)->CheckHonorStat();8 y" t8 A( L) k0 @) l& _/ ^8 ]
((CUser*)this)->AddHonorListAck();6 y6 n# ^) T- q) W7 B
g_UserMng.AddHonorTitleChange( this, m_nHonor);3 P8 ^& K! @( q# z0 I
#endif // __HONORABLE_TITLE // ′Tà?
" o6 W6 s$ y1 ~4 o+ S, x }6 m! o+ b/ d- X+ ]& H& _% }0 y
#endif // __WORLDSERVER* [, C1 ?) E2 c
} * h, Q1 o+ X+ s" \
0 U* \9 B7 T! U8 @
然后你进入functextcmd.cpp并添加以下- D1 [/ D6 J, I! O: G. ^
& ~; V+ j. A2 |( s, @5 a- i/ G9 m
代码:
0 ^2 h& d7 B* u+ SON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )0 ]' ?" L1 ^/ D) N
下面插入7 a: }. J5 K2 \. l/ c# c
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : s$ [! x5 u+ x& z( Y& `
% F4 e! C/ H7 W9 R2 N
然后你去
4 V$ U, h4 x+ p4 R" `
1 R/ B# n6 q' g代码:# y9 Z" j: _5 U& p R: h
代码8 o" d* j" F+ {9 s# e
BOOL TextCmd_ClearPropose( CScanner & s )
4 ]0 {1 m% m- ?8 k{
$ f- l0 s* N* M#ifdef __WORLDSERVER. Y- E9 y2 @5 i& z
CUser* pUser = (CUser*)s.dwValue;0 l& z; w/ N' z
g_dpDBClient.SendClearPropose();
6 [+ d4 X: p: _2 b#endif // __WORLDSERVER7 T+ Q! @ }7 a( w
return TRUE;
2 G. c0 s, p# S; W/ Z' U$ j$ @}
# \* g+ g3 r/ N2 L; F; y' N$ ~下面插入( c. m( s- K, a& y2 A; E4 U
BOOL TextCmd_rebirth( CScanner& scanner )2 e9 E4 i3 A& e. Z* v: w
{9 W( q" K$ v0 i7 U
#ifdef __WORLDSERVER
9 U# O( _9 X2 Y- L& E' ^& I; ^CUser *pUser;7 q2 B0 ~- \5 v2 _
pUser = (CUser*)scanner.dwValue;3 {5 _/ H) G! n; c( R# k$ @6 V. J
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 [" p5 Y* T: @% H" t% g% P# NpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& K3 Z5 q* H% W6 n& Celse c1 ^, {7 v- ?2 G ^
pUser->AddText("你还未达到重生条件!");" v+ p$ F9 K; k% a/ S* J" _
#endif
) }. t& t! ?: `; U/ Y9 \' B8 ]return TRUE;2 W$ P, L. B8 _' x
}
( ^8 _# A3 A0 y6 [/ W7 a& }1 h, x1 W( m+ X1 |
. q$ R# M( d' l7 L7 T6 G
' K% ~: G! Z* K$ o+ B9 z l2 z) J P0 m
|
|