|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* A" v" `5 ~8 b) c- g( P. V9 a+ i. V" h- U4 S$ h7 t3 v& l
Mover.h
. F4 i4 c' V5 L( c代码:
# e9 Y2 J( Z+ V5 w& z5 y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü- `! O6 l! e0 R7 [
' `$ j0 [0 j7 S: x7 n* h; c下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " k- {) C8 J' e; B3 _' P. R
1 v3 X! t) Y6 r- m2 M* D
然后你去mover.cpp添加
. Y N* I6 L) }
5 P* H! y1 g& |4 H, v) p代码:
, g* R! ]+ k- x$ tvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 V9 f% U/ x. [% _* E- I! [3 J
{1 W# d+ z. m& G- z8 f1 J5 n; i
#ifdef __WORLDSERVER+ v7 q9 V+ e3 {) F$ Y2 A8 a
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ k+ ^4 ]& \% y% n
MoverProp* pProp = GetProp();
0 F' o: s$ P: t* f$ M3 G if( pProp ) s9 z' C% O% m" W; e" G" v" h
{5 c" L3 g6 \) I5 j! f4 Z5 H, z0 q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 ^4 X' W N" R2 H# o
{3 U0 b9 T, y7 i, |6 D- y
AddChangeJob( nJob );# b% K! r6 w4 f: b& N' R
}else{+ q: F0 S/ H- {' J/ ^* R
return;, t8 ~7 p! [* B. y- E5 ?
}# n! s0 I7 I' p' m4 e( D6 I
int nPoint = 0;6 r7 i! z v, s5 v2 F5 X
if( m_nJob == JOB_MERCENARY )
' O! d% n/ c8 M8 p/ F" d nPoint += 40;
" z8 s$ H2 ^1 X- y6 `. i/ S- {8 d7 S else if( m_nJob == JOB_ACROBAT )
. x6 w' g0 S1 ` nPoint += 50;/ |5 T: \7 e( Z
else if( m_nJob == JOB_ASSIST ) M! w; f- J# s' H( I Y
nPoint += 60;- ~6 q- m+ ?+ @3 U; K
else if( m_nJob == JOB_MAGICIAN )
0 C7 M. m K% T1 H nPoint += 90;; s/ r! B8 G) c/ ?& }) y* M
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 L. ?$ v& B/ T- \( q5 ?* P* i: x
nPoint += 120;( H2 l* G; A. [$ C9 b! @: v
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* G l# K( |0 W2 r" f% j9 a9 s$ z
nPoint += 150;6 K' i# k( v; T5 q4 x( |. @
else if( m_nJob == JOB_RINGMASTER )7 C+ V/ `. v# ]6 }0 O5 D0 ~
nPoint += 160;( }+ p5 Y6 {5 I$ G A
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
. S0 p( B# M6 x nPoint += 180;
; K0 t1 e$ r- i) N' k# c else if( m_nJob == JOB_ELEMENTOR )' |3 F7 O r# k5 i: l M5 `- U* ~
nPoint += 390;' u' p3 O4 B4 {5 N6 Z: \
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )7 m; ~0 x* o; D7 g: k# S( K
nPoint += 120;
, c( R" L$ o2 f, N6 \ m& z/ |3 W else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )7 ~5 l+ x- y- _9 X! i3 q
nPoint += 150;; }" j' l8 ]3 t) p0 K: _
else if( nJob == JOB_FLORIST_HERO )- |& R$ b; D) G {$ u: d1 r. C9 B
nPoint += 160;
% k+ d% y+ w" `. H- e9 `9 M else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )! R8 N' |! X6 P
nPoint += 180;
. j3 l; s) G, u* e, E7 K else if( nJob == JOB_ELEMENTORLORD_HERO )3 y7 z& l/ x# i% @5 n
nPoint += 390;
& W5 w/ w4 @4 [5 m4 `, \; f3 k* b. [7 ]& F! v1 c
AddSkillPoint( nPoint );
9 X0 b3 R9 c7 U2 A m8 m } m_nLevel = nLevel;( y p7 W8 b. T8 k% i/ i
p' I5 J# x" V5 @ SetJobLevel( nLevel, nJob );
& _/ m2 N9 g( B+ z m_nDeathLevel = nLevel;
x" m% ~. S, T7 A; q#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ G/ E; l$ b( X
if(IsMaster())- o l V2 c- B1 H
{4 J' x1 x& X5 H. W0 }
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ H2 x2 r. d m if( nLevel > 59 && nLevel < 72 )
5 `, d: u8 o* o% Z; e: B dwTmpSkLevel = 1;
* C, S( w" S+ y/ f) z else if( nLevel > 71 && nLevel < 84 )/ c- j: q# D |2 P
dwTmpSkLevel = 2;: W+ P6 Q/ X! P: ~! \
else if( nLevel > 83 && nLevel < 96 )
3 b7 g! b9 m8 X: C* @- ~$ ` dwTmpSkLevel = 3;6 ?4 ?1 m; h7 Y& u, A' Z% F
else if( nLevel > 95 && nLevel < 108 )8 |4 x: z% o& Y' q2 [
dwTmpSkLevel = 4;
_7 C' m, T5 _0 N else if( nLevel > 107 && nLevel < 120 )
' u0 z h9 v0 X% R R9 j+ ] dwTmpSkLevel = 5;
+ f7 q6 t3 F3 l3 h3 |# i ` for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 \( \& B1 z% }; ?/ A
{ : [$ ~/ [( ~' l5 f% x
LPSKILL lpSkill = &(m_aJobSkill);. ~, |$ S5 ~8 A/ n5 J/ d
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- Q: Z5 E0 S9 n) f: p1 Q {
+ v) u/ R* I9 ^& `/ m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 p1 ]& a, ]! b& [2 i: v1 T/ h4 g if( pSkillProp == NULL )
$ h1 d e+ N1 B1 o/ ]0 W( a continue;3 L/ i; ?! ^2 Y: `5 E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) R3 ?1 q, N! Y7 p6 c" r0 s) W2 w
continue;
. ^- B) ]/ x* V- [- d lpSkill->dwLevel = dwTmpSkLevel;
* S1 K- s& m# g* }. ~ t0 z6 ? }, O7 c7 w$ }5 A. O0 v, H0 J
}
- H+ {7 V! E! M" O }: C, E5 X* V6 P4 R7 I+ l* n% w
else if(IsHero())
, T: _8 o6 g9 \# ^! G; R2 d3 e; h {' R4 q8 w. { \$ }/ B3 m W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 l8 c- C+ F9 x, w! W
{ 5 X8 m) N6 ?% g
LPSKILL lpSkill = &(m_aJobSkill);$ _% N6 N" K3 _2 @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 ?6 z! r: @6 t9 r* c, O0 [0 H {4 u+ T, M! ^( Z4 S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - F3 S# O! b, `& U
if( pSkillProp == NULL )4 \: B' R0 P. X3 h, q4 R0 n+ y3 R/ E
continue;
8 C& L. o5 p8 h6 Q: @7 } if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ N/ {4 a. ?* b% U( W$ B% a continue;: @% A8 v$ K3 {! G( E
lpSkill->dwLevel = 5;$ N; x% Y# ~0 Q8 S
}, [( E- t! F$ g, b/ N
}* _4 s) O3 f4 e
}
! A0 r4 n: G8 l& i5 M else if(IsLegendHero())
' ]+ s) M; w4 {! \( H- J {
& Q5 V( I( d# \- m8 u; \ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 {5 Q+ f7 N# N# ]
{ 2 v* y9 [% k, [5 J6 O: H! _
LPSKILL lpSkill = &(m_aJobSkill);' h N% z1 n9 I5 m+ t @. D7 b
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& C- q: B; H% L8 ` {
+ b/ } e5 K6 T2 C/ s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* ~9 j3 U# c, E% E3 |8 f- K if( pSkillProp == NULL )
" F# a! C; r3 E% S! K/ w# V$ T p continue;( \; Z) Q# H/ V! W' n+ G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, Y# |7 A1 y) i7 E* I4 |+ O continue;7 q# z E$ }) Z. o9 Z9 h* a. P
lpSkill->dwLevel = 5;* y* a; u4 c/ H3 s1 V3 ~. d: a
}
+ x; G. ^( s( _1 |& L( z }/ N1 f7 z2 ?4 |+ y; e
}" G" d: n9 z3 E- @' g- P
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 Y9 m7 `$ j# r2 R* n
if( bGamma )% E) [1 }2 G0 Y6 f" [/ t2 f
{
! }. p/ }% n) I m_nExp1 = 0;
8 E3 }7 Y; W3 k: F6 W }
0 }5 v; \/ c# S% W/ F" [8 q/ Y' Z3 g S3 Q; H7 b( d2 K# s1 f
( (CUser*)this )->AddSetChangeJob( nJob );8 `6 Q4 `! s* w: E+ f# I$ @
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 u6 W2 U$ J) q1 V
; C/ I( B& T' e% p5 \. q0 H5 @4 y( B+ ?: A7 W* s; ]) D2 ]
#if __VER >= 11 // __SYS_PLAYER_DATA9 v- w' s3 S- Y1 O! n4 E
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* Z T- _# F* `9 [' v- t#else // __SYS_PLAYER_DATA+ M2 k% b2 }+ F- }0 ~
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 q; r e4 C: r( p1 f g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- Y. q3 l l0 I- k2 J if( m_idGuild != 0 )2 ?9 N: P. |" Q% e4 k
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; h; K+ }. B9 h6 O( p# X#endif // __SYS_PLAYER_DATA$ Q, V$ }/ v& w- T9 I2 x
SetHitPoint( GetMaxHitPoint() );. t6 @6 B% w! ~4 J6 n$ h
SetManaPoint( GetMaxManaPoint() );
! a8 X+ D, S7 h. w5 b! A- m3 z6 t9 C SetFatiguePoint( GetMaxFatiguePoint() );8 F! l8 s3 y% b. `" ~
if( nJob >= 1 && nJob <= 4 )2 {5 m3 C) R8 C/ F2 f5 J* B
{
; X t a9 w3 { c# v m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 C* I8 X% `. b/ ^9 c [" u/ I m_nRemainGP = 28;
U0 `9 O! x) f" N/ T: I }7 L; {# r% `4 @6 k( E9 h* u, M
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )4 h+ D Q c- }, }# M- G
{' O1 l* R. M* I: j2 B! Y8 M
m_nRemainGP = 118;
" X! Y8 c d9 i; f //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 C/ e/ s0 ~2 b: t m_nStr = m_nSta = m_nDex = m_nInt = 15;
) b$ P9 _9 s( v' o }
+ H/ U/ D2 S5 ]$ f if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
: C9 ]7 d. z) g, ^ {3 z$ {) {6 a2 f+ b# {
CItemElem itemelem;8 H3 D1 w# e8 u% K+ P: c# }/ I- d
itemelem.m_nItemNum = 1;
/ C; m V/ B, @& l& D+ y itemelem.m_bCharged = TRUE;3 ?- C! i9 _' w. i
BYTE nID;/ [" J" T/ T2 P6 D# y
5 F5 C3 k& K6 B5 e- `; D# l
if( nJob == JOB_MENTALIST_HERO )
! X* f2 a5 L) l itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 N( `1 L4 z, Q4 n if( nJob == JOB_FORCEMASTER_HERO )
0 r* k; e6 D. n- v itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;: M+ X6 y' G& V& m
l. f+ Y3 `+ J8 Q
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 u& [/ L$ n; L% ]9 s; s% a
}/ E) y- P( g, Y- E4 k1 c
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; }) K. G& q1 C4 R) b; B. ~7 n ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& L; j- c( k0 s& I
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 y6 h" ^5 J- f! {7 k: b
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );0 N1 M+ ~& o; c# K
( (CUser*)this )->AddTaskBar();*/* c1 m& x4 J4 ]& d
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );) O+ @! `7 S7 c+ z2 c" Z* K3 r7 Y
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?5 C! ` y& y, t: G0 F
((CUser*)this)->CheckHonorStat();
z% C4 {- B3 D: s ((CUser*)this)->AddHonorListAck();! a" Z' c$ ]9 [- h' r) d+ @0 {. P
g_UserMng.AddHonorTitleChange( this, m_nHonor);
. S" ^$ m. u% V- y' \4 ?6 h#endif // __HONORABLE_TITLE // ′Tà?
3 W8 Z- F7 ?! D+ u }( B4 o C* d, {- ? L- t9 H* _' j
#endif // __WORLDSERVER; V- o& r" B+ d9 ?$ }, L
}
0 q3 y/ A8 Q% J% x$ Y) ^8 a
! N0 j8 h" U9 n& f& p2 f# D0 }+ q然后你进入functextcmd.cpp并添加以下
}5 x( r) ~$ U. |7 I. L) A7 h: d! a0 `/ H( k1 M
代码:* s- z# K9 l1 D
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. K2 s3 @% ?6 v6 c5 D! D, d3 y% B: N下面插入
7 y& {6 H$ |0 M; }# M0 W2 p5 KON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 Y# \) f9 \7 l2 h; W: z
4 Z4 p) g, A1 z, u" G+ _% ]* J3 n6 j! K然后你去6 M' c# Z6 r& x# H& ]
. v9 P* m' r9 }! S/ [, z9 w0 J
代码:' ^6 y9 [; z. u, ^5 ]
代码
$ C2 S; m {& W' e) B$ D$ ZBOOL TextCmd_ClearPropose( CScanner & s )
9 ~" R; E6 g4 e2 J h{
* C1 X- b# D+ O% O, e#ifdef __WORLDSERVER7 Y: M& u. W+ z3 Q
CUser* pUser = (CUser*)s.dwValue;( |& C3 d& G& S. g7 B' c
g_dpDBClient.SendClearPropose(); H# K# ^: Z6 p" b v& {/ C
#endif // __WORLDSERVER
; _7 p% d& @8 |# }4 f- ?4 V return TRUE;) q8 @/ u+ I) `& U% Z- T
}( F; A9 W3 M3 L; O5 f: ]# V
下面插入( E5 X( z+ K4 g7 w
BOOL TextCmd_rebirth( CScanner& scanner )$ _, s* U0 g9 f$ I
{" d% }6 }: f6 L0 b7 a
#ifdef __WORLDSERVER
5 X) A# z+ a4 v7 p; p- CCUser *pUser;
6 D; g3 S8 }- \& ^6 f& _ d z% YpUser = (CUser*)scanner.dwValue;
2 I* N `3 C7 V* L9 j& r3 Cif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
: i% r( U) A& q* C* FpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);4 M |( l* k! Y$ x& H; O6 }# y7 p
else
9 C4 `" D& h. p7 z' |& fpUser->AddText("你还未达到重生条件!");
( ? ^- p. a: K; R% {#endif/ K$ V) j9 c* z# K
return TRUE;
; M) u* e3 Y# _: t0 t9 P} 4 l! T/ h0 \, m* L- R g
5 ]0 g, d. F ^! n1 @6 _; F: `0 g' q# _' I
7 v8 X/ i3 g4 A U
% @5 f N M0 f+ z |
|