|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) L8 B& Y& q$ w8 |
5 Y4 I! s8 W- MMover.h0 }0 X h" l( y( C* s: f v
代码:
' v5 t8 F) _+ X2 u5 P找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü2 i9 N) I1 d. j3 A1 Y2 g
9 [, g6 Q. u. g) S- b
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 v4 d* B5 V+ y( v2 i+ r
$ F8 W4 y- C9 H9 I" z* c Z( O然后你去mover.cpp添加
0 i1 z0 ^0 v& M) x5 z
6 e% p' e6 A. C2 R: O; |代码:" Y1 \, ~ s5 I1 |1 l
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )) \/ R% h. B% c6 |3 `# Q% L
{
# K3 M. K6 J) S- I2 T#ifdef __WORLDSERVER$ M1 `% Z& _7 w* O- L
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
7 ]) f+ o# g) t0 W$ z3 s2 n% m MoverProp* pProp = GetProp();
3 M" G( E, \' i7 T, W if( pProp ), n7 B/ L0 n% c9 f& O
{0 H5 L& U' }" v3 v* \' K$ g- j
if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 j3 Y6 |& [7 l( G8 o5 v
{
) y% {2 _: @- h, r, i4 T! h" _ AddChangeJob( nJob );
& x$ Q# Y7 w }9 e( l }else{
; k' W( a! A) i2 ]" }9 O return;1 l& O' ?* K A- ^! C3 C$ x
}- h# g, j" n6 X, R1 T& I
int nPoint = 0;1 G. W/ H; _$ ~( O
if( m_nJob == JOB_MERCENARY )3 L2 j8 ~, `5 a7 S8 _) _
nPoint += 40;0 e% m* _. [" Q* h8 n# a
else if( m_nJob == JOB_ACROBAT )3 X7 ~" N0 M' l( O0 a5 [: ?
nPoint += 50;8 R* b, T# j# |4 P3 ?" h, Y
else if( m_nJob == JOB_ASSIST )3 E9 D; ?) Y, x
nPoint += 60;
+ U2 |; j; e+ [" Z else if( m_nJob == JOB_MAGICIAN )
. `+ E; a- R1 C- L) W4 L nPoint += 90;% y0 M: C& u6 A/ x
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 @: I2 B3 ~8 n$ F2 K nPoint += 120;
; s! W! z0 z" G' x* t else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
/ Z- w# c8 |& N9 g nPoint += 150;
3 ^$ S% [8 x2 R* H+ u else if( m_nJob == JOB_RINGMASTER )
# T! J' Y6 e: f5 P9 i nPoint += 160;5 `$ N3 o( P7 j$ f; ?* ~$ y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 F1 B. C% S8 N* y, c N) y
nPoint += 180;
8 p7 c; Y4 O8 V ~3 F else if( m_nJob == JOB_ELEMENTOR )2 t! k3 T" E9 \; b& @9 f2 ?
nPoint += 390;& l& Y. z& L. ~9 I$ f N+ B0 B( f
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 n) B: J0 b2 f/ A5 ]# F7 Z/ U nPoint += 120;% J( `! K- Z/ Z# g* E
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 o. ? }& z; r3 @' c9 s. S$ i8 V
nPoint += 150;, a- l2 h% W7 c% i( t: ?
else if( nJob == JOB_FLORIST_HERO )
3 F% g" e* S& m1 K" h: X2 z2 i4 @ nPoint += 160;' s2 O) V+ s1 K4 K6 \ Q: a @
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ Z3 U5 p) g3 O( a9 S, U; ?, e
nPoint += 180;
: L! c4 w$ ^4 u! l7 t# b else if( nJob == JOB_ELEMENTORLORD_HERO )
! I& T# ?% o0 z/ q; O nPoint += 390;4 G" \. m5 \0 S! u5 c0 y! Y% ?
& c- A! M# p, S9 {
AddSkillPoint( nPoint );
+ G3 n) D6 Y* ?5 R* y& {# N( K" u1 }$ T m_nLevel = nLevel;
8 h/ l- J! H) O; G. k+ L1 V5 Z! }( ?% g/ Y5 f% B/ C
SetJobLevel( nLevel, nJob );
, T/ \. A! l/ w: z) F; [ m_nDeathLevel = nLevel;, K M4 s% u) s2 s8 P T& E+ G
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 I; A+ I! F. g8 N) q1 s if(IsMaster())" o. Y- `* @/ W2 @2 {% ~
{: v5 M2 n( y0 g, K5 ]* H
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# @1 H" @% \' [& Y3 E if( nLevel > 59 && nLevel < 72 )
7 ^: G4 E- d/ _1 q dwTmpSkLevel = 1;) k# v% C1 q: f5 r& L
else if( nLevel > 71 && nLevel < 84 )
. X( q0 M, q0 N& w, P/ {% L: Y# A dwTmpSkLevel = 2;9 h" r( ^, I" u, I$ p& f8 f$ c
else if( nLevel > 83 && nLevel < 96 )
0 x$ @9 y/ R' ?: J0 P dwTmpSkLevel = 3;
2 _7 I4 g# S- X' v1 X# O* f else if( nLevel > 95 && nLevel < 108 )
, X2 w* U$ u, B7 ^' p dwTmpSkLevel = 4;
- J- \* l6 `1 ]7 m0 j1 B) R else if( nLevel > 107 && nLevel < 120 )( F3 w; w2 W: `- p
dwTmpSkLevel = 5;" R$ @. ]3 |) d7 o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ B6 z7 G* I$ x+ n. m0 |2 w7 _) a, Q {
3 C" v6 G! F- @# t5 O LPSKILL lpSkill = &(m_aJobSkill);# ?2 \/ }( B! H9 x2 W( p
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 ~. Z( T$ a$ S" e
{' h3 ~/ }. J6 I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 r- I# d% ~: r
if( pSkillProp == NULL )# u w6 x2 ]8 D! o1 D
continue;( e0 J5 R3 q) `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; y- |, {3 F5 h J0 r: K+ v continue;) P! B" @. J# Y
lpSkill->dwLevel = dwTmpSkLevel;8 V4 }" U) ]/ |$ |
}+ c9 E3 x8 p/ p
}& w/ Q4 x Z# Z9 X& H6 P4 ]
}% Q* E2 z0 u1 U5 g9 T( U) c
else if(IsHero())7 j; F. u+ a4 ?
{% E8 d. G+ ^/ q4 A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 [* U1 c0 p6 ]. B3 S E
{ 3 Z1 M4 K% k( |# k' {- r' l# O
LPSKILL lpSkill = &(m_aJobSkill);
- A& b2 ?% X( B+ L if( lpSkill && lpSkill->dwSkill != NULL_ID )( ?( k) W3 @! M7 N) ?
{
: o! N+ u- t5 Y! o. a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 B* `7 X# p5 }* O5 _' i Q4 W8 n if( pSkillProp == NULL )% @4 g B9 ]+ {, R0 b% q- M
continue;0 N' X5 d5 h' K0 s' X4 ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* ?# \% s! J' k% d# Z9 \5 t* U& ?6 U continue;
: F. X7 e" I+ N& Q) \ lpSkill->dwLevel = 5;$ ~0 S+ \1 L4 |8 f) }
}" K/ E9 ^7 ?' m9 g
} |8 a; h! q, q1 T; D9 |
}
' S% r3 K9 Q8 Z$ ?- r3 [ else if(IsLegendHero())+ n8 i1 K6 Y1 A; ]/ s+ U
{
7 A$ R. O. m, S* @ for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( s$ s3 ?" P, O
{ 3 ?9 ]2 u. ` D6 x
LPSKILL lpSkill = &(m_aJobSkill);
1 P- I# j- K9 ?" e- d8 e if( lpSkill && lpSkill->dwSkill != NULL_ID )0 F* J4 L# C+ V4 n- O
{
3 j* {; h% h& x$ [2 ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); D7 W( F( U" k
if( pSkillProp == NULL )+ `- V. p' w K) }# Y
continue;5 S j3 O8 v3 q( c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' [6 u. h% S3 f7 |/ \& E
continue;" H+ u( s8 q A0 H& W/ P) G
lpSkill->dwLevel = 5;2 _! x8 I& G3 v, }1 ~
}
; {: S) m; x( j# A, u% | }
W, r5 s3 ?7 Y8 c }
1 O3 T* s& B, C1 G" ]' b! e2 {#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 G6 l0 n) J! F3 X' N1 D
if( bGamma )) \) Z# V8 s: D7 q
{ @% O- o+ Y4 c3 f! d0 n4 `
m_nExp1 = 0;# E! C% z7 U$ C7 D( s/ I! F
}$ s r8 ^) ~' E2 q( c' I
" _6 v9 O% m9 ?7 S( k4 f
( (CUser*)this )->AddSetChangeJob( nJob );
" Z2 v* g0 x. A0 ]+ w! O g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
; U/ t& a$ o+ g# A/ u7 i; ~
9 t, H% o5 Y( y9 a7 V9 l4 A1 n4 _/ ?6 G) a X1 t r7 g
#if __VER >= 11 // __SYS_PLAYER_DATA
6 ^6 z/ i" I3 B% _- W' z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 l6 h( x3 P' o* ~
#else // __SYS_PLAYER_DATA
: s% u3 y: o0 E g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, [( K; E* k' ]) W" Q1 q g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# k' d" {3 g' I; d
if( m_idGuild != 0 )
; H: z& ?% H9 p g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );/ t2 S4 H4 e0 U
#endif // __SYS_PLAYER_DATA
, B( k m" g% ]& ^. J2 n1 y SetHitPoint( GetMaxHitPoint() );
S; Q0 O2 f" L. C4 [ SetManaPoint( GetMaxManaPoint() );0 k/ K8 k# z' E
SetFatiguePoint( GetMaxFatiguePoint() );
2 O- N+ G, E9 C5 S% K2 ]5 m- W4 S if( nJob >= 1 && nJob <= 4 )7 x; J+ V3 V0 l
{
8 [; M1 z; q" n* |% A m_nStr = m_nSta = m_nDex = m_nInt = 15;* j$ q* Q, t' |8 p8 V
m_nRemainGP = 28;+ n1 W" \1 q" R; ?; b! `6 W; X
}
* u8 A# b1 a3 G& V if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# d" u0 N) F; u: X" j) t$ f; I {
8 W% N; V5 L' M, k m_nRemainGP = 118;
5 d9 G0 B# n) w' ]3 b# v8 G //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP; n2 d* x4 _3 }9 f
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 b$ A ] t. x- R1 O! ~
}' N& S% j6 t. G' x2 _1 D
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 U [+ D; i8 |) o+ \( x
{
9 O* N2 K- Y$ n9 i! [4 o) j# y CItemElem itemelem;8 b1 i) F$ X7 [6 ^/ W* ]9 w$ @8 A. K, v/ I
itemelem.m_nItemNum = 1;
; n. u6 n) B6 o' Z) d( d itemelem.m_bCharged = TRUE;# x* ?4 S) c- ]& g c; M d
BYTE nID;
X! p T: ^7 e
% y( M+ _" {5 R# V- y& l if( nJob == JOB_MENTALIST_HERO )
1 {8 j) g" Z2 }3 o. R itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* Q8 {; ?% b+ k/ M if( nJob == JOB_FORCEMASTER_HERO )
: S M9 @/ K: ~3 ?# P itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 o8 @1 o# I' a
* i2 `, e3 v0 u" c4 Z9 e" {
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, u7 H5 P9 J. D, d- |: G! D }' D7 R) r1 |7 D) @1 {' Q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: I7 G- c( F" E: X6 [0 h
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, o n. U H% R" Z7 O1 x3 L. w* j
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' t+ k8 C- E) }' Y9 X /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; ?' P% w5 H: u2 P1 Z$ V$ ] ( (CUser*)this )->AddTaskBar();*/
8 M, g0 }- r4 Z5 c. |/ n. O# A ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# G9 A4 i" M( q* [ {
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- K! ?9 L: y1 }4 j3 J5 } ((CUser*)this)->CheckHonorStat();; Q( T& Q1 s8 J N9 j
((CUser*)this)->AddHonorListAck();! Y+ C! l" ]1 `+ f8 e
g_UserMng.AddHonorTitleChange( this, m_nHonor);: Y/ p& y/ r; [2 b; ^. B3 q
#endif // __HONORABLE_TITLE // ′Tà?0 s- \1 {. [( \$ N4 E
}
5 T( e3 J2 S; B5 S) ?1 L# C#endif // __WORLDSERVER0 h1 ]* W/ a- @. L
}
! s5 v9 D: `% d4 F7 e7 K& } Y- k6 R2 n; ?
然后你进入functextcmd.cpp并添加以下8 P# d' o& X. G* ~. f
+ A2 s3 y9 Z: U, Z& n代码:7 s$ F& g$ b0 k' R" V' U
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 \5 \9 k( O1 `; y5 o5 B: B/ T. p
下面插入: {3 H6 j% `; s8 {2 r4 i
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 X9 ]4 J6 F$ p1 J9 l- K6 T6 C* j/ g J' [# g
然后你去( n7 e J: k7 Y T3 [* M8 {8 {% V6 I/ D
* o% i8 f* X: T( @代码:
/ H- o- O$ b* z5 }7 N( `代码, F. M2 ]8 x$ Z) V1 B: o
BOOL TextCmd_ClearPropose( CScanner & s )
( M4 g* `" `& Y{
4 U1 e0 B6 [* }' n#ifdef __WORLDSERVER
4 I/ \8 N7 N# I CUser* pUser = (CUser*)s.dwValue;5 k G7 s+ J2 |, Y7 R7 D% X& _
g_dpDBClient.SendClearPropose();
# T* v. G I9 ~3 {0 z) ?! F#endif // __WORLDSERVER
) H, o2 \7 A Z T/ T+ r! I return TRUE;
! q# r" ?: n2 m% x7 e; t6 @}4 t/ n% W* l% T
下面插入
" w, U) K R; ~BOOL TextCmd_rebirth( CScanner& scanner )- F/ P/ q. W$ K+ p l
{) t$ y6 _2 |- Y0 J
#ifdef __WORLDSERVER/ W9 V d& n6 k8 |9 {5 I
CUser *pUser;
3 n# [6 N P* r' j) p6 p1 x1 R8 MpUser = (CUser*)scanner.dwValue;; a8 k. ?7 [; E: H' e) w
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())% |$ E6 L+ _+ X2 {- }0 n( d' `
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 s+ p" r# v3 i6 [: Felse0 `' e) D. E+ \+ ]# f& U+ d
pUser->AddText("你还未达到重生条件!");* A! N0 j& J% Q* y. v4 m1 [0 _
#endif
% _9 I; H7 D5 x: [" _% F. ?return TRUE;4 M2 `$ F+ E2 }
} $ q! z1 o+ ?. \2 J' m$ P
4 F2 V( r- B! P0 a& a
: G( O$ ~4 o- `3 ~, D
- u5 x5 G# q) M T' {2 f4 `
8 B- s5 y. l% x1 w6 Q/ n- N
|
|