|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# A# | V" j7 M7 v9 c6 b) B
$ o2 N7 H. @) Y- ZMover.h
! ?7 _& q+ Y k8 D! P; w代码:
b* j, I' n3 y4 O找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü' v8 B. r3 l2 D0 g; f$ u, ?; y, P' Q
) a. o7 w. ~3 t2 p% P9 W下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 5 J9 F3 Z7 e; R- {3 [$ ]$ @, i
7 A% T" m) @2 p: e4 U' {. y6 g& }5 S
然后你去mover.cpp添加
9 K2 Z% x, h, Y, w; x/ S3 H% c; o' Z6 x- K9 h
代码:: V* b% m4 E+ G$ j$ \) O
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 o6 v* S( c, V" t: E{
; X0 y9 u$ `$ z+ L s! J2 Q#ifdef __WORLDSERVER
# i5 y$ W. B! U( {' E/ j4 J$ Q+ d // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% ] q' H+ i- M6 n/ j) | MoverProp* pProp = GetProp();
5 a% T7 q5 Y- \5 l7 m6 z: [ if( pProp )
' E$ b7 s8 K3 g {0 w+ _ P! P2 s5 v. a, e, y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 m' w1 q: A, H8 r {
: q+ v/ y t; G2 W8 n AddChangeJob( nJob );& p0 }. P# a" r9 k
}else{
6 c) o7 p* e8 M return;, s) `: D* O0 G* l( \# ?, v
}, L% U* s$ C( q9 F" `( {
int nPoint = 0;
; Y1 |, a7 E3 o! J if( m_nJob == JOB_MERCENARY )% L+ y! W9 l. P3 u: k8 J6 _
nPoint += 40;
9 H3 G. q @8 v else if( m_nJob == JOB_ACROBAT )! R4 H% d2 p+ Q- |! y
nPoint += 50;
' {, y; l8 c% ]6 U* M/ d# s; q else if( m_nJob == JOB_ASSIST )
& ~# g& E+ }! N9 A2 X, Y nPoint += 60;
, w/ _7 d# [% n7 {, M; T else if( m_nJob == JOB_MAGICIAN )
f8 g' j6 a* M- v$ i nPoint += 90;: w! {6 `& v O) U( Q- N/ |* E6 s- l) }
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
" l: v" c" g- Z. t, N; U M nPoint += 120;
% D5 C" \- P% ` O, y else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" Y& _5 N! U& Z( `
nPoint += 150; j6 x5 ~$ A& e1 X
else if( m_nJob == JOB_RINGMASTER )
9 F- a; O4 W3 G) f9 `% _ nPoint += 160;; C' ?8 O, O7 T' ^& _2 E
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); V6 i2 o' o7 E" h, d$ l4 w% P1 M
nPoint += 180;
5 p7 N) F$ l$ z$ ? else if( m_nJob == JOB_ELEMENTOR )! W1 H6 z: J# A' \
nPoint += 390;3 g6 v$ w/ ?+ l
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )4 _ K- C h+ x7 |1 J0 b
nPoint += 120;
: B; n2 A5 `+ C) U e/ m else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: B y. p' z7 q" ]. I5 R( ? nPoint += 150;
0 g# m" C; f" d4 P; H+ o else if( nJob == JOB_FLORIST_HERO )
. A; {: ]" o6 E3 g4 S nPoint += 160;
' I( s8 b* @/ y4 ]7 P else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( g6 K& y q T$ u- |
nPoint += 180;2 m/ H6 q$ v' [5 ~5 ^6 J
else if( nJob == JOB_ELEMENTORLORD_HERO )
- O( A+ N9 t# ~& Q% u nPoint += 390;
- S0 M# g- a2 Q3 U. e$ m* J4 r& h: h( B7 W! G p) x* o \/ ^3 B
AddSkillPoint( nPoint );9 P: R7 E+ A1 _' s* v5 G2 j" Q
m_nLevel = nLevel;
) [% @" z: n$ |0 p5 X: \! C v! C5 I9 a
SetJobLevel( nLevel, nJob );
2 d2 @8 |; `3 q m_nDeathLevel = nLevel;5 q `& T2 z8 t" h5 h( S
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- K" x9 z0 c2 Z: r
if(IsMaster())7 M$ Y5 g, i" y
{
; x- e9 A+ m( P; W# H# v9 w3 S int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" F$ k) y2 V0 l if( nLevel > 59 && nLevel < 72 )) F- ^9 E% q: p6 r7 j
dwTmpSkLevel = 1;
0 v" A) D$ i" K, S0 O1 L% [ else if( nLevel > 71 && nLevel < 84 )1 O- w* a. ^, P# a& U
dwTmpSkLevel = 2;
, Q& c0 [3 I4 h9 i else if( nLevel > 83 && nLevel < 96 )
8 D" L: f8 H. f, Z1 g- v3 D dwTmpSkLevel = 3;1 {4 O' C' [7 r. F
else if( nLevel > 95 && nLevel < 108 )
9 t4 \* h9 `9 g" ]8 k8 I& e dwTmpSkLevel = 4;8 ]3 m, ^3 n/ o7 {4 p7 @
else if( nLevel > 107 && nLevel < 120 )
6 `" @( w) F$ i. J dwTmpSkLevel = 5;
- d/ i& s% m( o; V @ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 d9 D2 S( @' _$ C) o. ~- M
{
% @& A7 V8 W( i y# d# [8 g1 e LPSKILL lpSkill = &(m_aJobSkill);; z/ Z- v. S: Q0 c) x
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& ^! g m7 c2 J- }9 q3 d1 b0 [# Y {+ z0 m. B5 Z4 h; a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
R& P8 O* M4 U if( pSkillProp == NULL )! N1 ^4 @1 E2 z+ g: F
continue;1 @) |, U7 X- ?; E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 t6 m# ?9 ?( s" i1 y# g
continue;
M \8 K7 }# y" T9 u lpSkill->dwLevel = dwTmpSkLevel;4 i1 J: H* Y' ~ R1 H
}' N- M z' f" y
}; c" |. I+ d- u D- G. d4 v& G, l4 j$ H
}8 Q" Q' F& j6 x! G6 r4 \2 ^
else if(IsHero())% y" I2 L5 h/ i/ @: j" O* {
{
- c O. @% |) a for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 N K+ Y1 [3 W8 [' @ { 7 F: j% k! E+ Q9 F
LPSKILL lpSkill = &(m_aJobSkill);
3 i* r9 H; Q: a6 ? if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 z6 _9 M; l+ l# ~5 [2 y: b {
2 _+ u9 e4 Z( D) {9 u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: W- L% b, v8 M; m& Y3 x2 k if( pSkillProp == NULL )
! A0 Q# u, V; C continue;
) f n- [& ]9 \' ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- }( L+ O# t: O' I
continue;
7 V W* M! ]: \* v( g lpSkill->dwLevel = 5;
" z1 l% f& l3 ~ n }( U5 B, I; B' s. i1 P
}" t" J. e% S: b- G
}
5 x# d+ n. p- P' X) L! f else if(IsLegendHero())( D% s8 l Y0 {/ V
{
5 Z3 v! B" k# V9 t3 V5 k8 g8 F2 \, p for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 m2 b2 J4 y; F. h, B: E { 6 b: ] J- A3 S x0 C7 K: C
LPSKILL lpSkill = &(m_aJobSkill);
. U1 `% t8 @( c+ b1 O! G! ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )+ Q/ B3 ]0 {, O j3 y, R7 y
{
$ J# L# {+ {5 \9 p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 p0 G7 n. G, I) q7 K w) T- u
if( pSkillProp == NULL )& O6 D5 J- h4 w" y0 P
continue;$ k) l3 m7 k6 Y1 T1 A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 c+ E1 P$ D; Y ?! h) w continue;8 e- W& C% n: m r8 A5 P
lpSkill->dwLevel = 5;
0 d' N* _! G! B2 f8 C$ D1 ^; t }1 o# g4 l1 `7 `) A# D. _
}/ Y6 M" n4 s' ^% d. @
}
" C8 d, n- r+ ?3 y5 p% B" e#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& |! u; O, K0 z! o3 Y; M4 M" F
if( bGamma )5 M6 ^* l* _ A0 i- N
{$ q$ m5 m. }$ Y- r5 u9 Y
m_nExp1 = 0;
" u* G2 D$ e# s |/ e } i: ?$ H( `: o: ]. @
1 X m& D3 U% W- u
( (CUser*)this )->AddSetChangeJob( nJob );: h& D, |6 \0 z! O
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 r$ H2 F# O0 i w2 p, V
) E& i: [, n% @1 N! f/ T
- S, }* \7 S G1 h0 P% p#if __VER >= 11 // __SYS_PLAYER_DATA
# T+ N5 \1 J' _* [* G3 o. G g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
9 l/ q' y6 s7 W+ N" X" V#else // __SYS_PLAYER_DATA
: X3 r. q5 N7 v g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 h K d+ w; k7 h) q7 F
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );3 p* p0 i4 `# {; ]8 i
if( m_idGuild != 0 )
7 U9 x6 K1 v0 r g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
+ t) [0 L; o- F/ z9 r: k#endif // __SYS_PLAYER_DATA7 Y* W1 C/ ~7 r6 N, M
SetHitPoint( GetMaxHitPoint() );
2 ~% g, J* S: y# Z SetManaPoint( GetMaxManaPoint() );
4 p. a9 H' M8 L: I4 y1 R: ? SetFatiguePoint( GetMaxFatiguePoint() );' r& C5 e1 w+ I. W8 o
if( nJob >= 1 && nJob <= 4 )/ N. L8 x4 Q+ c) o4 B J% }8 D
{
1 N# P- O% k4 P/ I! _, E m_nStr = m_nSta = m_nDex = m_nInt = 15;! d) S M) Q/ H J
m_nRemainGP = 28;
* j1 @& m8 I) F8 X% T g }! Z* z/ C% q% B
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# @6 B3 K+ ]* U: A# g: J8 \+ w4 R {
1 @" |- }7 ~, f& t6 m m_nRemainGP = 118;
( O4 l$ P4 R- L v //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
# G8 }& m' `8 a: d m_nStr = m_nSta = m_nDex = m_nInt = 15;: q3 P3 Q% j, e. t. S
}
5 M3 k q8 s! s if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- c% ^+ p; }- ]3 L/ v# {
{
" u3 X5 M: Y$ Z7 J- A8 X ? CItemElem itemelem;
, T c- }; }% U2 ]. I8 Q itemelem.m_nItemNum = 1;& P- S1 p2 K6 b) A' j
itemelem.m_bCharged = TRUE;/ C4 A' B4 v* s& U9 |' X( m
BYTE nID;7 [0 C$ t( r* j1 v
% Q4 _, C; f- ~
if( nJob == JOB_MENTALIST_HERO )5 R" w: c# c9 C
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% r8 I; J. e1 r: j# G+ m3 v
if( nJob == JOB_FORCEMASTER_HERO ) E% T5 _3 X4 s( ~: ]
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( V$ j [& g3 J, [/ N9 m/ @ I
5 r% ^* H8 E) d ( ( CUser*)this)->CreateItem( &itemelem, &nID );$ y x+ N3 Q$ u+ M8 t
}
, P* e! X {( Y5 ~' h, U9 ~+ B g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
$ ~6 g# }0 ^! L' \. v) t# @. B ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );7 b7 i, {- ?: y- ?4 _
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: S5 V3 ]7 _8 ?/ n) v5 _ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
2 p- @& I' L. C+ e ( (CUser*)this )->AddTaskBar();*/& h6 G' f c; Z# o+ ]
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
( P4 N" r' V! r; J( `. T#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- u& L6 }7 G3 E8 k/ c ((CUser*)this)->CheckHonorStat();9 [3 K! Q2 Y4 Y( J1 n. Z; X0 `
((CUser*)this)->AddHonorListAck();- ]& @/ b) K6 P" [ L/ D
g_UserMng.AddHonorTitleChange( this, m_nHonor);/ I0 J1 j- S( z `% v+ _8 K5 g7 @( O
#endif // __HONORABLE_TITLE // ′Tà?" q; @1 ]: m0 H6 y, f
}
( c& |+ j6 p6 L R% B1 q8 q8 U. z' n#endif // __WORLDSERVER
9 d- c' h0 S$ }1 \0 d2 K& W}
% Y q$ t7 M% C& T) l6 x4 j8 J, W8 t4 F3 ^
然后你进入functextcmd.cpp并添加以下
- a+ C: Q# |8 l! x! F& F0 w2 x+ _3 n/ V5 |
代码:: o0 K& Q2 v3 L- |4 F# {
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )1 h" L x5 s; W" O" Y; E
下面插入
5 ^4 F/ A% r) S; e$ F; VON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: O5 W& ?+ s& W3 n% r; I! m0 J" @; t2 d+ r- f3 P# P
然后你去' }1 V( E/ _# `" @7 {
, N$ e, \: F" e& a. R5 [8 Q/ T& u
代码:
3 G- t* z0 F" A, x, q代码
3 ^% o" ]" Q' X2 VBOOL TextCmd_ClearPropose( CScanner & s )& {, ^) i/ a. _
{! b2 v+ C/ l; E+ L" Z; K
#ifdef __WORLDSERVER
* Z2 D/ p' F0 x( x2 E CUser* pUser = (CUser*)s.dwValue;
- b, B7 U$ h* b( U8 r" N g_dpDBClient.SendClearPropose();4 ~& \; L6 Y: Z
#endif // __WORLDSERVER
/ R3 I! B7 `% \ return TRUE;
6 O! D2 K1 k8 o. B4 C}8 N- G( [: t, m
下面插入
! }6 r* a0 P7 g" f. ?2 S6 W. }BOOL TextCmd_rebirth( CScanner& scanner )! f q2 S: z! x6 C
{4 ?" m2 i8 U' Y/ j
#ifdef __WORLDSERVER4 e1 Z% q# s. h6 p8 M
CUser *pUser; V# ?. l+ R9 {5 R, T
pUser = (CUser*)scanner.dwValue;( w5 U7 R) x. d3 C
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& J0 K" R4 @4 y- N9 JpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 Q! u y2 }' d% kelse5 e: `7 Y+ \/ H6 s1 l- K& \" E
pUser->AddText("你还未达到重生条件!");
3 Z' m \) B1 M2 _#endif
' x$ W) ]. B7 K |return TRUE;* X8 U; z5 s) z4 E g2 }& T9 j
} 3 I& {8 M3 K) {7 {; ?8 j
: U% m% _+ i0 m& j( F* ]$ l. Q& v3 n0 u+ K' ?& E2 l4 F. O1 z
, C# u) P2 q* n, D* l; ]
& p" U: G& S# |8 u8 O* h! }
|
|