|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; l0 h) ^& o: P1 n( ^) t% Y; O# e6 C5 i
Mover.h
$ f( Y4 _; s- D- b6 G# N代码:
. A# @( D1 a4 ~) \/ Z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, a( p f, S$ _- U' K3 V E2 s/ j2 L* ~* T) [8 u1 H+ }$ [2 Q4 B
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) B; B+ h- q9 k4 E# n
# z! H" D, J. |0 r/ E
然后你去mover.cpp添加. C! `3 F& U9 f3 o/ H
/ v! u2 b S! e1 ~ t* i) c) j! P
代码:
7 D3 a% N* Q8 V7 ~# [9 Nvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
& v2 @9 c( d! u{* e( O2 o. @% v; K
#ifdef __WORLDSERVER
! L5 \" ?$ f. L* C* O; d6 x1 } // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- L9 Q3 h' L3 `7 L2 R. F7 k MoverProp* pProp = GetProp();
i! p& C. @7 _, U, I if( pProp )0 `) G! P, m" p1 h# N
{5 Q$ k1 t) u: ?+ P( D; f) Q- |
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, y7 |2 T. V+ C( i+ {1 i% p/ { {
_/ c5 C0 D' h7 |" P' l' j AddChangeJob( nJob );5 E) W y- {, i4 q# O( j1 [
}else{
/ a. w9 l: m) k: J return;. |0 k9 _6 [1 s5 ~3 H3 y
}
" z. F) P0 `( @: A6 p int nPoint = 0;
! v$ r& v, W8 x1 x6 ^! G |1 F if( m_nJob == JOB_MERCENARY )
- X) c5 N$ D% K9 [ nPoint += 40;
% |: P+ g9 x: f) ^( b1 Q' P else if( m_nJob == JOB_ACROBAT )
( d; u0 ~5 Q3 n+ [* z6 N$ a6 P nPoint += 50;
! |6 \* g n" t# m# o' } else if( m_nJob == JOB_ASSIST )
# p+ Z3 W v- f* M nPoint += 60;
, q% S3 _9 o1 ^ else if( m_nJob == JOB_MAGICIAN )
% o6 Z6 ]( H0 N nPoint += 90;2 L$ m& m X3 M& f; z( R0 I
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 C5 c& s; }% {, r+ Z+ `, k C nPoint += 120;: p1 o8 a" k/ J- ?6 X( f
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( v0 S2 N" |* z1 `& I- ]
nPoint += 150;
7 R2 @- J% J' r2 l% @' s) ?; H else if( m_nJob == JOB_RINGMASTER )
( p) r" ^4 `+ _1 @ nPoint += 160;& e8 B# \( d7 M+ `4 z- c) [
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )) @& U5 e# L p0 [! c1 q& p
nPoint += 180;9 w/ U: I# [) C/ g& l7 d) q
else if( m_nJob == JOB_ELEMENTOR )$ f6 {7 I. ^* r0 X
nPoint += 390;% u% B# a0 F, u+ I% ~
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ ^! u9 @# C2 X7 u- z8 L nPoint += 120;
% S/ d. p! I8 e* _ t else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; z& X! c7 o4 t' s$ @ nPoint += 150;
* v- Y- ^, _- E1 V6 m; J else if( nJob == JOB_FLORIST_HERO )
+ g& t4 ~$ l* k- X: Y; l5 q nPoint += 160;3 w" w' c( t9 m" k
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )3 i7 `9 E* N: V$ g$ ~0 _
nPoint += 180;
0 m; y6 U8 h- r6 f8 u else if( nJob == JOB_ELEMENTORLORD_HERO ) O# a4 z) P( Z o# \/ u7 X
nPoint += 390;: m# A( {' l1 [ ^
, v9 k* l# \# k' s
AddSkillPoint( nPoint ); W, v( [* F" N8 B* E: w
m_nLevel = nLevel;
4 n* @; M$ q9 `: H
- z, g+ R/ z) q6 B SetJobLevel( nLevel, nJob );
" @* t ]' h) W& ^( y% ?) T( x; N: Q& F m_nDeathLevel = nLevel;% T% Q) ]1 |6 X4 ? S
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ ^/ z1 C2 U& z% c K
if(IsMaster())1 x& V1 m8 P2 a$ w
{$ u2 z+ P: d! m; [. Y, Z% S' g
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. g9 a3 C+ m& k' m5 T q if( nLevel > 59 && nLevel < 72 )
! U( \! w4 z T3 s7 o dwTmpSkLevel = 1;9 C3 A0 u! o+ K) }/ G8 I0 ]4 j* b0 t
else if( nLevel > 71 && nLevel < 84 )& ~9 [' v$ G+ a8 c/ B+ q
dwTmpSkLevel = 2;
/ r9 ?2 ]" ^9 [. |+ ~6 ~ else if( nLevel > 83 && nLevel < 96 )
* n8 `( L: J- v+ R, o0 F/ z" e) K, H U dwTmpSkLevel = 3;( W: J' ]0 ^7 j7 S L
else if( nLevel > 95 && nLevel < 108 )
. b4 X+ t* e) w$ R dwTmpSkLevel = 4;3 s! `: T& i# {- e9 _+ q
else if( nLevel > 107 && nLevel < 120 )
; ^- T! y, y% J8 l7 W5 X6 i8 H dwTmpSkLevel = 5;
3 \% T8 ], ~0 k6 C/ I for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 L7 ~' g, R" P { ' V( l( Q( d/ `: B# r
LPSKILL lpSkill = &(m_aJobSkill);* ?& l6 {& `/ l8 w2 }5 Q8 q2 e
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 B5 O3 a3 e& _" X6 \3 w& I
{
0 W0 T: C! M% _1 b/ L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. _, I; R2 S5 G. Q- n4 ~' R9 ~" i if( pSkillProp == NULL )
( F8 q/ d1 I9 `8 s- p continue;/ p" P1 K2 w7 y2 s2 |* x n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( ^! h! F7 V" v& |
continue;! k1 R' x, \/ m, t, V" E$ h
lpSkill->dwLevel = dwTmpSkLevel;
$ m$ ]5 n3 j# G! a+ U' e }
/ [4 J h7 W5 \; v b5 _ }3 A" }2 ^0 g- T2 r
}7 Q' V0 `2 S' ^. O$ k9 l9 m
else if(IsHero())
7 q) c T- @2 ~$ n# r {
5 `9 q P5 D- x6 o7 e2 V for( int i = 0; i < MAX_SKILL_JOB; i++ ) # V* K0 P! G) a! Y" \9 i4 _4 ~
{
) M& n/ d8 w2 J* t LPSKILL lpSkill = &(m_aJobSkill);& O+ `- k8 d8 P
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ [1 ]3 L1 O& I, [4 G% d
{
/ z l" h: y6 O4 Y* v" f0 M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 W% O% N" W: g; j
if( pSkillProp == NULL )) `) W- P( S& n+ F& I
continue;, `0 f, m6 ~5 B0 T1 J) l% {/ U" j! a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% L! L ?8 {/ I( `
continue;
1 H* q6 G2 }- G, v3 t9 \ lpSkill->dwLevel = 5;
. p- _' q- ?; E7 S: J }6 N p* i# S5 q7 R+ D
}
. X b% T8 T% R# n5 z) a- E }
' |! W7 z1 z N! G else if(IsLegendHero())
; d" ]2 _. J L! C' i' z6 ` { S/ ]4 z) t( ?6 e' }
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - c3 b# V' y# ^; @/ M6 R
{ 8 v! J" {6 V$ ~8 ~; C; H
LPSKILL lpSkill = &(m_aJobSkill);
, F% O; D* h \* l1 o* n if( lpSkill && lpSkill->dwSkill != NULL_ID )9 H& } u% s) P8 Y0 |: R
{
" H0 V2 Q! u& [2 ?! m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % m" Z+ l: x% W, G
if( pSkillProp == NULL )
0 i) b. [% L2 ?* {9 Y9 H# z, b9 d$ E continue;
6 d( C- ]0 ~; ?9 Y. t+ M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 e8 C3 C1 M1 o, Z9 ]' ~ continue;' n3 p S6 P' H' `
lpSkill->dwLevel = 5;% g3 H1 u% n7 b% T; P" ], N. l( p
}
% j9 _% V. n3 N, A }1 z, a! q+ D, T4 g2 m
}
8 W9 N) X3 |3 z- n0 [/ c2 f#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 b* B2 y- j/ R0 p if( bGamma ); U' o0 g1 L! F
{
4 n5 l& }3 q0 D4 e- Q: D m_nExp1 = 0;
8 i5 O( l5 z: ^4 L$ K9 `1 g }
8 ?# s2 [! q& s1 L
8 \$ H7 @) R; |( n% y; a/ Y. ] ( (CUser*)this )->AddSetChangeJob( nJob );
4 G* K- P% @ q, Q6 O g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );) D( C8 K" z) Q) C" l
( R9 }+ R# A" i+ U7 i
; z: }3 P# E' p# l& U8 s#if __VER >= 11 // __SYS_PLAYER_DATA% Q L+ i" a' B; {5 l( P9 z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! b* P) d+ s1 L#else // __SYS_PLAYER_DATA2 y# Q: i, v& l' _' Z' `1 f* i
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 E3 J7 u! D% g7 G g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; J% ^" ?% E5 n3 p& [7 v* H
if( m_idGuild != 0 )! I9 S# B; P5 Z# x
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
# S. ?" E# V8 l% w( }8 k, U#endif // __SYS_PLAYER_DATA; D8 I8 d' `, j/ k0 y$ s
SetHitPoint( GetMaxHitPoint() );' U* ?& e/ q% H# @, V' K/ Q* ?
SetManaPoint( GetMaxManaPoint() );- P) `. G* K( O; T1 `' C
SetFatiguePoint( GetMaxFatiguePoint() );# q3 j( d$ w0 s; w$ K# ]( F
if( nJob >= 1 && nJob <= 4 )
, u. H$ T6 \" ^) F {1 T9 m- m5 v' [& I2 R1 W
m_nStr = m_nSta = m_nDex = m_nInt = 15;# p+ z- _- r' q5 P0 m
m_nRemainGP = 28;
8 \2 d0 T5 A0 X+ S' Z }
; m. s3 c c4 v1 }1 o if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 Z) W" ]8 u: I3 [ {+ v( o! U/ S1 o" I
m_nRemainGP = 118;
! x0 g9 N2 i4 X# J: Y //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 j2 Z& V' q( {2 n
m_nStr = m_nSta = m_nDex = m_nInt = 15;" {5 x9 V0 P- w- t8 ]
}
1 u2 D; u* N: ~, q. O4 i if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' O6 W. s. c7 w* G R {
1 M4 K& k3 ~5 J) j" ^4 s4 w$ l3 W CItemElem itemelem;
5 P2 U) k: z, b itemelem.m_nItemNum = 1;( t, w+ ?2 P, W" s0 e2 c
itemelem.m_bCharged = TRUE;
' K. y9 P! V$ S4 E5 D BYTE nID;
2 ~! {; r7 t0 d P2 ]. [4 F
( T- m5 A7 |: |4 [2 R( D& D% J if( nJob == JOB_MENTALIST_HERO )2 s6 Q2 V+ b( A0 L; N
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. J Z) p |/ l. o) l if( nJob == JOB_FORCEMASTER_HERO )
- J' T- N6 g" M; T2 G8 f. w itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
3 `8 @) F1 T& W9 O1 b, j: v, U1 J
( ( CUser*)this)->CreateItem( &itemelem, &nID );
: V' s1 v, f6 h0 r! p% R. U, ? }, }/ [4 `2 Z: d2 |
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) o* f! ?9 \/ ~5 H L ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );) g" E# D. ~$ Q! C+ x' n( X
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );# i4 n) s- m* m ]2 q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 m# M; g- x0 c: |6 L: {% ]# t ( (CUser*)this )->AddTaskBar();*/
! F4 P" a1 Y4 B* R$ r ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 U% ]+ l$ ]. Y#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, H4 M# T; a j% {' N% [ ((CUser*)this)->CheckHonorStat();3 h, Y; x- A# {3 m/ V
((CUser*)this)->AddHonorListAck();
1 K" T* q9 A G7 k8 o3 X g_UserMng.AddHonorTitleChange( this, m_nHonor);( J" ?8 T. v" U* D @& v I
#endif // __HONORABLE_TITLE // ′Tà?
) [; u3 e" g: i6 L! [2 i d6 W2 m# @ }* @: N) a3 r" p7 S6 s& k
#endif // __WORLDSERVER( i' Z; ]/ B% J; |$ o
}
5 j7 T! O# O+ f5 f0 Z
; p/ R" ]4 Y9 e& J4 Q5 p( f8 B然后你进入functextcmd.cpp并添加以下
: r$ {% B/ _1 W- ?2 c7 F
, S6 \, [6 K, N代码:
# m+ ^2 t! ^; A8 y9 }ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ W# W" f! s R8 ^$ g3 A4 S+ Z1 k下面插入
1 f0 U# f9 w: D O) w b; ?: iON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ d8 X2 O: h* A. Z$ T9 M* J
% x3 U" H) V! ~, d- U4 X然后你去
9 {1 j9 S' @, y: W) H& ]: n/ L
& ^3 k. x' `6 p% z代码:
! ^0 |1 J3 Q; P3 S' e代码
: E/ V |# L9 [* g+ a8 U4 aBOOL TextCmd_ClearPropose( CScanner & s )
+ [8 ~ A! A& M8 u9 j6 r% h{
: o8 K$ W9 ~2 d. B$ u. u% A#ifdef __WORLDSERVER
' L& ?4 F- u) [/ h8 p+ w CUser* pUser = (CUser*)s.dwValue;
0 p1 `, E$ [# {+ {/ X- x) P- R, z% z8 V g_dpDBClient.SendClearPropose(); t5 S$ B. E" e3 x
#endif // __WORLDSERVER6 |$ ]1 c/ `+ y% V- P0 R# V% _0 f$ p
return TRUE;
, p* A, _# w6 m( `+ J}
4 X A0 ~2 S' v1 r" m( \8 N下面插入, U& a& O$ A, J& F
BOOL TextCmd_rebirth( CScanner& scanner )& y( a* Y" t4 X$ f' c& Z
{$ x7 z! l" i; f* ^* d) m- {0 S; H C
#ifdef __WORLDSERVER! _$ z1 _" `0 v' z, W* }5 u8 ^
CUser *pUser;
7 R0 q' \, C/ g B( ?5 ~pUser = (CUser*)scanner.dwValue;9 m- l! t6 \7 ]. b
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: |. c+ c' u% ~pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. T. g. T) l5 f$ G+ ]8 Delse
7 ^# Z$ `; w/ o, V+ EpUser->AddText("你还未达到重生条件!");" ` z6 k8 o% i6 K2 P
#endif
+ L# m1 x5 i- Xreturn TRUE;/ M. a# Y J( C8 v. d7 m' I! m
} - O7 n# E" v( f
! Y2 Z$ H' E/ {+ M' P; O( L( @) H
$ w8 j+ x0 C& X6 h" B6 B
# v) _2 ]9 T; c: k. L6 g
+ i+ T' T9 E4 [+ [3 W |
|