|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 M2 I& y) O5 e- } P6 ~
+ [2 j2 @# f8 A5 h& c5 c% dMover.h& _' q: ^9 n3 _+ T" c6 J
代码:( I7 [5 [6 y% w. B5 {% X& o8 {& r8 [
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" K1 b! {6 V3 S& a( v+ o+ E
/ l* p& H* h0 C% h% T下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ; T0 r. Y: ~) D4 c s
3 E) ]/ B8 J6 C. ?9 P7 U8 Q \/ }
然后你去mover.cpp添加
3 H6 n, ~. Q: A0 y4 C) M% T$ F; B+ N1 i
代码:! I6 j' @) }. b- |: g
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 E+ r7 x9 j8 s9 C. X5 `( P7 p( H
{ r2 E2 _8 G4 B" o
#ifdef __WORLDSERVER0 l2 \* Y# @1 d: J4 C j* |
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 d$ _+ F! X2 t; [2 p) H- w
MoverProp* pProp = GetProp();1 n7 t" b$ `# b f/ f8 ~% j9 l
if( pProp )
9 O* s; M$ w& x; s {* r4 j- J8 o/ z3 E% L
if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 |- l( q1 D; P2 y8 e8 Q2 P( Z
{0 N" N- g* P0 u; r$ c" ?) C
AddChangeJob( nJob );
2 j4 H- E7 k2 t% Z' ?; t: S$ P- o& ^ }else{( f1 Y4 n/ T$ ?. s" L
return;
6 U+ u8 ?% @& X5 q. f0 a }" `$ [) X' j$ i
int nPoint = 0;
! W/ I/ l( i2 a' | if( m_nJob == JOB_MERCENARY )
- X; y& A0 g4 {; x* m, w; y" [ nPoint += 40;
1 K6 s- J# ?7 w, h1 _& r else if( m_nJob == JOB_ACROBAT )
' S7 @; g& K. w1 h; x nPoint += 50;+ _: B: _7 y# i' Z
else if( m_nJob == JOB_ASSIST )
- d. c8 r9 I* B: [- { d. n. \ nPoint += 60;" ]. t j5 N$ d- c5 \% M
else if( m_nJob == JOB_MAGICIAN )& }1 f5 k5 J! m. B* |
nPoint += 90;* O( i4 N `0 j1 n% X8 x
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )# A6 Z! T: p4 R7 ^! G
nPoint += 120;
9 R, k/ a: t/ v6 o else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( s1 N2 J6 V7 `2 F+ a3 o. W6 ^
nPoint += 150;0 `: z7 ^* S6 _7 y/ J5 B2 X* e
else if( m_nJob == JOB_RINGMASTER )
7 e. z" D1 V% S8 v8 ~7 A# d* z nPoint += 160;1 e, N9 e4 k: ?+ m, H
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 N1 t# n ]6 c! e9 U7 S
nPoint += 180;2 {; t: x+ k$ U: O
else if( m_nJob == JOB_ELEMENTOR )$ l- N/ C0 x- V# H
nPoint += 390;
: [* j3 t A& J( M8 {, `' c else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' v8 h$ K* j9 i nPoint += 120;) r7 [* ]9 q* E& U; R$ k% P
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )' N9 c- o0 a$ D- i- [4 }. X& ~
nPoint += 150;# R' o0 ?( r5 n' |
else if( nJob == JOB_FLORIST_HERO )( @4 V4 J( X9 P
nPoint += 160;
9 j% s/ W8 Z& n. w# D; I; {' |8 g else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 d+ Q% X6 V, I$ s+ O3 B. W nPoint += 180;
3 r, S' `6 v, m; K0 g else if( nJob == JOB_ELEMENTORLORD_HERO )
8 M& Q" V- k, h4 M1 } nPoint += 390;, ]7 C9 g W0 |7 X. `2 Z
9 S2 c& }7 Q5 c1 S AddSkillPoint( nPoint );& Y- E( t4 s5 V. K) d
m_nLevel = nLevel;% R' u$ n) t2 o# m D
2 A! |& d8 [. }4 y( x$ }4 ] SetJobLevel( nLevel, nJob );3 V+ t) W, r1 h; z T8 p0 I
m_nDeathLevel = nLevel;
. {7 [9 q9 N; q# O#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- ]: A7 A4 Y2 Y, s4 @
if(IsMaster())% w) D4 Z% E/ G& a7 I' ]: p
{/ t% }5 i5 P) i( s& Z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; l6 z; Y( d9 |7 V if( nLevel > 59 && nLevel < 72 )
, t, @4 }2 O7 C3 { dwTmpSkLevel = 1;
0 \" \! V* h( d( l0 k1 v else if( nLevel > 71 && nLevel < 84 ); j' L$ @ I7 j: l
dwTmpSkLevel = 2;
# l* L, u$ H1 b else if( nLevel > 83 && nLevel < 96 )
. C! e9 A) l5 }6 h: R+ f, n1 I dwTmpSkLevel = 3;/ [( b9 D5 D5 r3 x: K( c
else if( nLevel > 95 && nLevel < 108 )7 V4 u6 M; {- A5 Z$ V" @
dwTmpSkLevel = 4;1 x+ {' A/ V1 U! }! [% J% }/ |- B
else if( nLevel > 107 && nLevel < 120 )
% |* L# L2 f6 T* v+ I/ L dwTmpSkLevel = 5;
: l5 h) Y- N3 ^0 @* Y for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' Q% `% u, ?) v, t& ]$ ~
{ 0 Q+ g2 \5 [! B6 F9 Z7 o) y: s$ A" \
LPSKILL lpSkill = &(m_aJobSkill);
1 b- s& j! }, \- k* r: c if( lpSkill && lpSkill->dwSkill != NULL_ID )7 T V. R9 z$ o9 ?
{
; h$ E5 m! I9 [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% R- V* m3 `2 \ if( pSkillProp == NULL )( n% Z* I ^- N* T) t5 J# J- x
continue;
# B; d! r D" b$ f3 b. z9 E if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" D' J# p, T8 t- A4 V continue;
3 x2 v t4 Y# `% m; _ lpSkill->dwLevel = dwTmpSkLevel;3 q" O5 ~, G6 O% d
}
2 }1 J8 I9 l" n7 \8 S* l }. d/ Q# q8 f( K
}5 x, t$ M3 |5 I F. [: \1 h3 P
else if(IsHero())
3 i" M- _8 R2 E {
2 v# F) o( m' U4 G for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 X# Y* i- ^8 V( }8 Y8 @ { ' R5 b+ B# m+ A9 r& C- j$ k* o: n
LPSKILL lpSkill = &(m_aJobSkill);
& z( v2 |- c2 N& h0 ^. Z if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 K9 H# E$ o3 ?& A {
7 t" M5 r1 z' o( n; v# B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 d8 s; u$ X; t1 Q4 I
if( pSkillProp == NULL )
+ }- T5 L% Z4 _( X) ~( J& I; m9 R continue;
! [# b* d) u1 D3 S7 d9 | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! b7 z i' }0 o* j+ i( c continue;
7 Q S) o' ?3 p# v% } lpSkill->dwLevel = 5;
4 S4 j8 ]( P6 L6 S( y2 \$ K }8 l* [: J- f! D" W8 |+ w
}$ i4 O& r- u: d. U# X
}
; |: N5 w+ o( Z7 x else if(IsLegendHero())6 S" A. j/ N. _8 u% m
{6 ^5 ]8 _1 y' J5 A
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* ]! K0 j; G, D7 h+ { { , v6 W: W1 y( P
LPSKILL lpSkill = &(m_aJobSkill);* z# u! d7 m7 D8 a( |
if( lpSkill && lpSkill->dwSkill != NULL_ID )! t- @0 u% a& }3 `
{
- L \1 f! q! U6 b1 W9 w/ g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; Z& y5 c5 H5 \9 t
if( pSkillProp == NULL )
: h: n# h4 N: r continue;
$ S9 G( X( R( U1 F+ f3 S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 ] `5 Y; b- _" t
continue;
0 C* f8 r4 ?) o$ g% { lpSkill->dwLevel = 5;$ v8 i* S% a4 \% u: C; f
}) d9 r8 ~4 {1 ]7 l3 p6 a, b
}
9 W4 T) ?# @& V' [ }; B1 }5 J3 K% m; z X \; F
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 {1 |# t* Q: I: L if( bGamma )+ ^2 O0 p/ C' @1 o# d
{" ?1 F8 B6 M7 X( t& c5 w4 l
m_nExp1 = 0;; h1 s" K' |3 |% M$ h# I6 B# y
}
2 N) ~- i$ P+ ^; s" I
& i0 |4 F# y6 T% k5 _# Y ( (CUser*)this )->AddSetChangeJob( nJob );
) h# ~' R6 I4 m1 I. u3 i g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' Z# n, b( L( c2 x
! }2 S- l8 x. @8 S0 W) {/ @8 d. X& z( m4 A2 g# \0 W' D
#if __VER >= 11 // __SYS_PLAYER_DATA, ^. c) B. G; t
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
: E* p+ B( F, Y) Q+ f! M; `#else // __SYS_PLAYER_DATA
! T6 T$ d8 W& r6 ~$ S1 E g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ b" R. k7 H0 B8 d: k! l0 y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% U# R0 J) ~: A! V) ^
if( m_idGuild != 0 )$ z z8 h d1 b# K
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 T6 ~6 \4 K4 p
#endif // __SYS_PLAYER_DATA4 H) c4 \4 [4 m3 n/ `- F4 @& ~
SetHitPoint( GetMaxHitPoint() );
# R- e5 q3 @# {8 `) n SetManaPoint( GetMaxManaPoint() );. a0 c4 o) J y+ t
SetFatiguePoint( GetMaxFatiguePoint() );
. ?/ B! k9 S' O* p2 ^" X if( nJob >= 1 && nJob <= 4 )0 X0 ]1 @9 b9 I: L4 R4 R( y
{$ V* C* |4 ` Q$ K z& x! a
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ q# \7 _* C4 g
m_nRemainGP = 28;$ v' K4 {3 N6 V
}7 u3 N& j9 d: Z5 x+ _
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' F) r5 U, S; A. v4 F+ b B {3 `5 n. ?' R3 G. q9 I( v. t
m_nRemainGP = 118;
9 z( b: u; Z+ n/ ^ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;- }* i, Q3 A) o" D- J
m_nStr = m_nSta = m_nDex = m_nInt = 15;
s) X; s$ a4 R' V& X/ j- F }$ ^' Y8 s1 e0 a9 F- N( F! Q6 d4 R3 n! l
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )) Z; m! a) _# J2 t4 i8 y+ \
{
: N8 _! e+ P+ d0 B- s CItemElem itemelem;* L; `) q7 {; \ {0 d
itemelem.m_nItemNum = 1;5 ^3 s: d% a% o1 C- l
itemelem.m_bCharged = TRUE;, V, T; Y3 m9 |5 }: N7 f' s. Y
BYTE nID;' `' w9 x$ \/ X8 o, f
7 }2 d) v. j v" X8 ^
if( nJob == JOB_MENTALIST_HERO )
9 m7 C- k {# Q1 ` itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 _) D; f' y5 l+ i/ `0 h
if( nJob == JOB_FORCEMASTER_HERO ); [) e4 K/ n, Z9 _4 ?! l7 v
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 A) ~+ o8 H( P& s0 ]1 `) M+ n$ m
4 G+ J/ T% \: f ( ( CUser*)this)->CreateItem( &itemelem, &nID );8 b- V; ~6 v$ L1 f8 ?( [
}8 d9 j8 q# M: u o" ?$ d
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 u" O/ e/ s, [8 Z" T; n+ F ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); T% b5 d* ^, `
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 k4 d) j& n7 R4 ~# c. b/ z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* [& \* Q8 ?0 n( R* x7 i- W- ?6 h ( (CUser*)this )->AddTaskBar();*/6 }' j+ O3 E% d+ K
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: e) n0 m8 }- j0 a3 E \
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( s' e: T9 D: M* o+ p$ N8 o) C ((CUser*)this)->CheckHonorStat();1 q: h& b8 U3 y: [+ V$ p4 x
((CUser*)this)->AddHonorListAck();
$ D6 F$ h* n2 a0 G$ O" T g_UserMng.AddHonorTitleChange( this, m_nHonor);
4 p/ ~- [- D: x2 T7 A3 a#endif // __HONORABLE_TITLE // ′Tà?% p, q, x+ S( L% j# Y& X! G
}
3 m- t; t% ^/ V) |#endif // __WORLDSERVER
3 b) A, \/ I( O! u! p. h- g} 0 q2 g0 N1 H! U) o+ @$ S
# `# `5 S) P/ B# E* i o
然后你进入functextcmd.cpp并添加以下
: f) G& T4 L9 u) t+ g' l9 X; {/ S/ i. {: |" i' r
代码:% g$ {: Z9 ^( D6 L7 h
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )$ e- O$ V( G! y* [& N4 a+ W }
下面插入, [5 W7 R! [$ p
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 ]: Y/ [3 H" \+ V7 u) f" Z' q
& q! X+ T) T# g* U' ?9 v
然后你去
9 Q& e8 _3 x1 m/ ^+ L$ f# C" m; A6 S( p: c J
代码:
4 U/ Q$ r8 `) e9 k$ d F4 l代码
+ ~9 ^, j8 ^& D m P5 uBOOL TextCmd_ClearPropose( CScanner & s )
8 B# E9 e4 m* d' b" ^7 q2 [% n! ]{! w: D) H4 Q; f' R
#ifdef __WORLDSERVER
" a# w O4 [1 {0 E6 {/ Q CUser* pUser = (CUser*)s.dwValue;
7 I4 c7 s& y ?, L" K* p g_dpDBClient.SendClearPropose();# x# E1 D5 U6 c! e9 S9 d5 |4 }$ p
#endif // __WORLDSERVER' e6 G2 q# ?; a3 Y' A. q7 \* c
return TRUE;
( ?0 l$ G6 i8 I}
, V( G7 [& c7 f) ~0 w8 t* d下面插入
6 ~! D1 x! a' m* t7 _6 d& m, dBOOL TextCmd_rebirth( CScanner& scanner )
) l9 L3 n1 D1 x+ R{
) N0 J- E+ O8 o+ m#ifdef __WORLDSERVER
8 |6 t4 o" A2 b8 VCUser *pUser;, W4 v$ X$ D2 [9 H
pUser = (CUser*)scanner.dwValue;
- J" ~: J$ d; x* y. G) Zif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())1 s& o v% j! l* `
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);/ n3 T6 v0 i0 |8 T Q7 u
else
; f) B6 A/ M; KpUser->AddText("你还未达到重生条件!");
$ r; w3 y! P v5 d7 ^8 o#endif
) I& J1 Q. q! |. U) Creturn TRUE;( E- y+ E8 |6 F' L2 I
}
3 d- n3 a4 U7 K( t: U: Q2 v5 A4 Q# |( ]! b
) H V6 R J9 f0 V, s' R
; h" a+ Z5 w$ g! l% O( R: A7 @) ~' c/ N% l* i- T. b
|
|