|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) x" M+ x7 c5 o' N, ^& f
, p/ E, T! o* Z0 P3 V8 XMover.h4 b1 R- }/ \1 t. q# s2 I, R. M
代码:
' v, z* r% p& l/ n7 Z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü! A$ ?" z% [8 \ U' V2 j& h' _* v
0 B# F% l3 G0 l* [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; * \6 Y7 S) }% b$ Y1 `1 g5 ]6 G# [1 j
1 R, z, L& F2 o6 E" k5 l# [然后你去mover.cpp添加$ S8 b; y5 L0 X, D- @: C
2 P. g6 y; B& W3 l& A G3 @% \( U代码:
! k, I$ K: u) V- G t, y5 Pvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% M1 T& p7 o2 c: u* }
{& F9 B# g3 F' `+ }9 l
#ifdef __WORLDSERVER
5 O4 ?0 P* c+ t: u // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; H9 I; C% W) d, Q8 B! @ MoverProp* pProp = GetProp();
; H/ M1 f, \# z" a( N$ Q if( pProp )
7 A" e/ i2 z; t( i" ^8 { {& d8 W: ]1 V6 o2 _. W0 `% v e
if( nJob > 0 && nJob < MAX_LEGEND_HERO )' ?" {5 C5 @: o
{8 |! Z; e. B& l6 |5 u
AddChangeJob( nJob );
/ y; ?+ d: N' A2 a( H! i1 N! D }else{
/ N a( K# w) B return;
* y& m* P- i8 t5 ~3 x! o9 \; J/ h2 w }
. m/ T! a# p- {! H$ w$ W8 w int nPoint = 0;
- q$ B' [& d3 b' U5 ?( C if( m_nJob == JOB_MERCENARY )
* i' X& B4 X% K5 f7 M8 f nPoint += 40;
: Q0 Y q: Y9 s3 `* w% r9 |7 Z else if( m_nJob == JOB_ACROBAT )
5 e6 E' P% Y( X, N | nPoint += 50;
2 k6 ]2 S% Q d! g) O! I else if( m_nJob == JOB_ASSIST )
0 p7 B) F# D( X6 G2 S+ X" s8 L nPoint += 60;
; w# |. s5 p1 N* ? else if( m_nJob == JOB_MAGICIAN )
" J6 }6 R( m6 D0 a2 I& I nPoint += 90;( y4 @( A7 |) ?
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- Q+ e B# L' Y- K8 M: { nPoint += 120;
* M+ r- u/ ^0 o6 g8 \; ?+ A; ] M3 z" R else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) C9 k* T8 d! g: y+ S2 p5 r' P- }
nPoint += 150;7 l3 [& |" H! J1 I+ ?" u
else if( m_nJob == JOB_RINGMASTER )1 y s* N; G& Z! r1 K, R
nPoint += 160;
0 k6 l! v/ g& g) {) f/ d else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )$ Q( ?2 _# V. ~& r+ b" j% A
nPoint += 180;
* d$ k8 F. n3 ~/ y else if( m_nJob == JOB_ELEMENTOR )
* B2 Z) ^6 ]: h) E nPoint += 390;
; a9 D# i' j ?* L1 C else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 M& P( Y6 ]3 N T nPoint += 120;$ ?. g) a# G+ V+ h7 z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )9 v2 R- ~% x$ {
nPoint += 150;& Q) H5 M7 g1 o% G! ^1 g; N# |
else if( nJob == JOB_FLORIST_HERO )7 }" O8 H0 i% q6 I: S7 p. u
nPoint += 160;
' p0 I! M' f2 G2 U1 @, ^ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). D5 F# R/ f O! l
nPoint += 180;
% O3 [2 ~: F9 G else if( nJob == JOB_ELEMENTORLORD_HERO )0 A4 V; k8 ^- V! d7 h
nPoint += 390;( B: L" P+ D* C
, {; c0 y5 t/ _5 V- @0 N7 [ AddSkillPoint( nPoint );' x3 b3 U! |2 w7 l2 K% V
m_nLevel = nLevel;
# ?8 E+ p4 f" j3 r
6 G' h0 ]# O; ?" N9 L F, D6 K6 l, F SetJobLevel( nLevel, nJob );
z) C+ F6 u( k0 ]! m" ] m_nDeathLevel = nLevel;
/ }1 I ^; z! U& @* ?9 N# i#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 l. V2 Y& R8 R4 R) S+ @* {( v if(IsMaster())$ F' h7 e" m3 V' V) y
{
0 _0 x2 G; R" a: F% O int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 j$ G; n4 E! U if( nLevel > 59 && nLevel < 72 )% o) E2 p2 R9 Z0 J9 @' N
dwTmpSkLevel = 1;' \: A* |" }" I' [. O3 t
else if( nLevel > 71 && nLevel < 84 )
; Y3 n" P7 @7 z' X: P dwTmpSkLevel = 2;
* [2 a5 L* a2 K else if( nLevel > 83 && nLevel < 96 )
. E$ ~* L( C% ?: R dwTmpSkLevel = 3;7 @+ p! r9 \0 w! A* w
else if( nLevel > 95 && nLevel < 108 )
; w7 q8 t: W( R: D j dwTmpSkLevel = 4;
" f1 _& T$ |! `8 {5 |: W1 k else if( nLevel > 107 && nLevel < 120 )
8 N4 O: l$ \ @9 w2 z% p7 \( ?$ L dwTmpSkLevel = 5;
; U- D- d5 C5 t! `$ S1 R! i for( int i = 0; i < MAX_SKILL_JOB; i++ )
! s# x( r- c6 Q, } { 4 E4 a! [. ~1 m! e1 ~% y$ v
LPSKILL lpSkill = &(m_aJobSkill);
' o6 j7 t) [; F: ^- V$ C if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ C5 X, F! Y0 f3 I: V {+ ]4 `: N6 M8 a9 m: _, m# s( V4 f: C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ Q% X3 ]2 }$ C- ~; I2 @; A) T
if( pSkillProp == NULL )4 R2 _, ~3 i1 `$ f! h& C
continue;$ ]7 o& \( g. y& p1 A3 t/ ]" w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& j3 i& J0 g2 x7 U/ T+ T
continue;% z4 f1 E, C( D0 `
lpSkill->dwLevel = dwTmpSkLevel;
/ h" f1 R. k& b$ D }
0 D5 W+ M! R# z% \3 x& f }: R; T0 o. k0 A6 A
}9 N2 M% D$ U0 X5 R8 V2 M# |
else if(IsHero()); F" o- s5 s( I r7 C4 I, U
{. n7 a6 U) @8 k- q; E# A
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' O9 v: x5 A! s8 o# \8 o {
; q' f8 i( G E0 X. U4 y LPSKILL lpSkill = &(m_aJobSkill);7 i' q1 C3 ~/ B% G" K2 n: g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 W2 A! d7 F3 L$ M4 V- G {
/ a9 D" }7 o3 c7 Y- d' F# I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' G) I" W7 _/ ?- T2 ? X5 J if( pSkillProp == NULL )
% w# `+ E: d, f% J continue;
$ o# a% M' l$ n2 }) ~; y2 B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 O0 U$ |4 H$ v1 S: m% m
continue;
& k7 |% }& @' O" t, B0 c lpSkill->dwLevel = 5;
3 r+ N6 Y/ J ^; f4 e, x1 H }* {. G/ r1 u5 T @+ B# `& G
}" i" h% E2 A2 l( W R
}/ \5 ^: z/ |% D
else if(IsLegendHero())% i. Y& [$ Z" `. }+ J: f
{9 v( l# [% @' {7 i& F% X2 C4 X
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 m+ O! w* A4 c) r9 F
{
' E" V1 j6 f# H. w: \, J LPSKILL lpSkill = &(m_aJobSkill);' l! w' q8 X2 M8 {$ Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' }0 ]! }9 z" H' f {, m% N5 V7 X4 \& y% j6 K( Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . x# Y7 B7 N9 P8 ?& |& z
if( pSkillProp == NULL )
- P) t9 j2 m5 B7 `" A8 m& Q3 P continue;
N# q( z/ Q7 K6 s: [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' z: I4 P9 R: l continue;' |2 D, K$ b3 |- Q6 ]
lpSkill->dwLevel = 5;
$ y, @/ _! v* u% k3 x- D }$ g" ^3 q; r1 Y% q+ B. c5 Y* d! l
}1 F8 h; f/ E8 \& ~( _
}
# e+ \: y0 g& D#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ A# q f$ h6 ~- u; I
if( bGamma )
2 p1 q: \# K0 h e {1 n0 b- O' f! @/ S) t8 Y# B* w6 V
m_nExp1 = 0;8 b- w6 d8 E- r, _
}6 F# {8 l6 p. k. K# n+ V
) d2 R. p8 ]% p. _, c1 m+ t
( (CUser*)this )->AddSetChangeJob( nJob );# p& s" e, ~* ^7 G0 E- }9 o6 O
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );! z: l3 Q6 u5 t. J7 Z$ j
6 N8 g" J/ d& X- D5 T) a# {, u) i+ u& O$ E1 y! I$ h6 L! P! ~; t
#if __VER >= 11 // __SYS_PLAYER_DATA4 g: \% r# ?+ H4 ]: g
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 y' S, l' ]; y& W7 @. p4 d#else // __SYS_PLAYER_DATA- W* [0 ^( d( Z z2 c/ _1 b6 P- {
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" i# |& W! `6 z g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 _. x0 n6 U6 C3 b: L if( m_idGuild != 0 )
. ]# z# q2 H: a% w* ?' u) G g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 s) r u" N1 p7 A: f l. `' o9 o5 x
#endif // __SYS_PLAYER_DATA* y {$ k) X' ^' P+ V/ X$ b ~: g
SetHitPoint( GetMaxHitPoint() );) W* z9 o0 Y s& f) D% d0 @2 K
SetManaPoint( GetMaxManaPoint() );" m3 z) L# A7 x& j, a* _
SetFatiguePoint( GetMaxFatiguePoint() );
" i+ ^1 f/ I; ]6 m if( nJob >= 1 && nJob <= 4 )" z) W# G) o- C8 q0 h( }
{
% {$ M2 h2 _/ z% m; K o m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 A7 a, F* a( g. \/ ] m_nRemainGP = 28;) S1 p0 k7 w6 B# {
}7 _1 T0 [+ `6 Y' E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; @8 H1 x5 [! ^. G* ` {
/ a( {( F' a" D) w2 \ m_nRemainGP = 118;4 d6 p7 @* Z' @4 ^7 T9 @
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;# t( f4 b4 @" j/ ^
m_nStr = m_nSta = m_nDex = m_nInt = 15;- X% y2 W. V% [1 o. e' h1 |5 Z+ q
}
+ |1 X) [' M3 C" e# O' W if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 ]& V( b8 D5 \0 m6 h8 ~5 n
{
; k( B5 Z% B, x2 l9 t CItemElem itemelem;
8 R4 w$ m9 i" }$ X: h itemelem.m_nItemNum = 1;, S. H! |& V- S0 \6 z4 g0 o
itemelem.m_bCharged = TRUE;' ` ?- n* C# ?/ o+ p; O
BYTE nID;8 B9 {2 w0 h, w% Q& U3 q" y! ]
4 E' }) v# I, C; L, G# l8 t if( nJob == JOB_MENTALIST_HERO )
5 U! F0 G' M8 X/ G# o' `3 x itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
; v% |4 v6 r5 j5 E if( nJob == JOB_FORCEMASTER_HERO ): j5 ]' ?- b# C8 j& Y9 d
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: `) X# W& B& e$ r
8 {9 h' c5 n* f- D ( ( CUser*)this)->CreateItem( &itemelem, &nID );) C! e- |6 j* Q: f
}& d* _$ S5 [' M* O
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* Q3 K4 l) }3 `: \- ]4 B6 O0 y; j ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 T% S2 ]. R( k- ~+ D" j
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. e$ q/ W7 r2 M A0 E+ v' |" [
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
$ E' I* u- S: a* _9 d' P ( (CUser*)this )->AddTaskBar();*/) ?; r; t' L& t# k- N1 F
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 f c1 X; ^+ y9 |3 _0 k. R' D
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?0 D0 w1 E+ s- U! o3 Z
((CUser*)this)->CheckHonorStat();' _: n+ ~7 u, I6 K, y5 {; @
((CUser*)this)->AddHonorListAck();( W/ U, `9 }2 j6 k! f4 A6 f
g_UserMng.AddHonorTitleChange( this, m_nHonor);
; n) k6 c+ z4 a1 n3 g! ~#endif // __HONORABLE_TITLE // ′Tà? a! B5 @( [4 @
}
. }0 _/ R3 [* `/ K& Z#endif // __WORLDSERVER
: f% Y4 `- ` p& w6 Y( D( C9 A} / d, x; N- N1 i6 _- V" z2 n1 @
$ ?* K; T% r0 W- @1 K: L( h T( \% ?然后你进入functextcmd.cpp并添加以下$ U! I9 R, \$ ? S8 p+ f
& C, g; Z4 ]3 l" [/ b4 N: a* s代码: k! e% V) i2 C
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- b8 F% N2 e3 ?2 {: S9 _下面插入
: i; Q% s! z; e/ ?$ D- WON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" P, q2 ^# T- u+ Y3 m
9 T- h3 C& t, H' [ q/ m: }然后你去6 k h0 ^7 b% E6 Z2 ]9 X) K& _
% j1 [& U, s0 S4 r
代码:
7 ^& e* o4 G+ v3 y' @! A代码
% Q: r" O6 b7 ]BOOL TextCmd_ClearPropose( CScanner & s )2 l$ j( _6 `1 e8 h* j: G$ |
{
7 X5 g7 Y9 F$ \* y& N#ifdef __WORLDSERVER8 ~' W$ K; [" B8 a0 [; w1 c
CUser* pUser = (CUser*)s.dwValue;
* W7 f* O0 x0 Y9 O. @$ ~ g_dpDBClient.SendClearPropose();$ M9 e& n( U+ P. H: b
#endif // __WORLDSERVER$ {+ N5 F. {* r& j+ [7 n z
return TRUE;$ D8 D1 t# P, T }7 Z" G* W. r
}) B$ ?+ q6 M3 @1 f
下面插入5 q3 H7 U* k, z7 |. Q) O
BOOL TextCmd_rebirth( CScanner& scanner )
) n" n+ i: k: S{
" V: y' J3 t2 l- k% C#ifdef __WORLDSERVER
/ n) g# @9 p6 L- l; {# OCUser *pUser;6 ]" v3 D' B6 b3 y" P
pUser = (CUser*)scanner.dwValue;; A- j' i( W7 Q0 |8 |
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ T( o2 @7 y, B+ Y, U4 L* epUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% ?7 v: ]6 A) a \5 c$ Y* [1 ]0 nelse
2 i n' a& Q9 h# K: |pUser->AddText("你还未达到重生条件!");
" j0 H. d0 N: [/ y#endif8 T8 M; t9 H) L' N0 t& \" ?$ a( M Y
return TRUE;
( ~- l2 K3 d3 q}
d2 s( E% j/ J" q o/ W% L; d; R' p1 h" U
* C4 ?) F0 w; N1 N/ D4 z# k w/ k
7 M( w: F6 [- |6 _% Q+ i" r
|
|