|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, k6 l( `0 a2 M1 e. b' [
# p, u' I& [: `0 \: h) }; J
Mover.h1 v$ ^4 F7 d$ \
代码:
1 N+ g' q; X6 v找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ l6 @6 T$ D' X; S
4 ?6 l' K5 T6 h; B下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
l/ i# K5 z$ |8 d
: S$ V8 E: S3 V/ [4 g+ R然后你去mover.cpp添加
1 F1 S, `- M$ [) M! E6 e2 G& Q/ ] y& h) z; S. ^
代码:6 e/ Y! O7 Q/ _5 [+ d4 `/ J
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( L5 `: h6 j& ^1 d* L
{2 D5 _( i" K# C! C3 c; j
#ifdef __WORLDSERVER
+ [1 x6 g9 g# C) \9 N. A // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( w9 X4 j# X; @/ l
MoverProp* pProp = GetProp();
7 U3 d* L( f, s) ]" H0 k" `5 W if( pProp )
2 D& p8 r# p+ w6 r {0 Y9 \; f! d- r7 ]0 j# A2 o
if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 H5 a9 a, M/ M1 y- o: `& d
{8 [+ W- l" I& {% e
AddChangeJob( nJob );
$ v, j5 G3 Y& z/ J- a }else{
: A! [2 F! n* a0 e/ b2 K0 N! m0 { return;
% h" p: {. v. L# W! C }
+ m- O3 W I# w, @0 h4 V5 [ int nPoint = 0;
1 I$ m6 n( Y6 H' O8 c2 I1 E: w8 ^ if( m_nJob == JOB_MERCENARY )
, a/ \/ R% K6 {1 L6 [/ r nPoint += 40;# K" {* M' ?+ o/ m. T
else if( m_nJob == JOB_ACROBAT )
* x2 ]! w8 q- v" s; [* | nPoint += 50;$ l4 ^5 l* O/ B2 v
else if( m_nJob == JOB_ASSIST ). A* h! V1 X3 b! h, G
nPoint += 60;
0 b' d/ R" ?7 U8 K5 I; r; \ else if( m_nJob == JOB_MAGICIAN )
( ]. m+ I- s0 z" h; ]7 Z nPoint += 90;
! K2 l6 v% b/ R8 D# P, G else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). `; L- |3 N3 Z8 _; z
nPoint += 120;; F) q2 l, I m- P3 }
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& D0 P% t, O9 E7 O$ e& J0 z
nPoint += 150;" y2 ^! Y! {. J0 a2 ~: y9 Q
else if( m_nJob == JOB_RINGMASTER )/ V. ]' ]) O6 B X, t
nPoint += 160;) u2 _- ?5 G+ u1 r
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )( r5 {+ B2 k& L/ Z- o
nPoint += 180;: u! h! ^' Z; P
else if( m_nJob == JOB_ELEMENTOR )% u( O1 D1 @3 v }! D* W+ r
nPoint += 390;. X. L9 S6 f0 A2 t" ?
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), q5 x8 J* T5 Q+ e5 b, {
nPoint += 120;7 C4 F1 a6 h/ e6 _. e& e
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 h3 \# }% v# H4 M# R nPoint += 150;
6 l m+ ]2 [ f! U1 Z, H else if( nJob == JOB_FLORIST_HERO )
O+ j& j: Y7 S' C: Y+ n& D nPoint += 160;
' d! F; s9 p- h; X6 F else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, @' S3 t* [8 i nPoint += 180;
( h0 `7 H0 G2 B2 I) m else if( nJob == JOB_ELEMENTORLORD_HERO )/ ^9 q3 p. w# |+ r' x% ]) X. g: P
nPoint += 390;
$ o M5 C! s1 Y# W2 N1 e/ Y: w
& G1 _" H. @3 p# Y; h- N AddSkillPoint( nPoint );' y1 y# ?: \5 o
m_nLevel = nLevel;
6 U' n$ ^: f- V( z' U$ U$ {$ _' S7 a
X. w4 Y& o, w' O, W8 s! x0 K2 M SetJobLevel( nLevel, nJob );5 W' a/ L# `4 i# z& W3 C
m_nDeathLevel = nLevel;1 n* E7 x7 \- W
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. E& R7 _( |, G$ M if(IsMaster())1 }0 W5 v& x$ c( a! L
{ k7 ^6 O" f; J# s) Q$ m9 Y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
* c8 j& p" J+ D/ K: r7 ` if( nLevel > 59 && nLevel < 72 )
' g: e6 z6 K1 @2 R7 q4 U0 W4 Z) `/ R, ~ dwTmpSkLevel = 1;
H& x- B! m, W7 t else if( nLevel > 71 && nLevel < 84 )
6 o" B, E3 M6 a+ u2 ?2 g1 m dwTmpSkLevel = 2;5 T( Q, {: [ L; m) ~: v
else if( nLevel > 83 && nLevel < 96 )
' ], ^3 E% Y) ? dwTmpSkLevel = 3;1 V+ ]3 H! Z$ b3 F
else if( nLevel > 95 && nLevel < 108 )
. a3 y6 i T }% C% I& t4 u9 E! F0 j dwTmpSkLevel = 4;5 V1 q) @) n! Y
else if( nLevel > 107 && nLevel < 120 )) S4 |$ {9 N+ w B' b5 G% @
dwTmpSkLevel = 5;, F" ^) W$ a) w2 f, |
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- L( t9 f/ y: y {
9 N% _5 q; [4 _+ W- ? LPSKILL lpSkill = &(m_aJobSkill);
) N5 c( F, W# O6 [& R if( lpSkill && lpSkill->dwSkill != NULL_ID )
! X- U2 L; m4 N y5 N {
2 v' s z3 `6 O/ m M0 N0 F6 s6 C7 y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: ]5 t; j0 {' s9 I if( pSkillProp == NULL )
; y$ n7 X! b K$ R6 l5 P continue;
5 ~: F0 `( U) Y- V/ D4 c8 e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- H5 D- B4 _3 z, `8 A7 h
continue;
2 w& {( q j3 C1 K( ~ lpSkill->dwLevel = dwTmpSkLevel;
2 w# `+ Z" I5 z( r }
" m% U& q9 W1 s! Y }
9 M' \: @2 I& y5 a5 @. d6 t }0 e+ f2 W( N8 u5 ~6 |
else if(IsHero())
' Q: D! u2 f* X- v3 U O {
7 |( o2 U' G ~$ b for( int i = 0; i < MAX_SKILL_JOB; i++ )
j8 M" m7 F) m9 K {
* ]& m H! a: _) U/ g! n LPSKILL lpSkill = &(m_aJobSkill);
) B: P% U. l! {5 n; E5 m6 g' W if( lpSkill && lpSkill->dwSkill != NULL_ID )
) f3 {( e! g6 a) _) L' R5 C! l {
6 C( o+ k4 y- J1 p" e: | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 V' z1 F$ _0 g5 ? if( pSkillProp == NULL )
% z, o# A9 Z F$ y3 n2 ?" I continue;
8 f- H8 w; H) z4 y9 k: [ ^) @& G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
N, `! I, m# p continue;6 c0 z, j! ?6 @; J
lpSkill->dwLevel = 5;
6 B/ f: t6 [0 x6 Z0 U8 u9 ] }& M* }" d9 R$ a' W
}/ Y8 C% k) ?* ?
} C& e/ S8 P% M
else if(IsLegendHero())
, u0 A1 g. o9 N0 Y5 E {
3 K2 W4 B% u5 s for( int i = 0; i < MAX_SKILL_JOB; i++ ) g5 J3 y6 D* t$ ^( y
{ + ~* e) Q' G; f* E# ~- T! Y
LPSKILL lpSkill = &(m_aJobSkill);+ j2 m2 q0 W8 i: t& @5 y, k
if( lpSkill && lpSkill->dwSkill != NULL_ID ). d, }, L5 \! @
{1 S, [2 f3 k K, D" F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- I# m* F' r) u, B if( pSkillProp == NULL ): E2 T1 q* u% R/ P) Y
continue;
; U( s/ {; D/ p/ `: |9 _* Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER), y. G! p/ q) Q0 }% [& L% P' k. H
continue;3 h0 J5 A' [! u
lpSkill->dwLevel = 5;& J6 s; j+ h6 f$ A
}3 a4 A! b, r( o' R) E7 p& L* A
}8 Z2 |4 ]& U2 A) T, g8 H# V
}* n5 ^9 e3 [: s' ~! q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 I" a9 j# E9 Z6 p( L if( bGamma )
( T' q" F' \: `; k& q {) \# l: I& G- P9 N4 z5 s& z! B
m_nExp1 = 0;% Y! v) N I6 f' j) W
}
7 |4 Y e6 u F3 W) m+ c* U6 q: ]# p: D6 C
( (CUser*)this )->AddSetChangeJob( nJob );
. k1 |6 Q. Y2 {" o3 n. r8 J0 U g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! k; v5 R, x2 L ~& C! \
9 D+ F7 w: m3 x# J0 ~; M& w
2 n: b9 } n6 g6 T#if __VER >= 11 // __SYS_PLAYER_DATA
3 S. g6 ?9 H9 d( i. h0 s$ ]1 T g_dpDBClient.SendUpdatePlayerData( (CUser*)this );1 ~5 R" r7 P' A0 p8 U1 V! K4 Z
#else // __SYS_PLAYER_DATA
/ t/ A0 H# H9 }7 |0 u g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% a8 z! D$ a: f8 \5 S4 f( y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
" i. e4 b C( b. Q0 J L- L if( m_idGuild != 0 )) n, n% n3 V( ]* w% \! r9 T
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 ^- ?; F' O: V* Z7 Q8 P#endif // __SYS_PLAYER_DATA6 \/ H/ f7 C, m0 g8 o
SetHitPoint( GetMaxHitPoint() );
' Z! }" E; y3 e0 M* [/ ?4 o: y SetManaPoint( GetMaxManaPoint() );
, \, D9 c+ Q# ]1 Z5 t# m* @ SetFatiguePoint( GetMaxFatiguePoint() );
; Y* |) y6 b# i5 M9 h4 J% @ if( nJob >= 1 && nJob <= 4 )9 {8 a, |; ?8 C; A! } q
{4 R* R! ?( i4 P" J! q- D5 I2 n
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# ~4 d( k. b5 b m_nRemainGP = 28;4 ^% z6 ^' |) @- y2 F
}
% l( H% r( t7 T3 i if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
6 ?4 A2 M2 J( C& R' k# M {1 I# c$ }+ O+ f F* `7 w( A. F
m_nRemainGP = 118;4 L8 ^5 _; ^- ~( f
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;% p S0 o' @! K) G9 `& p) d2 d
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 N _/ B& v6 V' Z+ c. a
}
7 P E4 Z( O! L' t if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )$ b' x' p% J* N% U/ h" N q
{
* I$ t" v) A2 \ CItemElem itemelem;
5 P. J, R r* I" {* _, j2 \ itemelem.m_nItemNum = 1;% x5 u; }5 m& D2 V- G0 l
itemelem.m_bCharged = TRUE;
/ g4 w3 ]; z( j& R0 w1 s0 v3 i BYTE nID;' H* s: }% U8 F: n! Q) Q+ x$ s# t
2 M/ c( W5 B6 y" B" i$ ^# O: v
if( nJob == JOB_MENTALIST_HERO )
3 `- a- X! O) `, i itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; Q7 A" R8 ?6 t( r/ _; }) u
if( nJob == JOB_FORCEMASTER_HERO )
1 w+ |! B+ e7 w) t itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) J: _7 E( T7 C( j2 D/ C- Z$ M. w) Q1 V, _9 i( ~
( ( CUser*)this)->CreateItem( &itemelem, &nID );* i$ T4 K, w' E/ Q: ~
}
6 m/ s' Z+ _, O* Y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! Z+ V9 l, `; D% Q$ [ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" k) R6 |2 u6 ]4 W. M7 w* c ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 T2 e9 e! @( g: j* ]! F
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );5 ?- o* {5 W7 i6 Y
( (CUser*)this )->AddTaskBar();*/) s, K1 |' X: s2 D6 f0 K) b4 T5 e- K
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 C0 l8 O$ o9 ^
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% L. E2 F" e7 u& c x' U* W
((CUser*)this)->CheckHonorStat();/ S7 k3 q: B9 \. d& b1 L/ P
((CUser*)this)->AddHonorListAck();
7 G6 Q# `2 N5 m g_UserMng.AddHonorTitleChange( this, m_nHonor);
" ?5 N% x5 d! H& z6 F( n2 [, f; {#endif // __HONORABLE_TITLE // ′Tà?, I s3 ?7 S$ o: X! Y
}* Y0 e: N# c* [) I% }/ Q
#endif // __WORLDSERVER
; V9 K# r) n9 ]: @& K} 0 [3 y2 `: w U. h
- S+ ~+ v- f- {然后你进入functextcmd.cpp并添加以下
- s$ ]* [+ T, @
$ H# H8 }6 ~% @ P }' P7 n- D代码:
% K. E- T* \& S* N: I& [9 A$ lON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) m+ s' A: a [$ _- q
下面插入
" L7 J0 B0 E1 _" g7 EON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
& \1 b# n- _4 l+ B6 o
% f: V! {) ~5 I然后你去
, \. n" h- T8 ^, V6 |4 f4 x( F$ ^- S" p7 i7 U: ~" z9 H8 I! H0 T
代码:/ P4 h8 @, H0 q+ `2 X8 j5 y
代码
) M; o6 r: F8 J2 q8 \6 FBOOL TextCmd_ClearPropose( CScanner & s )" }! O0 e+ `3 x% a
{
) l. z; R% p4 d/ U" l& i3 ?: f#ifdef __WORLDSERVER
a9 d2 x. l( v9 N) ?7 E CUser* pUser = (CUser*)s.dwValue;0 n) S% X1 M, V: E/ w
g_dpDBClient.SendClearPropose();# l. ]1 R4 E+ k$ e& n: A+ B" a7 Y
#endif // __WORLDSERVER
) X& v7 a3 B9 ?4 ?; m7 Z: x return TRUE;% f, x* F) e' q' d$ h0 T% C5 f% p
}$ t; O; O, q3 T) t5 f6 O
下面插入9 L& {( k& d! b8 c8 K$ [( T4 Y; C
BOOL TextCmd_rebirth( CScanner& scanner )
* T' d) k3 n0 A2 m; @4 w! l" d! M& c{" X& o1 t2 K1 V
#ifdef __WORLDSERVER- D" ^ |8 u+ r8 S5 A, M
CUser *pUser;( n$ L2 W. h( k3 r; Z
pUser = (CUser*)scanner.dwValue;5 R# b7 c! c, \+ e9 C. o! J+ w
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" B! l6 A% g0 C0 g& x3 UpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. f0 j( A* d% u8 }else
! u7 P1 {( q6 q* J9 Q" s# P+ T( XpUser->AddText("你还未达到重生条件!");
( I* j6 k7 }1 ?#endif; i/ d% `: i; U# A$ E+ F7 J
return TRUE;/ }4 T% ^4 A7 f' p! X
}
& ~. D* q; g% I# l2 Y5 E9 v9 N; H3 D
/ M S; Q; Y9 ?; C1 c" y! ~
6 d8 ^( |6 l: N e7 e/ V7 D& A
% T x3 S6 h/ V* X- R' w' e6 j, m
|
|