|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% p# p4 G9 c1 Y9 P
& b. b/ l `; ]2 x# C& cMover.h
8 a6 Y* }, d- S/ ~3 V6 y# R代码:
6 Z3 f* t. s, G1 B1 a- J找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 M! S$ t$ I: O# V0 ^) u6 B8 E; K% g0 H
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 l0 b4 V! I% D- f
! K% h" G/ t' q: t* V& f8 o6 ^* ]然后你去mover.cpp添加; Z$ @: W7 F3 S; K
p2 x4 I& k2 T1 ]
代码:+ I" C. k' O6 {& g
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 m4 x1 K% A8 N; K{
2 G* V( E$ [, o' K7 \#ifdef __WORLDSERVER2 Q5 O' @. o" `" `- F
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 Y7 K s7 l/ G MoverProp* pProp = GetProp();
( I7 B) J5 b$ a" i if( pProp )7 ^2 j9 ~5 Z) H5 t
{
1 I4 l6 B0 p* G+ f$ O3 d( h if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 X- q5 [, e+ G5 F( q
{4 Z3 h" T! ]+ h( e% j
AddChangeJob( nJob );! x, I0 t2 h- Z/ h# ?8 B7 n
}else{0 U' l! a- t5 x/ \) u8 a
return;
, E7 l! R5 j2 L D7 m }8 c5 T' B- [ d3 ?
int nPoint = 0;
& l: Y: s5 u! s if( m_nJob == JOB_MERCENARY )
6 ?2 x4 t! I e4 v3 w% R8 S nPoint += 40;6 c& Z( A! w$ L! S
else if( m_nJob == JOB_ACROBAT )
f. x3 J% B2 v nPoint += 50;
' {% v- |8 s6 A9 D. y4 n else if( m_nJob == JOB_ASSIST )3 G: i( Z# w% |+ g- t( B% \
nPoint += 60;
, t* {7 ?8 L7 \; v0 j else if( m_nJob == JOB_MAGICIAN )
. l u- ~5 ]; h) p) l0 c8 [+ E2 ? nPoint += 90;. I1 U0 ^. D3 g5 [; f! N
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). o. l# d( a) m) k+ W
nPoint += 120;
2 e3 o! a" j3 i$ Z/ w/ J# ]! k else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* f- M+ q& E/ ?- R" f
nPoint += 150; t3 y; f$ n0 S4 v8 H# H6 D
else if( m_nJob == JOB_RINGMASTER )- m' {* d$ y. x
nPoint += 160;: S% x& p8 j' V5 P5 l( a2 W
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )( {8 o0 c- _/ j' w" F. _
nPoint += 180;4 T% w' p4 h! Z8 V% T5 i
else if( m_nJob == JOB_ELEMENTOR )
" c+ Q' o& ]% p6 P8 X( I nPoint += 390;# {. \: |5 y4 C2 W/ e4 C; f# H
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 _2 q9 W, s& C0 x4 J nPoint += 120;
! @9 K' V4 {7 m+ ] ^ D1 i else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ) C. V# ?( ]: `
nPoint += 150;: W5 ]$ J( e9 Q, P0 f8 i
else if( nJob == JOB_FLORIST_HERO )
8 _" f ^8 X% m- t2 R nPoint += 160;
/ E; w" n0 ^2 H' N& U: g0 L9 s else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )- J* s( r; U7 B2 {
nPoint += 180;) q8 S$ e; E* M8 J! G! j
else if( nJob == JOB_ELEMENTORLORD_HERO )7 R& n2 Y$ ^! W" D {
nPoint += 390;
d) w$ `6 u1 m% p. ]6 b3 j( U2 ^8 |1 T" W; c* `
AddSkillPoint( nPoint );! K3 H$ {; n. \
m_nLevel = nLevel;" O, O. n4 B5 V+ ^4 q
8 z( D( X* f6 V+ \. J D2 x7 c: W SetJobLevel( nLevel, nJob );1 w5 g! f- Q5 `" P6 b+ } H
m_nDeathLevel = nLevel;
7 C2 q! z5 s7 R, D#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 M' c/ Z" h- s3 V, G! | if(IsMaster())8 [/ {4 S* H, j6 E2 K
{
' ^/ A9 Q* q) ]1 X6 b. t I, S int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! c( v; Y6 v \+ ^/ \9 o4 S2 l* F if( nLevel > 59 && nLevel < 72 )
" O0 |& E% {- F dwTmpSkLevel = 1;3 }& m+ @" F( T
else if( nLevel > 71 && nLevel < 84 )
3 d( _8 F+ p# S9 {. h dwTmpSkLevel = 2;2 X3 G2 F u+ q/ ?: `1 B: L) f
else if( nLevel > 83 && nLevel < 96 )2 [# ?$ x+ r; G. a
dwTmpSkLevel = 3;
% Y# ^; B! V7 {& a Q else if( nLevel > 95 && nLevel < 108 )8 [9 ~; M9 l6 y" ^
dwTmpSkLevel = 4;$ X& e$ g" M* E1 e2 g$ e; g* `" o
else if( nLevel > 107 && nLevel < 120 ): s) q4 p+ `6 z
dwTmpSkLevel = 5;6 ]- {+ z/ r, I7 V" I+ f' k' d/ R2 D
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' F9 l. _6 ^1 O- |' B& T3 @) l
{ ! f4 A" j2 w/ u, a; [3 k% L
LPSKILL lpSkill = &(m_aJobSkill);+ F( S$ U. Q& C6 B9 g! n6 d' M
if( lpSkill && lpSkill->dwSkill != NULL_ID ). m8 V1 x+ J( F* h9 |5 {
{
0 @3 _. r7 f2 Q* B8 Z& t- F2 n% _7 B. b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 m* Q1 p! s/ ]5 g& H* V; z8 z
if( pSkillProp == NULL )! L4 |* O- R/ O. U+ T
continue;4 e. |4 j+ r: Q. j- H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) L G9 B7 \. Z' V
continue;
- ?( L r1 c" W7 ] lpSkill->dwLevel = dwTmpSkLevel;: S3 D; ~' R% G2 m2 S3 b4 c. |! L
}
( t2 P/ C" o+ w3 @ }
5 R* C0 [2 {; j- E* n6 I E }0 u- N6 ?: j( L& j
else if(IsHero())
4 E0 n: }. K/ e- ^% @3 g( ]" U {: {' E& p- @& B* {6 A& F- `' ^' I U
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 _; E: a! [' m, v8 } { 3 @2 o$ k" r* `) h$ \3 \
LPSKILL lpSkill = &(m_aJobSkill);. N( S! m; s+ y- U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: M E4 _+ D, ^/ Q {4 n. F# m+ k+ ]7 [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 N9 {: T$ O* M3 l% \/ } if( pSkillProp == NULL )& ^% k5 [% d9 d, S L0 D9 }
continue;
+ j8 L% e, t/ B7 H6 K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- J, J6 L8 x3 @0 Q continue;
- {( A0 o: Q( s( V lpSkill->dwLevel = 5; ~1 ^/ R( v+ {. O Z! B4 f% }
}# g+ Q2 _; ~7 A& C9 F
}
3 P% t# g5 x, Q$ F! [ T" C: X5 B }
7 K5 j; w+ e9 n& ?4 R' S else if(IsLegendHero())# @/ Y$ ?, r4 Z( J( W
{
. Y2 G4 {; x0 y for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 h+ ~% `8 u0 `6 i* M8 J7 [4 q
{ $ b v) q6 v0 U; ~: t4 M, h
LPSKILL lpSkill = &(m_aJobSkill);
; U1 K% l1 s+ P' l' [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 x# Q% `# c0 z {
! @2 E8 {+ B. ~' V1 l( R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # y% k" V- n6 R J5 i. Y8 ?2 ?# V7 M: v
if( pSkillProp == NULL )
# t/ q. O, q3 b, Q* y7 v" O$ p continue;
' B& m/ P$ N( A, s# U' l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 Y* ]. g- [( m/ t continue;8 s7 M- B5 u2 |' h. L: F
lpSkill->dwLevel = 5;
# S& d" {0 [9 N( R }
' n& [% ?: }! T }9 _7 r n! T" i( M; c' E$ a' k# a
}* F) Y4 U' I) M- L8 `( _
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 I/ ^, x5 S4 @+ O if( bGamma )9 d5 t8 z$ t. C! g$ _
{* {9 w- l p# h( L/ p! T/ b% V
m_nExp1 = 0;8 E" @; d% x: B( m
}
- m& a8 t1 J$ r; X7 N5 T( ?. m0 j5 }
7 L1 V4 \% {& H$ Z# m ( (CUser*)this )->AddSetChangeJob( nJob );
/ H9 c5 X: x$ n2 O3 d g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );! a" e; c" D7 w Y
7 P- b! E% \6 ^6 s! n, j+ F6 X0 {! `& @" Q% j" n
#if __VER >= 11 // __SYS_PLAYER_DATA- j& l' f: b6 m3 w
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ ?4 _ T( F% E5 p* p( W
#else // __SYS_PLAYER_DATA
; W( }5 U8 N9 s3 o4 T9 M g_DPCoreClient.SendPartyMemberJob( (CUser*)this );& @5 @0 p+ O5 M) j! Z
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, b6 o9 ?4 X# G0 t0 @/ L if( m_idGuild != 0 )
! @* ^ F1 {+ u7 j+ v" ^9 m g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 n7 J. D; _, q9 x7 ~+ D. u#endif // __SYS_PLAYER_DATA' C5 n9 T C; i" G T! E" t5 f6 S
SetHitPoint( GetMaxHitPoint() );8 b3 d8 o" ?* d
SetManaPoint( GetMaxManaPoint() );
% j7 r- D$ [- D" r* W! N SetFatiguePoint( GetMaxFatiguePoint() );
4 ?; u' o/ b/ v if( nJob >= 1 && nJob <= 4 )
+ m8 W; Y4 X3 C9 @, N' f {
+ W4 c& Y Z% v3 J% |( g. ~& A1 P m_nStr = m_nSta = m_nDex = m_nInt = 15;, `* E( B9 ~ k9 I; M
m_nRemainGP = 28;0 P* G# A8 Z; J. g
}9 u4 V) N; Q6 k& w8 A4 w5 v
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )6 w1 ?1 P: V9 b- l) |
{
+ N' T0 u. z/ V; W* k m_nRemainGP = 118;7 V `% |+ G) I% c
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ z% ~# B& J" w" ]% K6 K9 ]7 L
m_nStr = m_nSta = m_nDex = m_nInt = 15;/ k$ H/ i5 F) ?6 U! [; ]9 v# S' Z
}
: y# W( g- Y9 g+ c( k, H: ^5 r if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. A" Q' i; h% }2 ]9 U { ^, Y2 T) w$ @
CItemElem itemelem;
9 h0 ^ O# \1 N- o. l |! C3 {# w itemelem.m_nItemNum = 1;5 P# ? w$ ]# k, x7 `/ r
itemelem.m_bCharged = TRUE;( o7 `0 g* |. U! L! w% _1 {- ]
BYTE nID;
8 H- |8 r+ H$ b
N- l# t- Z# |. _8 z# _. J if( nJob == JOB_MENTALIST_HERO )) z3 a) K( h- l0 f! l$ K# [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" q+ k0 l% G# Z; }4 G4 f* S6 N3 c& a if( nJob == JOB_FORCEMASTER_HERO ); C; D7 P& ^% R! y; a3 ?
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, | @* J& X" o9 u
6 z. A- T) ]! g8 ]6 D" B
( ( CUser*)this)->CreateItem( &itemelem, &nID );
! j: p0 F! r' \, g }
* B+ g. ] n3 t4 T2 m$ v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 D# b0 O& R. p& r. k( Z ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
^& Q; y3 }+ l/ T. x* H. C ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. M0 k, }( V; N8 R/ T /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 D! i. I5 |& O3 O ( (CUser*)this )->AddTaskBar();*/
' @$ B" g/ j5 J" q ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 Z. X: G5 x! a L; E+ C7 X#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) J C8 n- u1 f) y3 c* m
((CUser*)this)->CheckHonorStat();
) H" E8 T8 l) x7 o% c/ M) _ ((CUser*)this)->AddHonorListAck();
, O, h. L+ _" `7 E g_UserMng.AddHonorTitleChange( this, m_nHonor);
7 ^) | N2 d$ S1 f4 H; C#endif // __HONORABLE_TITLE // ′Tà?( W/ h1 w2 k3 g2 P4 {% ~
} n% k/ m! J; T! ^: C' ~) i. e
#endif // __WORLDSERVER
+ u7 x+ ^2 P- f, K$ w7 ]3 }} " o8 D* T4 b1 a) `; A0 Q$ @( {
& ?5 G) m- Y2 |" O* d
然后你进入functextcmd.cpp并添加以下' T# g6 r7 ~7 G' N) w- U" q
3 t7 H, x: X9 z+ B% ^$ I- o代码:
8 H# l( {& ~. H! bON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )1 v) b# s* O$ r7 K# v4 d8 q
下面插入
5 h* T" }) C0 F: U( hON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% t2 \3 v# F9 E5 T8 h
& N7 \! I# F$ Z" i7 w5 b8 U# E* B+ t然后你去; G, Q9 y8 D- ~4 [7 g* [3 r# R
/ b' c* V7 z6 I. h6 b; Y代码:
& N1 @/ q7 Q* B# F$ g. C代码
/ h+ ` W9 ^; d& ~BOOL TextCmd_ClearPropose( CScanner & s )
* K r4 M9 D5 W) F+ ]{3 t- W# b0 J) H. [# e
#ifdef __WORLDSERVER
) ^% M6 C; y0 u5 v CUser* pUser = (CUser*)s.dwValue;
+ m$ W& L/ P4 N! n/ l g_dpDBClient.SendClearPropose();5 u! ]& N: ?& e4 g& Y
#endif // __WORLDSERVER
, a6 v ^+ J7 Z1 }: X6 w. Z return TRUE;
7 Y. J: N4 a1 \# ]}/ l/ X. }$ }4 c# I4 t# j3 D1 X
下面插入* z) a3 T( C3 B$ j
BOOL TextCmd_rebirth( CScanner& scanner )
( g4 F4 i. b# c, ?3 W{
6 q3 |9 {6 D5 k; Z" K3 z8 R#ifdef __WORLDSERVER2 l) P* T" w) @+ L$ p$ g
CUser *pUser;3 A4 X1 f# e- v$ I
pUser = (CUser*)scanner.dwValue;
9 k! |9 E0 K6 r( X& @if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
9 i& r3 N6 Q; ~5 NpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- w Z1 M b% t `5 melse2 C. t" R/ s, F6 N$ P
pUser->AddText("你还未达到重生条件!");
. O5 z8 ]. I( W0 p#endif4 ^9 o* Z8 j1 e- a8 M
return TRUE;
/ Z1 t- W' P3 ]7 s: Z/ }4 M}
, {; C/ c0 ?0 B) C$ E6 z
; n+ N( u& o3 |( Z3 r( h m* C% i
+ u Y% }& ]5 G8 e% N
/ t4 s7 Q7 \, z5 ?4 e4 j7 g
) ]2 E9 u1 g. n0 _! x% f5 |: @ |
|