|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 f4 s& m1 v* Z3 X) {) c7 o
Z. X, L2 y, n. D% ~& ?Mover.h |5 T7 v* P1 O+ e. ?
代码:$ e e0 b9 T, d6 e+ t
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 c/ y" v, r1 m, _( P: R* M' Q4 I
) C* [+ @. J" u: [" ^, |5 c下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! s; V; \9 e* D, ~+ ^9 u( Q0 H8 {" N7 j! X
然后你去mover.cpp添加' H8 k7 Z+ p( c6 F Q; H
9 H/ b7 i& e& w$ u3 T* w# V代码:7 m. t" C% ^3 E, W. s$ d$ d$ u
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; t7 Z* x7 c, [& |9 G{9 ~' f5 e# g& u: C
#ifdef __WORLDSERVER
" D7 l0 l4 V" h, N+ b7 c) k // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó* z3 u6 g c- A X
MoverProp* pProp = GetProp();
/ L0 D; R) h8 | if( pProp ): m' G' F/ x' ?9 x
{
9 ^3 z. @& q* [ |7 O/ x% q; G if( nJob > 0 && nJob < MAX_LEGEND_HERO )' Q' E8 O8 ^8 ^! N; z- ?: _# a
{
, U9 a9 x4 C/ j2 x6 e4 { AddChangeJob( nJob );
- a/ ]7 A) Q& E' a }else{4 j& J! W; R+ ?& J; ]
return;
" H5 }& y, k D- T; | }
; a8 z" G7 u& @1 a8 `8 N# t int nPoint = 0;
' E9 J8 s& ?" t3 ~ if( m_nJob == JOB_MERCENARY )
3 ]$ X- T o& K nPoint += 40;- k4 [0 _. A2 q3 ?. w# u
else if( m_nJob == JOB_ACROBAT )( j n3 z) i& [* S
nPoint += 50;
! z7 N' |) I& D# k' n+ `6 z else if( m_nJob == JOB_ASSIST )
0 R$ W" _: r( s nPoint += 60;4 C1 g( u! [3 k! |9 `
else if( m_nJob == JOB_MAGICIAN )
1 K8 i6 V+ C1 d$ V nPoint += 90;
: m d$ x8 d, C else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
, A; Y, k* w5 x* [3 E nPoint += 120;
$ k p3 F, _/ T8 i ] ? else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
- \& w1 W) f) S+ V# a3 J! o nPoint += 150;& k" q+ _! E; E/ n8 A/ D; i5 D
else if( m_nJob == JOB_RINGMASTER )$ M2 E8 E; ?" `& v; G' r, Z
nPoint += 160;/ ~2 b- e. a- ~3 X1 w
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, E. K9 y4 U1 a/ ~" P" ?+ [! T nPoint += 180;6 y$ o/ L+ b: ?- o/ `
else if( m_nJob == JOB_ELEMENTOR )
, e6 l, a k& B4 r7 I nPoint += 390;! G% ^" M& g8 v) K/ B" _
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
, y" T- b) W- V7 d% }; p nPoint += 120;
! o i) b; R) w8 d0 j0 _2 ~7 K. U1 d8 ` else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
3 h' e- M9 N6 _' b6 B nPoint += 150;. G8 d5 m/ v; V& g
else if( nJob == JOB_FLORIST_HERO )) I4 K* e. T! Q$ Q$ m
nPoint += 160;
$ X' @6 R. v6 c8 T9 f else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% c3 r% \! r7 b3 D9 H) n/ u nPoint += 180;8 G. Z# W4 V8 J4 n6 w7 _# q
else if( nJob == JOB_ELEMENTORLORD_HERO )! E0 |8 E4 K3 m
nPoint += 390;% a# T; z$ X+ |2 L8 Z1 C9 Z4 {+ F
; `* G$ P3 |" A6 P
AddSkillPoint( nPoint );; ?( h* b3 \+ P
m_nLevel = nLevel;* I8 m7 T' b0 ?( V/ \
! m5 _/ C% ]8 C% Z4 U; E' T
SetJobLevel( nLevel, nJob );
, c E1 \$ [8 r( _ m_nDeathLevel = nLevel;
( q' |2 r+ E, h$ H0 i' r% R#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# d, p. W" |2 [! u! D a, o! t7 y5 m
if(IsMaster())
. h5 M+ W9 |, p' M$ G) | {! }0 j5 `% s7 g% y$ i! [, o: H
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 Y9 m, U! |" ~( e# D if( nLevel > 59 && nLevel < 72 )) V( ?) b; P. x6 v9 T
dwTmpSkLevel = 1;
& t' _. y3 x# C$ y+ i else if( nLevel > 71 && nLevel < 84 )
8 o/ E' v4 Y1 U8 n' L% { dwTmpSkLevel = 2;# C4 c- p" g. d: `
else if( nLevel > 83 && nLevel < 96 ), {: m9 I2 ~0 \5 l+ n' ~" o( c% w
dwTmpSkLevel = 3;8 ~8 S v: z2 X
else if( nLevel > 95 && nLevel < 108 )! h0 F. w( l8 x, t& U" T8 v* v3 Z0 ~
dwTmpSkLevel = 4;( u5 r0 l8 t* Y
else if( nLevel > 107 && nLevel < 120 )
% ], j3 [3 x! W D: j dwTmpSkLevel = 5;
6 r J; [ b) ~& }) T for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 L4 l% r: h: X/ I, ]* N
{
0 l) [) ?6 I; Z4 e2 ~ LPSKILL lpSkill = &(m_aJobSkill);" j( H% d+ D' w$ o4 Q$ Y2 }
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 E: o& C4 R9 L" O0 s
{; D2 ]% K7 Q1 t- _
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); u' u3 K# [# l$ \& \% E
if( pSkillProp == NULL )
& A# [9 j5 ]: V+ V continue;: ~+ q# ~" f! a. q! g# p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) p' }" X. `; X continue;
" h# v" S m% y* V# l lpSkill->dwLevel = dwTmpSkLevel;
2 x4 a& b- B8 |) P; v* w9 H }0 _+ E7 @" E" @
}! [ `1 ]3 X# P! ?' k1 f
}
% m+ h( |, X4 R" H else if(IsHero())
, }- q) f4 r6 A4 x* {6 g {
3 F c6 Y4 E" L: f- d I for( int i = 0; i < MAX_SKILL_JOB; i++ ) & I' d7 A, s7 M; B
{ 5 b, t5 R' Y! ~5 m; w
LPSKILL lpSkill = &(m_aJobSkill);) K" B0 k, O4 O- a
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 }0 {3 G/ l3 v& t {
3 M* O# R0 a' o$ q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 y. J4 i6 a- l0 B- w( X if( pSkillProp == NULL )
. r$ z8 L6 H" l, u: ^' @& K# ^1 ^ continue;4 k' s3 _; @" g$ O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 [* N- N, Y1 v3 x/ n/ C7 }
continue;
& ~$ U/ Z- d1 b0 A. _1 Q4 h lpSkill->dwLevel = 5;9 C# I- K6 y8 X
}3 x* C; r7 B3 N3 e) W
}
) r! K& \- O3 A( \* N: a4 x/ e }6 z0 h) O$ ]" n" d6 @
else if(IsLegendHero())4 S' E: ?; w8 {1 Y) b. i9 i7 r( i
{
8 O; J/ Z+ G- S! M9 \" e for( int i = 0; i < MAX_SKILL_JOB; i++ )
- S2 R% _$ Q& S) L { . Y' O- g% x5 C, V7 }
LPSKILL lpSkill = &(m_aJobSkill);' \/ O+ ?$ q" G |8 D/ X
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ I$ I, _) ?9 B0 e1 N
{
0 U5 s8 j2 h; Q, i+ T% L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 j' t- @1 S( M4 p# ?: [& d9 L if( pSkillProp == NULL )' ?1 A, }/ j j2 O1 S! Q6 V$ G
continue;
6 {; u0 P/ @) M; ~7 ^+ f if( pSkillProp->dwItemKind1 != JTYPE_MASTER), B3 l/ H& H0 `% J8 t( Y: J* @: d
continue;& N* o( l. W0 |) C8 m& s
lpSkill->dwLevel = 5;# z" u% R3 e _ n2 P- M6 ~
}
8 o/ G9 ~4 ^3 M( ^' ^3 o: I }
) l: ^: g& _! k0 N0 @ }$ v, Y# y! W) M; `
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( g2 U' o; T' D! o& v6 ~ if( bGamma )
1 u0 F- P" j; U2 Z6 z1 i) d2 W6 v {
/ C+ f' @' ]1 q! R m_nExp1 = 0;; w0 Z) i/ }9 y% @# B' o, I
}/ F1 \7 ^$ J& k1 q
7 t( R% O" z( I, E& y' f0 z# D
( (CUser*)this )->AddSetChangeJob( nJob );# T( Z- O1 I, q% h1 h; G* a
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 B8 {$ l k- g7 m- f- C
7 G* ]1 j0 V( G) ?# y; z+ B$ o8 E$ I K2 x' f9 ?
#if __VER >= 11 // __SYS_PLAYER_DATA! t9 K+ K% W0 ]$ }( a) E& y1 A
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 L ]1 r {9 g
#else // __SYS_PLAYER_DATA
4 J# A! Q, [- c& N) o g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 E$ k6 l+ S& w# U0 d u
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# H: M/ s- m8 W- y& f# L. B3 L% v if( m_idGuild != 0 )
& g( d; E+ O5 X, ?# e e' I g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; w' R* U8 Y" S* I#endif // __SYS_PLAYER_DATA
5 h$ ?9 ? k1 [) g( b: I SetHitPoint( GetMaxHitPoint() );
9 h9 Q2 G1 [) W" F4 z+ Z1 x, }2 w SetManaPoint( GetMaxManaPoint() );
+ J& b2 k/ y: m SetFatiguePoint( GetMaxFatiguePoint() );
/ Z' O1 h m* x" j4 v4 j& V if( nJob >= 1 && nJob <= 4 )
0 L" Z0 A8 U; [( |% X {
0 U% K9 b: Z6 s* H+ V% d( n m_nStr = m_nSta = m_nDex = m_nInt = 15;) ], M, u2 m! K; S P6 O
m_nRemainGP = 28;
6 o; o9 I2 U6 \* F0 x. I: Y }- R G% C: X r% T9 z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 X/ S4 ?6 W M) {! x {$ }" v% m M, V2 N/ Y. o3 u
m_nRemainGP = 118;
6 k" C d2 z/ u( o' Q- I* q/ [ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;# C. J0 z# O" `$ K. S3 R
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 X" E: V' C7 K+ v$ ~8 d8 o6 w
}
7 E! w1 s& y$ p, [0 W) h) u if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) d/ n5 l# W7 y2 ^7 y/ c0 Q3 n
{
7 R# ^: c' t" L CItemElem itemelem;
0 p5 n6 Z, R4 W0 H$ E2 ~; I" ? itemelem.m_nItemNum = 1;7 m7 F: L2 G2 s2 j3 t0 j6 p5 B( X3 U
itemelem.m_bCharged = TRUE;
5 k; a6 l) \ e BYTE nID;( i9 _; X) \- Z
$ J; k( e1 f' ^ ~9 H/ I if( nJob == JOB_MENTALIST_HERO )
; A. w) a4 O+ @ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" a# |" ] J, L! x3 `
if( nJob == JOB_FORCEMASTER_HERO )
; |. C( R/ m/ P. Z" R8 G) t. g itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;+ X; W; { ? c& C$ `
, n! O. U i( i* r/ \
( ( CUser*)this)->CreateItem( &itemelem, &nID );
4 |# W1 H! a! ?, L, M. ^" ~5 s% Q: H1 U }
: C1 S9 z' A$ j g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 O* p: G9 D4 n, p
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 D6 Y& O+ k, A+ a+ [$ _2 s/ o ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' k1 l: N1 r2 f% b; F9 _0 t- d /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );/ j* H& B2 l$ [8 s
( (CUser*)this )->AddTaskBar();*/
9 F6 g) [* ~* c+ i; B/ i0 { ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );1 f3 m" b$ V" X2 h2 R! K( _9 {
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" a; \; C0 K. `# D ((CUser*)this)->CheckHonorStat();
, e2 ]. `. u, e* c0 i ((CUser*)this)->AddHonorListAck();( ?$ E! ^3 j0 g& @
g_UserMng.AddHonorTitleChange( this, m_nHonor);7 A, S f# `: [( o
#endif // __HONORABLE_TITLE // ′Tà?' H* y9 L) F! `1 Q
}4 f" N- U# c9 b! d( @! k
#endif // __WORLDSERVER, A; I7 C' g, v1 `6 g( M1 U
}
, ?( p) ]9 |7 j9 i0 b+ C! C5 y- G+ N7 W8 G) c9 @4 x% a$ d' f
然后你进入functextcmd.cpp并添加以下
# k& d4 S8 \& P' y3 ]) ^2 L
% J' R0 M( \5 C代码:
" u4 U& }+ Z" yON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 p6 f) Q: \9 i! h) e
下面插入
* p1 ?; M" k" F, x$ H9 Z$ v P8 U( tON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 k* t% v) X8 |
) H8 r- a% M: h( Y2 D然后你去
! ?9 c! c* q! d, O9 ?3 ~' t$ Q+ W$ T
代码:
% H( B4 m/ ^8 F$ |) K/ u代码& D: ^0 I% ]& s$ @$ ]# h4 ^
BOOL TextCmd_ClearPropose( CScanner & s )5 g$ S, E, @/ [2 r4 L4 H% n
{
7 V p& q0 A+ ]2 o% q. f! ?& g#ifdef __WORLDSERVER1 y- T& O N. u" w' k) Z
CUser* pUser = (CUser*)s.dwValue;* T& U2 Y! {! i
g_dpDBClient.SendClearPropose();$ J/ T; }7 { v- n
#endif // __WORLDSERVER7 M& L0 }* {' i! A2 o- Y( K8 z, M/ {
return TRUE;9 `7 u" F. h4 J& G
}- F; @$ t) F" j
下面插入
, S- z0 t/ H( b8 M6 `+ e+ m; SBOOL TextCmd_rebirth( CScanner& scanner )
& F, K! f, y/ R2 Y, f{& [ ?7 u1 m5 Q9 C3 q7 t! M
#ifdef __WORLDSERVER
: K: K) ` o I g( y' p" sCUser *pUser;$ M5 ]/ j* X; a. l# |* z* Y
pUser = (CUser*)scanner.dwValue;) C3 h7 [- F- @
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
; ]9 @5 ]2 s) r2 S# N2 j6 b% vpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ C) V" w9 [( @$ W2 k& A' h5 X
else& M3 m v) G- {9 c
pUser->AddText("你还未达到重生条件!");6 K1 b2 a6 L) H; F5 x6 C
#endif
3 T; F+ q+ U; m/ z- u( g& creturn TRUE;1 ^( a T# @+ F+ D1 l/ T5 s
}
" k, u1 I9 k! J( g/ V! v: {; F% ~6 j! z
9 _! d* t7 L, k
) n: w; ^4 R6 j; A: n3 K) |! F& w" |" w
|
|