|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 ]4 l' d. t. S4 d ]
# y1 f1 W: I4 J5 z }+ IMover.h: r) N+ q' L' j2 J, v
代码:' E% _7 t/ ?8 H' @6 o( t8 r9 r
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& t3 A+ m$ W' ~
7 v9 N8 V1 t3 C) Y( p下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& D$ P- T- @' R' D8 r
% k. g0 B. w, J' i8 K) }% H- y然后你去mover.cpp添加5 f4 L6 U0 S U& W' v( c9 h$ _
P, L+ H# Q1 u2 w& K
代码:9 K6 V# ~. z3 W
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ o4 O9 o- \; ^5 G% S; R
{
, S3 d4 g+ b+ v) G' L( { q: n#ifdef __WORLDSERVER$ d1 K% s: d" S! j
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó& ~8 v4 U$ v2 Q. d7 b9 p( `
MoverProp* pProp = GetProp();
3 x- t6 [- X6 d' B; t r9 D6 u7 K if( pProp )$ U5 J) w s. U, V
{
' ?. q: E# T* Y% _. u if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 i9 S: f4 ]# M& \( ]
{
( p% s3 g; }1 L& Y) T6 j AddChangeJob( nJob );
; x* \* N- T5 `5 g1 l }else{/ t' q/ t" C( |
return;0 {: ?! {3 Q. ?& M6 R
}
# Y0 Q1 B, I3 Z* V int nPoint = 0;2 S) r% ^! r% b4 e$ B h; x/ R
if( m_nJob == JOB_MERCENARY )
0 b3 p" s6 N3 s2 K3 [! Y nPoint += 40;
0 W6 L- Y; b' [ else if( m_nJob == JOB_ACROBAT ) s# m' j2 o: l% k% o# e, K6 l
nPoint += 50;, H* d% M' m; l" y3 H% d
else if( m_nJob == JOB_ASSIST )6 [+ Z0 w2 K, q4 [" D( {
nPoint += 60;* N, |) q* u: b
else if( m_nJob == JOB_MAGICIAN )
1 x3 K7 z0 a- c( @ nPoint += 90;
4 s* q9 o& I9 k' s) Z else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' S, h+ R, w9 ^! q3 j8 C: M) u nPoint += 120;
" q4 U* R& ^, b5 B" q Y else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )+ o6 K( ?& e" H/ r+ B
nPoint += 150;
! R9 w5 J' `" r3 G1 E" k. Y else if( m_nJob == JOB_RINGMASTER )1 C: j1 e" p4 _$ x: p5 E3 u7 C7 p
nPoint += 160;
/ W% {) x6 j& Y+ E+ N5 V {$ E else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
# d$ l2 {2 G! ?3 X- i5 H5 q nPoint += 180;
3 O$ D) H; h. i+ v1 e: } K6 n5 ~ else if( m_nJob == JOB_ELEMENTOR )6 C; Y$ R+ x% o0 K7 F$ n
nPoint += 390;
N: o7 i- W% _0 e else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 n k) v+ b% N& q4 f. v nPoint += 120;
+ y" x3 n9 m! F7 E( X; R$ c3 @6 |! d else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
1 S* h: _, Q2 A" ^ nPoint += 150;
7 H' Q, a$ k7 t2 N. E) L else if( nJob == JOB_FLORIST_HERO )8 u! |# p$ U* V
nPoint += 160;
0 d2 G- U1 S" e1 t* j, o, [ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ o& v2 H8 f# Y9 O
nPoint += 180;
- P2 ^8 S. b) c f( Y! Z7 ` else if( nJob == JOB_ELEMENTORLORD_HERO )
% U; ^3 V3 }, i, P$ p- _8 s! W; c nPoint += 390;
1 ^" H2 B- m8 @) h) r1 u% N2 K) ~( ?+ k6 R1 F5 @
AddSkillPoint( nPoint );" G% d. s& Z3 c. a$ p+ ]
m_nLevel = nLevel;4 F3 L9 D' i0 M0 o Y& \
9 @/ z! L1 ~% Q! V SetJobLevel( nLevel, nJob );- V' j: [( Q. [" s) @
m_nDeathLevel = nLevel;
$ f7 r) r- J6 V8 g& C: W#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; x2 ? _# W0 V& E! m2 v0 Y
if(IsMaster())' M5 x8 |6 M! g' ?( |0 F
{
5 v, h: Z* b/ B+ U- l/ s int dwTmpSkLevel = 1;//60, 72, 84, 96, 108$ g0 l1 U' W$ ^2 s$ b
if( nLevel > 59 && nLevel < 72 )
; i# b5 d2 G& S: q6 @# e3 c( r A8 } dwTmpSkLevel = 1;
1 b) r- S- b$ t3 i D else if( nLevel > 71 && nLevel < 84 )
, d0 O1 `* p4 M dwTmpSkLevel = 2;
) P& L8 u! P% A _4 h5 {: L else if( nLevel > 83 && nLevel < 96 )
7 m" t1 p8 w5 @& b- M- j8 j& p$ V dwTmpSkLevel = 3;
% d7 B5 `9 P; ^4 u else if( nLevel > 95 && nLevel < 108 )
. W, m1 g6 z/ f) [: x1 Z dwTmpSkLevel = 4;
+ e& M1 p, a: r: }. y else if( nLevel > 107 && nLevel < 120 )
1 p% n+ ~% e# D/ O3 b$ ?6 \& d dwTmpSkLevel = 5;$ F- |6 a/ e, M9 |2 [' Q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( q& o5 j1 _; ~3 ]& Z; l" `" L' \
{ 8 [% f6 c D Y( ]- f. V: W
LPSKILL lpSkill = &(m_aJobSkill);
2 d' j) N3 Z4 P6 s if( lpSkill && lpSkill->dwSkill != NULL_ID )* T2 \& F6 n$ Y
{
7 d% j: E) \: s' j3 h, S: c, _ e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' W& _) n7 l9 s5 ~1 e if( pSkillProp == NULL )
9 c+ G3 Z6 R2 D; f. S/ ` continue;5 ^+ f; G D( q6 E) _$ O% I0 I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# I3 G9 `: {8 z# | continue;8 F7 ^" ~' P2 [8 c
lpSkill->dwLevel = dwTmpSkLevel;2 Y# d( e1 E }
}
7 N# ]# B" N# t: e- s0 l3 k: a }6 G, Z2 p. K" j, W; q) c; J h0 E
}2 c/ O2 l0 Z% A1 }% L
else if(IsHero())
! h/ ?( A n/ ]! V! N {
3 z1 ]+ i4 I# ]- L u' A' f1 A for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 t5 `9 z0 e( F0 G0 D+ x {
i( z. @$ I! J: u) L9 P LPSKILL lpSkill = &(m_aJobSkill);0 B3 A2 h: p& ?' M
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 d0 E, B- B3 C* ~3 t2 W
{
3 B0 Z$ n+ C- n7 g, ^, a$ e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ b7 {" N! W# \9 v3 ~
if( pSkillProp == NULL )
! {! [# z; q5 B! v continue;. v+ s7 X u+ @" g: T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ g0 w2 d) C! V0 w) R
continue;
) l/ Z1 Y/ f+ R9 d$ b lpSkill->dwLevel = 5;
9 v5 F8 [( u$ w5 y }
. G: q0 H( [) P3 ^" f }* w0 m: v! j6 n9 c, S2 \% ^8 A
}
( D. g9 O9 q% g; s) c: e else if(IsLegendHero())
1 _% Y* A( c, L {- g) k: u. t6 \$ S6 d
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& U2 }. w. k( l# r {
( |4 K5 |) U [ LPSKILL lpSkill = &(m_aJobSkill);
3 l8 r1 S0 |1 w+ v: `/ J if( lpSkill && lpSkill->dwSkill != NULL_ID )9 W. A [! @% z; s* q u) p
{
8 k* M9 H. {( a+ D I( L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. t9 e, ?( {9 j% C; w: S if( pSkillProp == NULL )# b I) \5 M4 R" h" T
continue;
/ [! O1 q" U; t1 n5 l+ R if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 ?# G) p. P: X
continue;
3 C" E1 ^- [' x2 H+ z- E lpSkill->dwLevel = 5;
0 C/ x) X+ u [) s3 [ v }: P2 a6 ?+ N) ?0 L' ~/ j" ~
}
" l" u% z/ X m5 ]0 ?0 Y! U8 { }1 {& a7 v% B, g3 V
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) b: S8 _1 \' q A; f: Y; V
if( bGamma )
2 K! {# w8 F! k {
, m3 G* u% b' k. f m_nExp1 = 0;8 S/ }1 I& V$ s3 I3 t
}2 J7 N! C! ^; C* L/ s
t0 N* h5 M9 b
( (CUser*)this )->AddSetChangeJob( nJob );' i7 g* f3 Y* D$ k2 j
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) i: a* s- }7 R7 o c
* S0 c$ L! N& s+ P: ?: J2 M
9 _# {; j5 H5 |3 A4 T#if __VER >= 11 // __SYS_PLAYER_DATA3 m2 g* E. ?" S+ z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
p( S. ^+ B/ k- ?3 r& A#else // __SYS_PLAYER_DATA; V" p8 T7 P i% `' P
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, }( d8 F6 V6 G$ L
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ z0 V4 N5 k6 f# }; |. H) ?9 O if( m_idGuild != 0 )
6 F% Z8 R1 m% p/ s g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- y$ z' k7 C( C$ y
#endif // __SYS_PLAYER_DATA
' E: H+ a. U' ]4 U$ S' f* y SetHitPoint( GetMaxHitPoint() );( q/ ?* o* A# g; R! f
SetManaPoint( GetMaxManaPoint() );
- ~1 [; E7 `5 H6 {/ A& d1 V SetFatiguePoint( GetMaxFatiguePoint() );
9 o( K1 d6 @" R1 \) K$ d4 X' _ if( nJob >= 1 && nJob <= 4 )
5 s2 X& I3 t$ T* S {8 o! U" V; I! p
m_nStr = m_nSta = m_nDex = m_nInt = 15;
& C/ w% ?5 V7 M; l4 L m_nRemainGP = 28;# I2 z, P" g! G6 M& a5 i
}: O1 J: m3 M/ A& G+ P' h; L4 g2 W8 A
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 c6 ^- e/ O8 M: A. R% v$ M
{% s# Q6 `0 L/ ]
m_nRemainGP = 118;
- {8 c5 L% y+ Q& Y0 @ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;" H. [ c0 d i1 @( L1 W
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 f7 v( P( g0 b) t8 {- S9 \6 y$ m }
+ G) v, h0 G( i8 s; }( E( S0 j if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; t( C' g5 J9 J- G, t6 T! x {
" J) Z# R4 F) p$ [4 }! x$ y; { CItemElem itemelem;
% l8 @ t* ^. F; o, Q4 d itemelem.m_nItemNum = 1;' }$ c* m9 k9 S- \# r. W' ]/ j
itemelem.m_bCharged = TRUE;
. q7 s, a6 Q3 A; B4 C# [9 d6 \ BYTE nID;6 J1 Y! W' ~1 r4 z; @" w: I
: c& L9 [; K- @6 Q5 Q( ^ T
if( nJob == JOB_MENTALIST_HERO )$ X" C9 o- T% U6 W: g& ~! X8 J
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' K% [( [3 X" o2 A2 L
if( nJob == JOB_FORCEMASTER_HERO )
0 e0 k! T, V6 Q1 Y# b; _ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
3 D' E- D+ l7 V* Q" c% \/ E8 w4 n8 ]! @( ~6 r) b
( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 R: l: D6 |8 ]! C D }: f% V8 T I! K6 i# z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# t5 j( e- e5 [% {5 v& l# S9 Y+ [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 U5 [+ J3 k% B X" U
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 z" P0 C9 c: ]5 V3 i/ k$ Q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! ?' _% R& M' a6 C, I
( (CUser*)this )->AddTaskBar();*/
4 O. `: }! Q: h- ] ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! z* P5 w# p) M$ y
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 z2 G- m" x* _
((CUser*)this)->CheckHonorStat();8 S. }, z0 c1 j' ^) y- X5 c7 {: h
((CUser*)this)->AddHonorListAck();" n+ M$ y* {4 c, p* G0 X
g_UserMng.AddHonorTitleChange( this, m_nHonor);) Z" b1 v3 O0 G: i M
#endif // __HONORABLE_TITLE // ′Tà?
( b8 ~/ u8 d( N9 f }
" h" I+ X0 n3 v#endif // __WORLDSERVER
3 l' Y- S U1 V/ r}
0 b% g( G0 F* i# D- A
0 h* l, ^2 B, x( e8 l/ M- c; ^然后你进入functextcmd.cpp并添加以下0 \* b" o7 @' W( J! c, O0 ~# t
$ G0 P) j M8 k" _ D: t# V5 U
代码:
( j! J: v* i5 P5 o5 x3 [' pON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ), e# `2 @" B8 M+ m, e
下面插入4 E; w( {( v7 H" I% E& Y _4 o/ M8 B
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" c- z; A/ W4 h3 B: F1 q0 u% G5 L, f
然后你去! J7 a& w- P( F% L8 \( [6 `) A, F
" \8 [! `- n: D" I: L* w4 M代码:
0 p9 B, |% n7 |( C代码6 w7 k/ C- |1 V I5 ~
BOOL TextCmd_ClearPropose( CScanner & s )
) q2 f5 C6 [' ^+ _{4 [1 W% v' {/ b0 N& w+ _: w& \) M
#ifdef __WORLDSERVER- @% s, z( i: T' D" J
CUser* pUser = (CUser*)s.dwValue;
7 I' Z2 R1 ~) `7 X# b8 n* q. o: h g_dpDBClient.SendClearPropose();
4 p/ P0 C3 y1 `, _8 _7 O U1 P#endif // __WORLDSERVER5 l1 d G! D5 {. Q% k; u
return TRUE;
% M9 ~5 P; s/ r0 C ]' n* E' F6 O}
. C% {: y5 p, ~- d下面插入
8 L# m( C! u% g" b* c) UBOOL TextCmd_rebirth( CScanner& scanner )
, H! @% _# C5 Y% C{
% ^8 E/ [7 K5 j/ V& v5 h#ifdef __WORLDSERVER& g9 l& {# q. f) r7 [, u
CUser *pUser;
) {; `( @, Q& LpUser = (CUser*)scanner.dwValue;
6 `4 A6 u/ g( k" E% Z, [if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ C# P0 R6 u; G: W: H- m& `0 P- f5 \pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# {2 h' a% Z2 J: Z) y2 [9 j
else5 f! g( t- y; Q: _9 g A* t' l3 n9 O
pUser->AddText("你还未达到重生条件!");4 \8 D) N. V. [8 T$ Q2 F o& ]- z6 Z
#endif
$ M! T' |+ e; ?4 ]9 e' N" H" n! Sreturn TRUE;, X5 d9 B0 ?8 F+ N/ n' h9 e
} 4 U4 n* S Z# f
9 V: m# ]+ s' S; f6 n3 D4 G
; I8 y5 h7 D" W1 W9 S* @* R8 z' `
7 T; Q) H/ s2 D. a
0 s% M) `( ?+ L0 N- f; B/ ^% r |
|