|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ @7 Q' Q+ B+ @% K; _% t9 D+ o
7 e0 }6 F' {5 T1 I, A9 E$ {+ @$ _Mover.h
, R" p+ h2 a+ _" y代码:
. i8 I2 ~6 X5 u8 V, g' _找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( |- j% h) V' j: T. e2 |
+ P: e/ A2 X/ N5 H$ Q- I
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! D# u7 i& H- g% K& \9 X/ k
0 Z! r9 y( j9 x' E然后你去mover.cpp添加
$ y- s4 o2 @: w& r0 n1 t8 @+ U5 |4 }
代码:% J6 s" O+ y; }% z; h
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* L z! r5 O9 k6 [" C$ t{) a$ X6 o3 e4 U
#ifdef __WORLDSERVER
0 B: b+ I S3 w0 M0 j2 }$ ?+ ~ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: j1 j5 f! [: G! V; p. M) ?, K MoverProp* pProp = GetProp();
) S) F7 B1 B6 e0 f% F7 G8 L; D if( pProp )
/ r4 p& D. N* l0 `' i1 ^% S+ G {% O& d6 L' D3 S! h4 v
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
& X9 A! p9 P* T I {( _3 A. e/ y; s3 J1 P' {
AddChangeJob( nJob );
- b) m6 C2 f$ z/ ] }else{
/ f% {: |9 ^9 B, S) T return;" [, c. K( S0 R- m( d
}
- l l7 d" S6 {4 S int nPoint = 0;
) d' B/ o2 O( G; z8 m N if( m_nJob == JOB_MERCENARY )6 i r* u S3 b z$ J; n: S8 t
nPoint += 40;+ T& @0 `5 v6 M; _& [* _# b
else if( m_nJob == JOB_ACROBAT )
+ E7 q" p( ^2 ]" m4 @; J nPoint += 50;
/ ]3 y; _0 U% i! K! E# N7 o else if( m_nJob == JOB_ASSIST )% Q1 u' W* T* u6 j: J0 p9 F
nPoint += 60;6 p5 Z ]9 H1 L
else if( m_nJob == JOB_MAGICIAN )
2 x- }8 z* |# d( j, V. p* Q nPoint += 90;
" C+ L8 N5 q9 A" m- Q: Z; g C else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; D# `" o( ^/ k0 ^2 _; K. S nPoint += 120;( c4 V) ~: F: w! w% W
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. }' w5 u- u$ p& s- e nPoint += 150;
{2 V X/ i1 O: t5 `/ l" ? else if( m_nJob == JOB_RINGMASTER )
$ g" H6 G+ L( k. _ d: h3 k8 j nPoint += 160;% L/ x- h& v4 t- @' Y; C# k- r
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )$ h4 Z# O1 U/ b% `. Z
nPoint += 180;, u0 c0 k3 M# e! {8 A
else if( m_nJob == JOB_ELEMENTOR )* U6 \! s! c; @6 r& }. f# ^
nPoint += 390;
% a2 W" }9 p' E0 N else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ f9 ~' p; T! J( |9 I nPoint += 120;
& C3 a. b/ N, p: z else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). T& g5 v# p, P
nPoint += 150;7 c/ L' I& o( R$ m x
else if( nJob == JOB_FLORIST_HERO )' K- B- o# A) z2 k- V
nPoint += 160;
; A/ E& s- x+ b [ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
* t. S$ g, }$ \- d }8 d nPoint += 180;. D- F( ^+ k7 r- E3 ]. b
else if( nJob == JOB_ELEMENTORLORD_HERO )
8 F2 }6 }6 I- _+ g" E nPoint += 390;
% j: \, ?6 b& \7 ?# N9 d2 O5 Z& L' E' n9 H9 g
AddSkillPoint( nPoint );7 a/ ]; w3 h& h- }! j5 i6 u x
m_nLevel = nLevel;( O- w6 c- c- m, M. n
, z7 J% L j. l* M& o% G
SetJobLevel( nLevel, nJob );
4 I; [5 k2 s o9 ?* n8 Z m_nDeathLevel = nLevel; m7 M) D: z) n! V
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) T+ z1 n' X; e9 H6 H
if(IsMaster())
- ]/ L' i& `0 [2 ]& J+ [6 ]! X {2 O5 B. y0 V; H6 L% p
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, v( v. }. r z I. U5 V9 s2 T$ C8 { if( nLevel > 59 && nLevel < 72 )
/ y5 P- b5 K; ^, q# A dwTmpSkLevel = 1;- e# q) g* \& W' s
else if( nLevel > 71 && nLevel < 84 )
. r S, z* C$ }1 _: a dwTmpSkLevel = 2;
+ K* R& g% n1 }, U& w else if( nLevel > 83 && nLevel < 96 )5 b6 S/ h# \9 u1 {/ S
dwTmpSkLevel = 3;5 G; A- y& d8 d" U& s. T
else if( nLevel > 95 && nLevel < 108 )
6 ^5 y9 U9 V) ` dwTmpSkLevel = 4;/ j7 G' [) j- U0 D3 _( j: d1 K% p
else if( nLevel > 107 && nLevel < 120 )
, ?7 C7 s) _6 b dwTmpSkLevel = 5;
" t4 C9 g0 \. C4 P0 l, b' {* A0 \ for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 M6 L B& }; ?5 b) l {
1 V# P" U: x) m9 R' g4 j LPSKILL lpSkill = &(m_aJobSkill);. z% b, a) F- g! i
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 \* H! e/ ^9 A& Y) q, M
{1 |8 q, \- e) v" O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ E& k0 R" b: o0 J# R, X if( pSkillProp == NULL )4 v, s0 D' N N, N8 o: g
continue;1 \5 q" U& H' T, t; f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): g' X# D4 C: f3 r
continue;
* Y; G6 c0 {* `) h$ I6 J. J lpSkill->dwLevel = dwTmpSkLevel;: l t6 L8 a* `4 s( f
}
. R4 R0 k7 H1 q; U }" c1 N# m D9 ` D# V) k. ^
}
1 y2 Z R/ r0 _4 ^6 ^1 g- U else if(IsHero()). f" Z* E$ j( C
{
( K8 P( _& R* E& G. c5 }5 V- \ for( int i = 0; i < MAX_SKILL_JOB; i++ )
; p( A6 _) ?6 z; p; _ {
" o3 r# u: x5 I0 e# G LPSKILL lpSkill = &(m_aJobSkill);& o! D A4 d" A8 O n4 p+ V* B3 F Q
if( lpSkill && lpSkill->dwSkill != NULL_ID ). X! Z7 I" b$ f" T" [
{+ K* t5 s$ G0 y5 o$ a/ T; s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 O" t; g& _; j$ n1 k/ s) L if( pSkillProp == NULL )
& P* B( M) B' @2 T continue;
+ `" h; q' t! h: M' S+ Z. K0 f( T if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% p, q7 M" Y H6 P4 j
continue;8 v; @: i f1 x3 B5 q; [; v: H1 `
lpSkill->dwLevel = 5;
( `/ q! Y! u# ]' F0 B5 I }3 I, h8 W% n9 O) H" d: I( o U
}3 w* ~0 B! g% p( H3 |6 d% {
}; u/ u9 Y' F( d& \
else if(IsLegendHero())
4 Q" e- e; n" t( v7 q- k2 b5 C {
! ^+ N0 k( M, |4 Y for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 l( u9 M5 ]& |! W6 T# J, V {
, u1 D0 m! x3 B8 p; ], z- b$ E* ~9 l LPSKILL lpSkill = &(m_aJobSkill);# \) v9 v- Y! \; e
if( lpSkill && lpSkill->dwSkill != NULL_ID ): l7 D7 h% I2 \* [9 Y2 ^! @
{
2 r' p# ~8 [0 n7 S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ U+ n+ z8 @/ G3 w if( pSkillProp == NULL )! u' G5 ?1 h+ r1 p& n- o' Q
continue;
5 x8 I* j# `6 N4 h1 l6 F% v' p, U7 y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ a7 N3 U/ Q9 s, H
continue;
5 D% W" b: N" H; x lpSkill->dwLevel = 5;
/ G2 m7 p& z. ?/ z2 O# O) {/ C }
; f6 B" Y" i! x Q: S: o }5 I7 d: R3 n1 p4 q0 G' {9 U# z
}
/ k D: I4 G, J1 @- y* _! X& n#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 G. i/ b$ ~9 i9 H7 c/ l0 T ^6 ?
if( bGamma ), C- q6 s3 L9 k( J# k" b
{
8 O' H* n9 O' n, b& O4 I" I: \# x" o m_nExp1 = 0;
& L1 B7 D# l- R4 a O# i4 h }
, y/ _2 P: o* Q1 z( V; u2 K, T
9 ?: `' I$ M/ q ( (CUser*)this )->AddSetChangeJob( nJob );
- y& i# Z7 x0 e g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 D a) g) p3 [% c- t4 C3 F, `, ], G) l
6 ]/ d1 L: V6 X$ z, H e! k
#if __VER >= 11 // __SYS_PLAYER_DATA
: t% @' t4 J6 F8 @& ^- C0 | g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ x# ^4 {; S4 |7 }/ R$ B
#else // __SYS_PLAYER_DATA6 A5 y4 B8 P5 H7 k3 {* W6 \
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ u+ I1 m6 E! U0 x( |/ f
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 Q' r1 c5 o' e if( m_idGuild != 0 )+ d8 q5 d1 g( j) O: ~# C
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: v8 O( W+ R; C
#endif // __SYS_PLAYER_DATA
( }- T; J- J2 A5 _7 r2 s SetHitPoint( GetMaxHitPoint() );' m( x. G s4 U) V
SetManaPoint( GetMaxManaPoint() );! O$ a$ I# ^$ N! K. m
SetFatiguePoint( GetMaxFatiguePoint() );
, [* B, e9 V4 ?( | if( nJob >= 1 && nJob <= 4 )( X2 k/ b g! u7 q0 i9 J# o
{
# N2 s" G) l6 l. {+ }1 y2 x6 K m_nStr = m_nSta = m_nDex = m_nInt = 15;" J' I' Q) a4 E2 |7 c
m_nRemainGP = 28;) _# c! I% N* y
} V( T+ {% H( m$ ^0 s. Z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 I. v8 M. ?/ W# f/ E, m% }
{
' A' s9 E6 M2 q# ]! e1 S- i m_nRemainGP = 118;2 f* F+ {) x& h
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
- }8 {- t0 N9 F( v1 o$ e m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 f( ]( o* g# @8 L3 V }/ D7 S( `" K9 a f( e" o
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ), J5 Z- \, G* c9 `$ y8 H6 P
{
9 ~( d) y( }7 ^" R( d# R. M5 Q CItemElem itemelem;7 e+ y, [9 [: W3 o3 @1 O% Y
itemelem.m_nItemNum = 1;: u. m6 h { _; i
itemelem.m_bCharged = TRUE;
+ M: w( P% y7 O* f% n) d BYTE nID;8 G0 {: E0 f) d; T4 a/ ^1 q
- ~. H! T. J6 W! S& [ if( nJob == JOB_MENTALIST_HERO )8 U' Q/ c8 R W% R w
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) t% M2 C9 Q' a5 c/ C: l" R if( nJob == JOB_FORCEMASTER_HERO )
) ~, L* M+ P* N- n+ b6 b itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, r7 n2 ~3 o6 u' K8 c/ F, k3 V
# L7 g7 m0 X' C7 \; N/ x ( ( CUser*)this)->CreateItem( &itemelem, &nID );% A; y1 ~6 @1 K' B
}6 x" Z5 Y" U9 [/ [# x- C
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 J; i3 r% K( w& Z& Z4 Z4 c ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 _9 x9 @5 j3 F* v7 r% z, q ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: [/ j; w5 q) M0 l /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 D+ P2 }5 n* O( ~7 |7 ?6 k ( (CUser*)this )->AddTaskBar();*/
6 A4 H( F ~" k ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! ^* t: f" l5 M: B#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?; [+ G6 d! {; \# o
((CUser*)this)->CheckHonorStat();
2 W0 m9 ~, {2 J3 M# W8 T7 e8 m ((CUser*)this)->AddHonorListAck();, a, Q1 U8 k5 ~) V" T, G ?
g_UserMng.AddHonorTitleChange( this, m_nHonor);' B2 c2 e; D$ c' b: O" V
#endif // __HONORABLE_TITLE // ′Tà?, W# v! M0 H7 d& B& ]( [4 U9 U4 b
}9 j% p' q# q s
#endif // __WORLDSERVER
8 T/ a; s6 X @5 m. ~( Q} 0 ]7 [ D( V( P, J: c9 l8 [1 f* d
2 C: E. q2 Q0 I* L( f0 Z& w
然后你进入functextcmd.cpp并添加以下
: K( [8 `; V: u8 s! g/ Z8 V4 {" f
代码:
" Z9 l) Y# d, g7 O% A g$ [1 LON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 T% `! k, ~# h: _/ v1 |" r5 G) [- |1 r' g
下面插入/ c% K7 N- _0 j8 C
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 J& B, _. \; c5 ~2 J, z+ v
9 F( e" ^4 E* |然后你去- L9 a3 p |5 f6 c& E* P
: j `; Y4 a! \' m( a代码:$ x s0 O' q9 ?8 s' c! T8 l
代码, ]% ~, a2 |* T; Z# v
BOOL TextCmd_ClearPropose( CScanner & s )+ x. [: s1 ?, k8 G7 p% j
{
. T/ Z0 C, r, _#ifdef __WORLDSERVER
% F) t9 J( U6 c9 u7 b2 _ CUser* pUser = (CUser*)s.dwValue;
, Y0 A& G' k' k g_dpDBClient.SendClearPropose();/ w/ k( o7 Z' j
#endif // __WORLDSERVER
& Z K6 K# G* Z return TRUE;& m$ G! i* e6 O8 S% `# C6 m
}
8 S5 N* @ G* Q: @$ R; {/ c2 ]下面插入, w( \: l/ _# R! _/ Y7 l
BOOL TextCmd_rebirth( CScanner& scanner )
( v$ s$ |3 i: K{# L w/ A: @* o, n" W# u0 A9 \. \0 ?
#ifdef __WORLDSERVER3 s0 U$ S) `' M* `
CUser *pUser;5 w @0 _1 Q7 I# e2 V
pUser = (CUser*)scanner.dwValue;. t0 V5 ~( c% q! {6 S
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 }# \( d$ X% E" }' N
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
}: d# b9 V5 d* r1 P/ @9 gelse
, F T! q8 d/ o3 OpUser->AddText("你还未达到重生条件!");* v/ A' _! c9 J4 M+ g% y. c
#endif8 f$ Q% i8 n: K
return TRUE;
* I7 L8 i p; @4 r( Y6 d; K} ) @+ v" T* ]% Z- V# ^! L2 f9 L
5 c2 b w5 H3 j) }* E; P4 [
1 j& y7 ?* O) f& h, H
# R) s( @+ ^7 O# A- s- ^+ I Y$ W" N" M. j
|
|