|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ J' J* F X6 @3 w7 s; D* g- U( W" s! ]6 e* Q4 E
Mover.h
! ^5 b1 z$ c7 q/ K3 @' e/ u& j! `- n代码:
6 n |6 |4 S6 z9 K6 p% u% V找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
2 d/ E1 G2 [5 I6 A; j+ g. t7 e0 t2 w
& L$ A) a' s- ~" O7 D9 Z: i下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 c- q/ p) v2 N% n0 w. s# Z1 _. V
1 i9 ?, N( a/ k) h5 t# G, @然后你去mover.cpp添加6 v8 K' Y9 B) a! G' E
% s9 H# F, V3 M. D& ]- m0 i# V代码:
! E0 {- `/ D: E2 _void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# V9 B" z; \( Z2 x: E4 y. Y{& K* s: q# a7 P) x3 V
#ifdef __WORLDSERVER" n$ U/ `. d8 \' E: t
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 M! Z2 l, O, D8 C' F8 g4 } MoverProp* pProp = GetProp();) E4 B. T% N# s
if( pProp )
5 z2 G7 |! @9 ?( K {+ u3 W4 l# |. L
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( R0 E6 _2 U5 ]# a+ _ n6 f+ F {
* v/ s; l& Q* ?5 M AddChangeJob( nJob );
2 ?9 ~4 ~6 H( Y }else{
. Q6 ^9 v6 `, L K return;
/ x' T I9 z2 x7 `4 I7 d }0 d1 q" g6 G& |3 {! o! C
int nPoint = 0;
3 m! `& _' z5 ~% q if( m_nJob == JOB_MERCENARY )7 N, d0 {5 u7 T) v0 W$ c
nPoint += 40;* p- W! g1 b/ I0 i: F0 _
else if( m_nJob == JOB_ACROBAT )$ {0 ~ h$ \. M' N% j' O( m
nPoint += 50;6 |' C7 X# H c( h A4 ]* k7 d/ Q0 K- _
else if( m_nJob == JOB_ASSIST )
8 [3 D% [/ S" M- s' ~ nPoint += 60;' ?* K0 O/ H s/ A, t j
else if( m_nJob == JOB_MAGICIAN )
' o4 {/ a, D- i8 P9 R9 t5 Z nPoint += 90;
& o& O `. A0 c% G, N, s1 | else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): j* T' G+ \2 }/ ^1 N: R0 w
nPoint += 120;
" Q5 y6 b2 n* ~' R9 b J else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
1 X' `& O7 w @. X, F7 Q nPoint += 150;
) b& U l* k% T% y% n! \) _ else if( m_nJob == JOB_RINGMASTER )) N, c0 A: d9 h! Z! F
nPoint += 160;
0 E( L) \' I% l* c# ] else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
T; u. \( N2 V1 L1 d/ i nPoint += 180;: w1 @' J3 q9 Z9 D
else if( m_nJob == JOB_ELEMENTOR )8 m( n9 n- c( M) u
nPoint += 390;, q) ]& l3 h& t/ r
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* ~6 S( L, O/ Q4 R3 A5 _9 o nPoint += 120;, B$ z8 f" B, a% R
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
' Y0 }$ N3 Y, \# H: T. I% P nPoint += 150;! B9 w1 I ~9 n( g7 ^
else if( nJob == JOB_FLORIST_HERO )1 s+ n! \8 I9 \* p8 k8 Z
nPoint += 160;
- f' }4 G; P1 I) i; U6 b else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
+ @. x2 k+ m5 ~9 x; n nPoint += 180;
& D* R ]/ \, q# \' `/ Z3 U else if( nJob == JOB_ELEMENTORLORD_HERO ); E2 m/ q" _& o' {1 Q
nPoint += 390;
! B1 x5 N* g3 B- K9 {1 }- j$ G& V4 ^' i9 v0 \
AddSkillPoint( nPoint );2 H7 N4 _1 x2 o$ Q3 f. q
m_nLevel = nLevel;
& @& _1 x$ ~0 }1 }. H4 ~! U4 h) P* Z# s
SetJobLevel( nLevel, nJob );0 s2 ]$ f0 |* U" v5 R
m_nDeathLevel = nLevel;: g1 U' D8 d8 E' R, A2 `9 v
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# Q; ^! e# ]6 w: G% K
if(IsMaster())
Q4 B0 ?# U( |& ] {
7 u, N C" ?$ V+ x6 t4 v int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 i5 y1 U! [% B" g F/ _ if( nLevel > 59 && nLevel < 72 )
) g9 m, Y" P0 g/ G% v4 Z dwTmpSkLevel = 1;; `+ i1 @* J- j4 I
else if( nLevel > 71 && nLevel < 84 )% p0 ^6 U/ @: Q" J H3 L) x
dwTmpSkLevel = 2;
4 E. R/ x* I. {+ y. _7 C else if( nLevel > 83 && nLevel < 96 )0 _ ?; I9 B' ~. k9 u1 J
dwTmpSkLevel = 3;" ^6 ?1 K3 f+ r5 a; f8 K
else if( nLevel > 95 && nLevel < 108 )5 V# M# ] {0 o s* \$ p
dwTmpSkLevel = 4;7 T P9 G: S5 I6 Q, D5 [
else if( nLevel > 107 && nLevel < 120 )" Q- Z3 I. C, {! w& Q& C
dwTmpSkLevel = 5;* |4 A8 I% L" A" y( p' I
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! W% W: a q; w' C* M- r- J {
, n6 u, C" J; j7 N6 d) R LPSKILL lpSkill = &(m_aJobSkill);
' n8 }' f8 @# s9 @/ V if( lpSkill && lpSkill->dwSkill != NULL_ID )+ u$ H- C) k2 k* w; |+ W
{
. G v& j8 C# C: X+ r& f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& w$ h' Z2 |. M" C if( pSkillProp == NULL )
$ A5 d/ v; j0 ] continue;+ \3 p8 {1 R3 O' V# I; ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 O- M: c- n! G5 ^$ j( |, G; g3 J% D continue;
' }- Z4 R' | ~5 p/ u lpSkill->dwLevel = dwTmpSkLevel;, T0 v6 Q2 s, ~7 t
}: S9 u8 r# m+ x+ M1 [7 J9 z( q
}( M- t, }7 l% s
}0 z5 d$ S: ]" t# P$ h" s
else if(IsHero())
5 u: g* y8 S1 Z {- T" A" V4 P7 v
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * q) s, p" n/ O# I* J0 C. T1 e4 A
{
* I0 h% F" c5 n7 i LPSKILL lpSkill = &(m_aJobSkill);
V R7 I# R: i8 y/ y if( lpSkill && lpSkill->dwSkill != NULL_ID )
: [5 G: p* r4 U* M8 U0 v2 b {
* e7 q0 U1 Q9 U9 P M- r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! k% Y$ ]1 K* Q! q6 h" k if( pSkillProp == NULL )% r3 | q i- j K" y0 l S
continue;
8 r3 T" ]4 `6 Y0 H0 _% u$ N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% _4 H9 ~2 }# r- r4 h$ C1 q continue;" j# |. D9 h. G
lpSkill->dwLevel = 5;
& n; ^ Q4 I/ p6 y4 U }5 A/ ]$ C3 ^$ b' i+ T- Q
}( P) Z* h+ S6 L1 I8 n
}
: Y% y' d% ?8 r- i( ]0 A else if(IsLegendHero())
- ]9 J$ ^, k2 n9 X- a" }: g {
# ^# j/ B9 q: ^8 i) m for( int i = 0; i < MAX_SKILL_JOB; i++ ) : H( o! b. i$ L$ c
{ ! ?- v: H0 i% A% b4 M
LPSKILL lpSkill = &(m_aJobSkill);5 W5 g$ N6 ^3 e' E! n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 o6 H; K4 a6 _# C W$ X$ L {6 M& B5 W1 @ Z5 T( j2 p+ W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# B' P& [/ s0 z8 N if( pSkillProp == NULL )
$ p0 X+ h5 ?# P; _5 X" f8 Z continue;
: @6 a9 ~3 u [: V; K; J R) a4 { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 P. m( w: f7 m @0 H k continue;
& t! {! E3 r1 j1 u1 k lpSkill->dwLevel = 5;1 S5 `/ V2 ^1 s# c3 {4 q/ ~
}6 P% D5 Q$ u, n/ }
}
# h$ M0 h" G- q; Q" {. m! t, n }9 u. l) {0 a6 r) a
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 q4 p B5 `2 W. X, \) C# ~
if( bGamma )0 x i$ l5 C' `$ L3 r
{" ~+ J0 V8 c% K9 d$ T$ q+ h
m_nExp1 = 0;
, b8 E) o$ U' l }
2 i" M. x% e o. ]; M, O$ d! }& Y5 h5 |8 W# M" C3 C! R$ `
( (CUser*)this )->AddSetChangeJob( nJob );
+ h. j! }4 Q& P g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
b* C& b: e( J" V3 z$ M$ V0 N; n# r+ O# l8 A: A
* }" \: p4 @$ M$ o5 |% x
#if __VER >= 11 // __SYS_PLAYER_DATA
* P% v. D0 F& W2 I g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- y: D* o. r' w2 L& {0 M3 S( A#else // __SYS_PLAYER_DATA$ D! [! L9 m- R0 g- ]
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- |) |$ j1 Y' D' r s
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 X2 S& T: _( {2 m if( m_idGuild != 0 )
+ f" _4 T$ ^8 T8 {2 l% ~ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; E p% B+ l$ P/ \. I#endif // __SYS_PLAYER_DATA
{6 p0 p* ~5 m% C& ` SetHitPoint( GetMaxHitPoint() );: u4 G, p2 ~- B$ G' z" _
SetManaPoint( GetMaxManaPoint() );
" \8 J$ J& H4 D9 `; w SetFatiguePoint( GetMaxFatiguePoint() );' o/ M3 K7 A9 `% _: l+ a1 u
if( nJob >= 1 && nJob <= 4 )
. W P0 }$ O2 ~" Y% M* l) a, m {, o+ X* W2 w7 b' `) ^. V2 x- G1 j
m_nStr = m_nSta = m_nDex = m_nInt = 15;/ T) _5 D: A" P+ q! F4 a
m_nRemainGP = 28;( S7 a @2 _; z2 N# @
}
{; f* O1 x% V, i5 E4 W. O5 ] if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )% `' h" G* ?: y3 I) n9 c0 q9 o) r
{: a9 _6 w; g- |
m_nRemainGP = 118;
6 J4 ^( `* u* J1 I //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 Y3 ]5 k+ H" n. L m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 ]4 k+ q( A9 u& z }
$ f+ G$ o" k# `0 x if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
t6 h7 a. l2 |; h( F; ~ {
7 e1 Q9 D* F3 _" ] L( @# z6 B CItemElem itemelem;
( E" o9 N6 B# U& p/ p itemelem.m_nItemNum = 1;2 }' _9 f! A4 K& P
itemelem.m_bCharged = TRUE;
$ Y- D1 @6 |+ I! W6 G BYTE nID;
6 k+ B9 B7 h8 G, v6 U8 c; T
! B' v5 ^, W8 T" ?) r: i if( nJob == JOB_MENTALIST_HERO )
) \& ?# [: L C: s7 f itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" X4 U; I/ J" D, O w! [" k3 M
if( nJob == JOB_FORCEMASTER_HERO ) c) a9 K, x0 N& ]" h
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;/ [" W% ^4 v' }9 `$ W' n* p. [5 H
' w* h6 S6 B/ G% q' a, z ( ( CUser*)this)->CreateItem( &itemelem, &nID );
2 E3 @7 |5 M1 M8 R- P0 | }( ]- o2 T; `. B5 T# `
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ O2 d5 F. o* D3 G5 d/ o3 s
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 E! ?" ]& I1 D H
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ w& n! V1 n; A) m" ` /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
' G; ^- m2 S+ Q4 s9 k( y ( (CUser*)this )->AddTaskBar();*/
2 F. k7 v9 S* A$ h7 G8 ^ j ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 O( u' A' T+ g: k( n& d+ D7 x#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' ^0 V5 c- M; N# [' [ ((CUser*)this)->CheckHonorStat();4 |# F2 L$ i' g/ P: `* i# @
((CUser*)this)->AddHonorListAck();5 g" P& R; S R$ j
g_UserMng.AddHonorTitleChange( this, m_nHonor);2 _, r9 a* c; ?& B7 _9 ]4 {
#endif // __HONORABLE_TITLE // ′Tà?
2 @6 D# `! E t* @ }
& v; T9 o/ [ D% I9 I' V* d8 [#endif // __WORLDSERVER; R+ M. k+ e* ]( p
} 4 y6 U8 H9 l. N; ?; l8 [* }) L! L( V
$ q9 r$ b; R0 e/ d
然后你进入functextcmd.cpp并添加以下% q7 ]5 {: \% x- ~ x# E' w
* b5 w7 v+ C0 d代码:
* r0 ? P; H$ W' J2 lON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )1 J3 m6 d$ z, U6 U
下面插入
* z+ V4 t- t% q/ T& D$ d! v: R, ?$ sON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ! y& o- _7 f+ g$ F
! w, s3 Z6 V" V6 t' O) H然后你去
, t; Y! L3 O3 i) ?& t) H! \ j% }) d- }+ ~
代码:
6 _6 |7 l2 k1 s: k- _代码! a! J% ]& q8 l( l* V6 h
BOOL TextCmd_ClearPropose( CScanner & s )+ ]$ d/ J, {7 r& k( r" I& P6 |
{
+ O) t" F( R. f! X#ifdef __WORLDSERVER
, k1 H3 \5 Y6 B CUser* pUser = (CUser*)s.dwValue;
* @( }: o" s' t4 Q g_dpDBClient.SendClearPropose();
! R' ^0 f4 x4 z+ ~& x3 V* [#endif // __WORLDSERVER
2 s% ~( ?1 h" `) ]3 _3 _ return TRUE;8 B3 s1 d2 W6 x
}9 D8 A! U- i, _% {7 S
下面插入
5 l# n* Z2 m$ ~) c# ?8 eBOOL TextCmd_rebirth( CScanner& scanner )( s# P" z3 d6 f% B1 g
{* h: Y- s! h9 d J
#ifdef __WORLDSERVER
# {: U" q0 S( S! KCUser *pUser;
+ X* I8 ]" d$ ZpUser = (CUser*)scanner.dwValue; Z4 G$ o8 x7 N$ {( a5 E9 e
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 H; r9 F6 l- v2 F
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);! u0 j1 e' U5 Z2 J
else+ o* {5 i" Y; e+ ]2 ]
pUser->AddText("你还未达到重生条件!");2 A% \2 T: S/ Y( T
#endif, p0 u) @. E$ e1 }: m
return TRUE;
. ^; H8 ]+ `1 l! t# p}
7 B" }) A# y, v# w
* o' x4 F( l. C8 A, A6 k _; z' H8 B
, a+ B4 b1 e: C6 ?. P3 Y7 t/ [' F$ U, G
|
|