|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* t; R6 [0 h$ }% u( { T0 b/ z" J, ]5 d6 C. F$ t8 j, h
Mover.h4 S( E! X9 I; b+ _
代码:
j* c' a$ D' b* R: U, s$ w找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
* j L+ Y: p2 f( V- L8 ~2 j1 ~
! \2 Q ?% R }下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, K! t# V2 r0 [' W! x
9 i7 c" V+ h( Q然后你去mover.cpp添加; ~( ~/ l+ h4 k2 s) Q. R
6 A8 F+ ~4 o& m4 ?0 s' s3 B( T
代码:
9 U/ W( k2 \3 ^% i# svoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 @2 i% D! U* y) @( z4 P8 H
{7 y6 F x" V$ P" z6 j; `: R3 u
#ifdef __WORLDSERVER2 d2 ~' {6 `" V2 h
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# I! g/ U) B8 C* M5 [1 X8 E1 q MoverProp* pProp = GetProp();
3 D; C8 k+ v7 ] v' b if( pProp ), I) Q& L2 s9 y6 }! ^5 {, v. w
{8 J7 W$ h' n% M0 L3 {
if( nJob > 0 && nJob < MAX_LEGEND_HERO )! s* v/ C: |1 q9 q7 m5 y/ t
{' J# x5 X) {- l4 W; ~& j$ ]8 g
AddChangeJob( nJob );
" I/ m% ~# z1 m- }; k W }else{# z% N% J3 g5 t# L
return;2 c3 P9 \6 i# o+ N. N; ~2 I4 c. a
}
* `& h8 ?+ ] E5 Y% o6 [* a$ r int nPoint = 0;
" c" t2 M, b* q3 z B if( m_nJob == JOB_MERCENARY )
* T- T- t. Y+ y& d nPoint += 40;8 x. _" q3 E6 U# N& v0 I
else if( m_nJob == JOB_ACROBAT )
, b( S3 o' [$ L' }4 | nPoint += 50;) n* Y7 o6 O# m) ^# E# O
else if( m_nJob == JOB_ASSIST )
" d! @0 N2 G4 @ nPoint += 60;; }/ B1 s4 T. }! O P
else if( m_nJob == JOB_MAGICIAN )! b/ a' e* W9 j# A
nPoint += 90;
1 Q1 P& T* |/ P else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( y0 B' o. P6 f$ |8 c2 w8 Q) |- J9 n% K, H
nPoint += 120;9 G& q( R1 f$ E( u: B6 R
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 A5 t; {/ ?3 b+ K% q; v; T2 \
nPoint += 150;9 x! s" p' D1 ]4 D5 L2 \2 C y
else if( m_nJob == JOB_RINGMASTER )& @' J7 t3 a8 U+ Q2 i2 w
nPoint += 160;& N+ I u+ @, ^! N ^5 G6 w
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
! F. d9 B7 D% R! X9 }! Z; i nPoint += 180;
% ~: c% q# T/ b, g4 ^ else if( m_nJob == JOB_ELEMENTOR )4 ^3 J: M1 E7 n4 y' _- b4 l. x# ~0 F
nPoint += 390;
. B$ ]& b1 x) b$ ]0 h% t else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )/ n4 O, B" t {! G S$ \6 O
nPoint += 120;6 _5 ?/ K/ W/ U+ j$ Z5 V4 i
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ m% z& u/ U; @/ o! O* h nPoint += 150;3 `' Y$ s2 O }9 q
else if( nJob == JOB_FLORIST_HERO )
% i' B1 g; l( F0 P5 I: X5 n nPoint += 160;
, d4 W% T" A/ R5 S9 C4 _ t else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), k/ M. ^; _( M9 E& ^) w I n6 e; ~
nPoint += 180; f9 ^. {: D4 j
else if( nJob == JOB_ELEMENTORLORD_HERO )
7 ?" [, p4 n( K; S/ D b nPoint += 390;2 ~% z8 K5 i7 N/ U' @
, Q1 a- k5 S& a5 h3 w8 h0 d
AddSkillPoint( nPoint );: P# B- G' q- V$ o1 `+ r" d0 M/ i
m_nLevel = nLevel;
8 O5 O4 j" N+ B8 L' D9 m
+ D: |' ^/ C* i1 G# X s d SetJobLevel( nLevel, nJob );! B% D- _9 l( W: Z C* Q4 v
m_nDeathLevel = nLevel;
1 c% q2 p# H3 ^% K4 c! g#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 ]% {1 I9 x% \7 q, t if(IsMaster())
* ~/ j/ ^1 Y- a {2 q I( z5 r$ x7 ?% W( `5 m7 `
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 `" @/ w" D: I1 L if( nLevel > 59 && nLevel < 72 )+ r4 L5 n& l; b" O# I5 U9 ^7 r
dwTmpSkLevel = 1;
% a- E" C5 E* p" i else if( nLevel > 71 && nLevel < 84 )
. Q7 B/ |( v3 b" A dwTmpSkLevel = 2;5 m) d' K! P% D; i0 h3 j7 G
else if( nLevel > 83 && nLevel < 96 )
1 \! b7 {' \/ r: o! q dwTmpSkLevel = 3;
# I1 @/ c% c+ m( ` else if( nLevel > 95 && nLevel < 108 )
0 f& l- x: x+ Y# |0 E* l. e1 r dwTmpSkLevel = 4;& ~" U! O9 _* {' v: [' `% h2 t' ^
else if( nLevel > 107 && nLevel < 120 )5 q5 ?6 e! c# E4 d- J, \
dwTmpSkLevel = 5;
) q/ X) [" J0 J% K for( int i = 0; i < MAX_SKILL_JOB; i++ ) . {; y: y4 c1 L2 P7 f
{
& ?5 e0 g0 Z9 X N' y: Y0 V LPSKILL lpSkill = &(m_aJobSkill);, d/ C; W, \ f/ F8 K7 ?6 w# u X
if( lpSkill && lpSkill->dwSkill != NULL_ID )
Q* }+ y% e8 s( C {8 }) z5 b, k1 J# d" U- k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 k, R( K0 l( P( K if( pSkillProp == NULL )
. n+ u# g+ ^7 n1 p( I" Z3 |8 d continue;% h# _6 D' ?; N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( z f0 W8 ~% Y3 \+ X' I/ b continue;" c+ g/ [' s2 u
lpSkill->dwLevel = dwTmpSkLevel;
- t' |1 f, I5 a* Y }
( E: d! v7 F0 U; ? d1 @ }5 D0 O" K2 E8 ]. i) h0 Z
}) D# C% H" n; W
else if(IsHero())
, c- ^ Q+ o& t6 J {: }' g' Z7 }) J
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! _) E0 S* C H {
2 T) [8 K7 Q5 F! x% I( w LPSKILL lpSkill = &(m_aJobSkill);+ ^* V! K- ]# ?% Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ `4 G% @4 ~) Q9 q" y7 ^
{
* _2 f! ^; H* K9 ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( [7 ?! X% P/ B3 }; S" t
if( pSkillProp == NULL )+ P# j! y: u" J. Y1 k \9 c, L
continue;
2 c# k/ t# V+ U5 o, ~- \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# W# n M- Q1 x% t+ m& r continue;
3 B! U' o) B. K) |& [9 o$ q lpSkill->dwLevel = 5;% x9 n8 }: _) o7 V
}% h. H p1 u( p& t* z8 S$ d# S
}8 F5 x! u* \( R
}( m$ A0 ^( r9 i4 v0 R! |9 Z+ p# }0 X Q
else if(IsLegendHero())2 Z! R; O( q- ?
{
& I# _. ~0 ~6 s# ]# K& ~5 D3 C for( int i = 0; i < MAX_SKILL_JOB; i++ )
: q( `8 k8 |; m3 O2 [9 ] K" }* b { ( z8 w5 [( {# N8 r& I9 |) G! u) g
LPSKILL lpSkill = &(m_aJobSkill);
; g& [9 V+ D0 { if( lpSkill && lpSkill->dwSkill != NULL_ID )
* z/ B, [3 Z- h3 X* ~1 o2 H5 m {
2 b% J- D% i$ J, J9 ^+ x+ Z+ x' L7 u* P+ v ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 r8 m+ D9 q, G- C, r if( pSkillProp == NULL )
( M& m' s1 j% Z0 p$ T3 } continue;
4 e( b! t7 U1 ]# e( x! ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 m/ f- Y; t- p7 X5 B( V6 L$ ~& U
continue;+ \, c+ ]; h4 d( i( o! j8 F$ y
lpSkill->dwLevel = 5;
( V) k; n. G- t I- k$ U }7 i$ I9 G4 K' y5 M( n# N
}4 C8 I: e& j1 ^% y
}
4 B3 H$ F" Z4 {7 Z1 A#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 R$ F0 z. {# H if( bGamma )+ z5 g0 r# d8 [
{4 J* M# l" j/ M; s8 @- D
m_nExp1 = 0;
9 \3 A+ ~3 U' h2 W$ Q% e5 |$ h; U }+ R; h% W7 D+ S' g7 s% r! k
9 ^- E" r; M, a* d
( (CUser*)this )->AddSetChangeJob( nJob );7 b+ K, N7 L+ \) @9 v. Y9 I. x8 r
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" c2 }+ ~) T1 \# y- S) b4 j) N
; y! V' s }1 t y2 G' Q1 d% S: X1 d8 O( Z) o
#if __VER >= 11 // __SYS_PLAYER_DATA
. V# V- r9 p4 F/ D g_dpDBClient.SendUpdatePlayerData( (CUser*)this );: q- L2 C- E& A2 y6 i2 A/ |
#else // __SYS_PLAYER_DATA
5 Y- X$ m3 E9 `+ G5 x6 z: E g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 x. P7 ~3 h+ u0 |' X4 }6 f* e6 V
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 S8 b) h* u1 ]
if( m_idGuild != 0 ). r1 B3 |. Q1 Y# N
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );9 J/ t1 `6 v7 H P% ?3 N0 Z" L9 Q
#endif // __SYS_PLAYER_DATA
0 k7 I: h* {2 n; B SetHitPoint( GetMaxHitPoint() );
, s1 h6 u+ T+ H( R$ { Y SetManaPoint( GetMaxManaPoint() );: _' ]7 h/ c/ b J, K2 T3 q
SetFatiguePoint( GetMaxFatiguePoint() );
+ I1 L/ x$ W/ X if( nJob >= 1 && nJob <= 4 )
) c0 W0 f" `) {% h5 V {
1 C2 S+ h; z. U, j5 b m_nStr = m_nSta = m_nDex = m_nInt = 15;
) Q6 C4 P/ r7 b m_nRemainGP = 28; V9 f) B# g1 W% J; }; V, w# d
}
9 U% t) H7 P' g! ^- l if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); q7 e4 ~( F0 H9 L% U2 _
{* T$ _! g! [# r6 c- ?: P
m_nRemainGP = 118;! ~+ @. r. X6 U8 E& _! _5 T; {
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
. Z$ ` j! Q( q" I m_nStr = m_nSta = m_nDex = m_nInt = 15;$ _( k" h3 C A0 Y: Y" U
}
9 K& ?, ~6 W) A if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): w( Z& ^ X; X: R2 }
{7 [( {$ l, [* U/ g/ O
CItemElem itemelem;0 j# j! M, ]4 G4 v2 `$ a. y" E$ T
itemelem.m_nItemNum = 1;
: O0 @' |1 |. N itemelem.m_bCharged = TRUE;3 |4 s: t3 ^# S' u
BYTE nID;5 G7 F$ ^$ V7 C5 O
6 g% [( s* G; t; g% }7 w if( nJob == JOB_MENTALIST_HERO )
5 Y6 N* c1 m2 I6 L5 v0 K- K itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
3 Z" s% c! m) i* F if( nJob == JOB_FORCEMASTER_HERO )
, Y% C9 a6 F5 i itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;! g6 o4 v R, z8 q
* z/ N# D1 K, `. _; ] ( ( CUser*)this)->CreateItem( &itemelem, &nID );
& d+ r( b! v/ R' R1 U: O }% p- ?$ U' k' ?1 a
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( Q: C f+ Z% s8 j% O: R7 R ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );% @8 F4 ?% N7 G+ g: v7 E. F
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );9 j6 E9 T! X9 o8 H) o
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: z8 Y% Q) V$ V4 }
( (CUser*)this )->AddTaskBar();*/
4 U w- X" n& c5 I4 f1 F# X5 g8 l ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* R( p C' T6 \2 o1 E3 u
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* y1 t |$ ~- W
((CUser*)this)->CheckHonorStat();( B# ~$ T* G5 N
((CUser*)this)->AddHonorListAck();, k: f' h+ X! @0 I. i
g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 ?& t% I9 T4 W#endif // __HONORABLE_TITLE // ′Tà?5 |8 Y! E, ~# O v! V
}' k. v8 \+ b5 H& d* J! ~
#endif // __WORLDSERVER
" C- a! t. f- r) z} 2 ?# G# X, d4 b& v1 X. X' U. [
; ~0 b9 G) P. }5 M ?6 g然后你进入functextcmd.cpp并添加以下
! l" d) o& J- E5 E1 X' z- \' S# D Z \. M5 a
代码:6 ?9 ~- O0 }# l* a4 j& W
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 F; I7 O3 ?; {/ \' t7 p下面插入
4 d& L: @' S8 `* H3 {* }! TON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ' [! z: g( Z# B$ N2 L1 e$ O" V- q
& T r J8 c) s+ s+ H
然后你去0 x8 X, o; p& u/ G9 y8 N/ \5 K/ }
; g' o: _0 H2 K& @; M8 y% M
代码:
$ o0 H) p4 M8 o, p/ W$ t0 |代码8 e( o6 k( O& E9 a8 @( w2 Y+ q( `
BOOL TextCmd_ClearPropose( CScanner & s )2 Z& J8 e9 G! E. U
{' o, Z3 z$ u8 q7 s
#ifdef __WORLDSERVER
& p+ |2 v/ R0 G! I0 K1 `! q6 a CUser* pUser = (CUser*)s.dwValue;
2 |$ M' @ E# Q. u9 ?) G! K g_dpDBClient.SendClearPropose();9 } Z7 `; x3 S$ H
#endif // __WORLDSERVER
$ }6 B; ~% E9 A/ v( w8 M# A return TRUE;
# o2 N/ z2 C! [9 |}0 I: ]$ S$ S. I3 j4 o- K' M
下面插入
/ P$ u+ R2 [4 S7 Q1 CBOOL TextCmd_rebirth( CScanner& scanner )0 Z3 D& A! Z4 {# [! e
{, `" e# u8 a* Y2 D% _
#ifdef __WORLDSERVER
" N, U9 P( I2 B, K) k" YCUser *pUser;
0 c% P W$ S- W+ JpUser = (CUser*)scanner.dwValue;
; l, U2 h; w: y+ S) p5 bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- k3 ~5 k7 `0 o! UpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 c6 F. l/ {9 L- Jelse5 P+ o/ \! ^: b# @$ W9 v* }
pUser->AddText("你还未达到重生条件!");
7 f& _, M; Z0 v! f6 w r+ k#endif
- B5 i' T" H4 wreturn TRUE;
) P4 ~, U$ j: r+ m. n}
# j! C6 Y2 n$ r* Y0 \3 D6 q1 x7 H0 ~; s$ o. |1 @: |
8 @) T' B" B5 I7 g$ |
0 G% K9 @! }. o
0 }% a) _' F. L- R7 w! _ |
|