|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 b7 N1 R- j* G( c% F, O) B+ N: c. S+ F) z
Mover.h
% s. v+ R. s' x# E* I4 P) B& Z6 d代码:
6 ^, N% n. e9 ]# c6 K( k! Z# @, D找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 y0 _' [/ S& X( o$ U% { N$ G+ N- W& f) V
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, n( l9 u9 {+ Y6 |6 V. w+ d: a- k+ O' s3 }! M
然后你去mover.cpp添加$ ]) u4 b3 I3 F0 g$ u( j; v' j
/ J. G5 U3 j# Q6 f4 T6 ]
代码:+ X4 g4 S; S: E5 I, F
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! F( P7 }0 J" I ~ H
{
3 A5 ~1 i5 B+ ]#ifdef __WORLDSERVER" o% n2 D) c4 |
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! O0 C5 L) k2 P! a- O( a' i# Z
MoverProp* pProp = GetProp();
9 _( l6 E: i5 I" c5 v: U. s6 x if( pProp )# a) b7 T/ U+ Q' z, l/ `" t5 y& t
{/ I* |# N% ~ O j! A& M! i! s
if( nJob > 0 && nJob < MAX_LEGEND_HERO )* Y' X; f m* ?
{) h: \1 i, V1 @
AddChangeJob( nJob );
0 u/ C' {* N8 a( M" ]* }- U" ] }else{( L: q' h) ^. X2 @, m
return;
# G- |5 z. c* ^, w' F+ \ }
1 f: {( I3 q2 d9 L5 {0 | int nPoint = 0;
* D0 h+ v7 t' ~6 r; P if( m_nJob == JOB_MERCENARY )7 A: H; V9 t% i8 P1 v' h
nPoint += 40;; w N3 \: T2 |
else if( m_nJob == JOB_ACROBAT )
; L# h6 R# L% M$ X# ^% Y/ o nPoint += 50;7 {1 _* U+ W1 h3 r" k
else if( m_nJob == JOB_ASSIST ) s* m7 Z. V5 m/ ^2 m* ^
nPoint += 60;
* }1 `9 {/ v7 g1 A ]6 T else if( m_nJob == JOB_MAGICIAN )
% G" _8 z* }6 \, H. I nPoint += 90;) T1 F: a4 ]$ E$ X$ `! C
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 ]7 A" l; l" c. k8 J nPoint += 120;
2 u% E! b6 b- [- w, A2 e% V2 E+ [ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 x7 i3 U( T3 p0 X; @. H5 @
nPoint += 150;# q9 W% t) n0 O2 t' M
else if( m_nJob == JOB_RINGMASTER )
: R5 n4 \& I# }1 N: c1 Q. f! m( z6 | nPoint += 160;
5 `0 f) S E4 `- l& U6 U+ O8 f else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
* y+ Q( w% v3 B' E4 j" _" D. d* z3 q nPoint += 180;
% S7 y7 h. k/ a( ?; D* _; z! x else if( m_nJob == JOB_ELEMENTOR )
' w [& v1 a' l" T% _ nPoint += 390;( ?9 H: _1 T0 _/ P7 F
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 e1 Q. `4 f- l R& H; U( M' d/ p n) h% a nPoint += 120;
, B# {$ ]7 a A% [, v/ P, Y4 y else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 I2 {; x/ T# i/ D
nPoint += 150;
) c4 O& u$ L) c$ Q, g else if( nJob == JOB_FLORIST_HERO )% h) t6 D; v! v3 f$ u' j
nPoint += 160;
0 h4 ?9 u2 p3 h4 Q4 `; _ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ): ~& j! S0 T7 q: e. y) g
nPoint += 180;
$ C4 e8 v! {# E8 _; h& T- s else if( nJob == JOB_ELEMENTORLORD_HERO )
! [* b4 |5 B: ?1 B+ m6 k( {" \ nPoint += 390;
. F; s x6 r7 W0 ?0 ~: S! S8 Z" r, N H7 O: Q6 V, E8 I; E
AddSkillPoint( nPoint );2 \1 @: {6 N( ^: F* B
m_nLevel = nLevel;! h; ~8 T0 O. Z- f5 T
9 g0 O! C" w6 U
SetJobLevel( nLevel, nJob );# U2 |: y/ Y* b( G! ~- ^
m_nDeathLevel = nLevel;
+ @# F- @# ~5 g8 q- a1 k#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ F7 w* v, U0 I. ^ if(IsMaster())8 n0 P7 Z* V% M
{/ A! q& g. u8 T, z# b$ C, x
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 }1 h' f3 d' V1 V( t! Q; V! t% P
if( nLevel > 59 && nLevel < 72 )/ C* L3 F+ C& u
dwTmpSkLevel = 1;3 S. l2 m$ M6 M4 D' x
else if( nLevel > 71 && nLevel < 84 )! Q. f2 ?. `" u, S7 }
dwTmpSkLevel = 2;& `4 \" [! N* x; ^5 k8 t* d1 [, O
else if( nLevel > 83 && nLevel < 96 )
/ o8 a8 i) V0 j$ x8 ` dwTmpSkLevel = 3;' u+ Z" g) h; w! H2 J4 S- `# n
else if( nLevel > 95 && nLevel < 108 )
( W" v! ]4 a/ _ dwTmpSkLevel = 4;
! {* K) [0 ~5 y7 U( E; \, y5 M else if( nLevel > 107 && nLevel < 120 ): \8 A8 x+ F8 \# ^$ S$ S1 @- G. G
dwTmpSkLevel = 5;
, E3 U* g' f3 b for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 @2 D" g. J% q( S. \1 G$ O {
& a0 f' y2 \! c/ k; n6 f LPSKILL lpSkill = &(m_aJobSkill);
$ z9 y2 ?1 i) S |, p if( lpSkill && lpSkill->dwSkill != NULL_ID )
* ]* G; Y8 U( `+ U7 I3 R {
) n* L9 u7 \: \' c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " r7 K# k$ U" \) T" F! D* T
if( pSkillProp == NULL )
$ e6 c% v% i3 B6 t; s+ N continue;! J/ \6 I( J# Z! P4 t) R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ U4 U! a2 u& ]) T# t
continue;
: N; S! R" s2 i7 E( S" R' t5 F lpSkill->dwLevel = dwTmpSkLevel;9 x% P4 a8 d" n. Q- r
}
9 b; [# T" P4 J! m& W8 T. l! O }
: Z2 i+ \, p# k( t }! X' R/ J! S w) y! `, {: ^
else if(IsHero())/ ^6 m5 i6 V! x0 x6 d# ^ y3 z( R
{ L- o! g- Q" t
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ A( s' R. d' i' k! Z: z2 v {
4 i" O3 t' [4 G L! l LPSKILL lpSkill = &(m_aJobSkill);
6 B3 K; k8 ~8 V4 x m if( lpSkill && lpSkill->dwSkill != NULL_ID )& `9 |0 w; r# {/ K" H" {* r- {- y
{
! x1 s9 T: n+ v# c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 T& m& C2 }, }' M1 y/ Z if( pSkillProp == NULL )
- B+ o& G2 c: O* Z continue;) a5 f" d% m+ Q% G! r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% M- w+ A4 `/ T1 W& t* F3 U2 J continue;
! [$ T6 P: h+ B lpSkill->dwLevel = 5;
; U" v5 k; n! ~9 t. | }
6 o; `& ?7 h; G5 ]9 ` }, _ h" g7 Z1 R! o- i
}
; O1 c: t" d" J8 a+ L6 a2 H else if(IsLegendHero())
/ [! B& g0 S } {
v, J8 J0 F$ M+ b+ e; {* e for( int i = 0; i < MAX_SKILL_JOB; i++ )
; ]& n0 [# A) l; W* S7 a; {+ A x {
- z4 _) [" E2 Q- a0 K; u$ }" h LPSKILL lpSkill = &(m_aJobSkill);! G6 u5 K- z9 ^; {! g- y( c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" s% C5 L8 h: z1 {1 d r& l {
0 N) h2 b9 T( a1 d2 T, u4 |+ c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' n. B2 ]' e" E( Q5 [. |4 ~" Q! C0 l
if( pSkillProp == NULL )
: J0 t- p/ k6 C# ^. M1 V continue;
, }& T3 \9 {4 C8 q z- n if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 Z/ ]$ L+ y% S continue;9 k, b" i6 B+ g+ E
lpSkill->dwLevel = 5;
1 n, f7 V# z; u, E3 n }# E$ E: S% C9 v
}, h( V$ ]6 o9 p5 _; l. q3 _+ G% D
}
9 L* D t& T3 Z/ o" W3 \#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: U* V3 i/ U1 ~/ j* l if( bGamma ), _+ h. u3 G3 a' V# P& g- Y
{0 |+ ~, R9 _% a3 k* \. y; a: e( O
m_nExp1 = 0;* J2 N3 j6 w. q
}
1 T3 j) c" o N, b: E& ^
& |! K" }( U% A6 H, } M# D ( (CUser*)this )->AddSetChangeJob( nJob );
; J- B6 d! J: }/ ?3 B g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
% l; Z5 w! J" u8 B$ j& H" C& p, u1 J9 Z
' a0 e+ t) _/ p#if __VER >= 11 // __SYS_PLAYER_DATA4 T9 v7 l6 K9 w v. S! ^$ ]! l
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& e' \! O1 F& X7 [( J
#else // __SYS_PLAYER_DATA; ^* ?, n5 j/ u) W# O% f; J
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ t! x: E5 p" @9 { g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ N& |& t0 C" q) K
if( m_idGuild != 0 )( ^ p6 t$ r* L: {0 P! n
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# b* r @3 B( {$ v; Q$ {3 x
#endif // __SYS_PLAYER_DATA
6 X/ P7 \+ p3 Y$ v, c2 T6 @ SetHitPoint( GetMaxHitPoint() );
' g- W1 b8 h$ \2 D" F0 ~ SetManaPoint( GetMaxManaPoint() );9 W" j# V# G; ]1 B
SetFatiguePoint( GetMaxFatiguePoint() );8 V2 S- [- q* K4 x+ G3 n
if( nJob >= 1 && nJob <= 4 )
" E: H3 D$ ?5 Q& ~% d {& V$ B4 n P* C" V
m_nStr = m_nSta = m_nDex = m_nInt = 15; T; w7 t( Q8 R6 y+ H
m_nRemainGP = 28;7 ? {1 z" W# b/ {6 @+ n8 j$ ?
}0 A b6 i, C6 C, P2 R1 D
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )* l# o6 b! _: Q) I
{
% U7 R) M; q2 w5 u# K m_nRemainGP = 118;& O. l2 E3 s4 K, ?' E; V7 u* ^( t
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;; ~, ^- h1 P. O( q2 d- G
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ B2 |9 N' E% X# w; W( r) N. |. T- x }
( z8 f2 X3 F( B+ X if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )1 b3 V. T0 L& t* Q" p4 Y( V" w7 T4 I C
{" j# c3 y6 _3 p
CItemElem itemelem;
* u% P' u. m' t7 x. @ itemelem.m_nItemNum = 1;- Z( T8 R* p+ a( R
itemelem.m_bCharged = TRUE;
% L- U, t1 h3 { BYTE nID;
, l1 y# b( `- C; x( a) C: R2 l6 V; w% v' W7 ^+ K
if( nJob == JOB_MENTALIST_HERO )
+ |$ x8 P: ^9 Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, u4 o( C! ~) y2 K
if( nJob == JOB_FORCEMASTER_HERO )0 m# M/ u ?- t% w5 |
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. [" {$ m% E) ~/ e
# K* t& l `! K ( ( CUser*)this)->CreateItem( &itemelem, &nID );
% ~; \! W/ d) [7 p! P* Q$ Y }* U! `' ] A% I8 _# q9 D1 G5 z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );, }2 T% x" o% s D) x; r# [6 O
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );+ v- a: W) G$ e a5 W3 A
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) K( U7 y3 s& c. g& ] /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 k5 ?/ M, M! R6 ?6 n ( (CUser*)this )->AddTaskBar();*/
1 ~+ b# B% O4 m7 Z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );7 |6 m; e6 [. z% a& [
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* p b4 F5 {5 t
((CUser*)this)->CheckHonorStat();8 h+ N9 E/ z. w. q3 w9 t4 C
((CUser*)this)->AddHonorListAck();& M$ s( Q$ b [& @0 y' Y* m" i3 L8 k
g_UserMng.AddHonorTitleChange( this, m_nHonor);
- o2 N1 u0 i5 _/ U+ W7 Y$ l [#endif // __HONORABLE_TITLE // ′Tà?
% w9 u; k, _) U8 X# A" }: u }1 s) t, ?2 s/ I7 ]" l' i3 I
#endif // __WORLDSERVER
+ y) ]; ?. b- T, s}
7 e! d1 W- o/ X! d$ \& ^, g4 R% J; X/ [3 b5 F* f) N
然后你进入functextcmd.cpp并添加以下
# x* Q {2 C) ]4 y+ x: E8 h2 U! L7 D
代码:
2 W9 Q+ ]+ T5 w! sON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ n0 [8 ^0 X" k' G: @下面插入
L* {: q, ?- {0 M: |ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, n( n* u% I; r! _$ P! d4 x5 Z0 ]- f& J1 ^1 s
然后你去3 G, \6 y: Z$ |+ N# o: l
& W+ f [3 L' W) w! \
代码:5 G2 x7 v" {* Y8 X
代码* ~! t0 n5 |( X9 l
BOOL TextCmd_ClearPropose( CScanner & s )
+ }# z$ ~7 e6 K0 g+ B6 {{
) J3 g: s0 j& F1 n/ k) Q#ifdef __WORLDSERVER
" }2 a9 `1 N3 u2 o: h# M0 _. C! L CUser* pUser = (CUser*)s.dwValue;+ O& t4 U6 D/ W$ S" D9 s
g_dpDBClient.SendClearPropose();
( }9 F( [3 Z$ i7 J6 v#endif // __WORLDSERVER0 w/ t* Q6 W% g, v6 ]8 s; \% Y
return TRUE;
4 } o6 q' i: q" \}2 |- X* L# `) M3 ^: C, l' \9 c" f
下面插入
1 t3 V; T, O* x% \* OBOOL TextCmd_rebirth( CScanner& scanner )
: g* ?: v' y+ z+ I, u0 I. g! p6 z{# W% e c( H7 k9 v# p
#ifdef __WORLDSERVER+ Z2 E! H, n4 ]. p( g
CUser *pUser;
2 W0 M$ o. N W5 c2 f* B, |pUser = (CUser*)scanner.dwValue;
1 {( `- y e* p, R5 q+ S; N/ Bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 g, u5 Z9 A& [! I" ?, N/ |pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
! h1 x8 ~$ c. g8 [: delse; E$ k* |2 Z% r7 \
pUser->AddText("你还未达到重生条件!");
5 q& ~; l" ^( _5 w9 j: [. Y( u#endif
5 u M' F* _' |" S/ R# K7 ureturn TRUE;% G6 B, b& d% v: z$ i& r* T
} ! D+ K- }) y! i' m- u5 G
; b% p1 r3 S9 ^5 e" f( W- @
/ H+ T) ?0 R( B+ _4 |+ E3 t+ i) f" f! Z! e. p
- T1 z: q$ N5 _: B
|
|