|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
- ?+ {* L$ F/ ?) K7 u3 Y" T' P
# ^ B2 \3 F$ Y3 [ WMover.h$ T" [1 N. f& x G
代码:
* R4 ?: y$ I; X: @找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü6 k) x2 k% G2 q
2 P ~& p+ l) W: `
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! B# S. D: \# n1 x$ Y- O& }
% i2 L @) ~& b然后你去mover.cpp添加
: J/ y+ S4 ]. p. B8 a2 h; |: H2 f' e1 j$ g, R: Q* `
代码:6 P, L: o% A1 b( W9 C
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
% N3 R0 ^1 f9 S: ^+ P$ Y{* A- i5 O" m# H3 \6 y1 ~' @3 ^! [3 y
#ifdef __WORLDSERVER8 f5 c" V* M% k4 d5 g8 s
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 s- j" {, Q7 k6 E MoverProp* pProp = GetProp();
, D" s+ o D5 O' d if( pProp )
, h! P) j, F( `8 X1 g {
* Z0 l6 W: {( M0 t2 Y3 m2 d3 ^ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
7 J3 ^! v9 Z6 ]0 m L% O9 ^% F {
6 B3 ]# M1 t/ b% k3 { AddChangeJob( nJob );
0 _: ]" d% |4 q6 k/ O: [ }else{
# W! z5 h+ j& V return;3 B g( e- |+ C# H A- Q& K! m- d
}
3 b& U" f! t5 w1 p( ` int nPoint = 0;
6 H+ \: x( h: P; I: r( Z" y: x- A if( m_nJob == JOB_MERCENARY )5 C: M) V' _2 ^
nPoint += 40;
2 Y' M5 I" B2 |" m" D# {/ s1 b else if( m_nJob == JOB_ACROBAT )" ~8 P, Q q8 b3 b! s! O
nPoint += 50;( j( M. i8 ~7 |7 Z
else if( m_nJob == JOB_ASSIST )- L' Y; Q0 n j% f& W
nPoint += 60;5 y2 T! H7 h( N3 ^: w3 a0 I" S: y' `
else if( m_nJob == JOB_MAGICIAN )
- ]8 k5 Z4 x& H' `4 O k' G" a nPoint += 90;
9 j/ z6 J/ N) y6 F6 ]* `5 P else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 r/ _( T- u+ P6 B+ V1 Y: O
nPoint += 120;* C7 g( J7 v# d; i" m: w4 t+ ?2 l
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )6 i- I# Y( D ?. y: N5 D
nPoint += 150;
6 K/ @. P' E! E( X6 L; [ else if( m_nJob == JOB_RINGMASTER )
& q+ ` O) E! C5 ?0 B nPoint += 160;
" ]. h. S/ b o3 n. x6 Y9 b else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
5 G4 e' B |: P& R: q0 z nPoint += 180; j4 L6 x& w* s$ L! |
else if( m_nJob == JOB_ELEMENTOR )6 G7 j* [1 K" @2 j$ e9 O, n% C
nPoint += 390;: m8 x$ s$ ^" J6 z5 |( b
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
" ]: i3 Q% I- @( Y. v nPoint += 120;
4 ?# l( l! W/ Z2 n& v2 f else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 E7 g2 d' k- w. e* U5 L nPoint += 150;" s8 W; i K9 s( }# h+ s
else if( nJob == JOB_FLORIST_HERO )$ u4 k4 ~! Z0 W! J$ C
nPoint += 160;
* } O8 N+ W& a( \, U) n1 G else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ }6 f; j, W+ a( y2 X: H nPoint += 180;. Q. H8 s! U( U* V3 ]3 z
else if( nJob == JOB_ELEMENTORLORD_HERO )
# T: J' e& F/ B, t$ q1 Y3 C- X7 b nPoint += 390;
7 i d L# |/ q9 ?' @ G
5 ^! G R8 g& j& f9 H3 ~1 Z/ A AddSkillPoint( nPoint );
# C4 E, H* ]8 r1 J2 h1 D m_nLevel = nLevel;4 g2 N* J3 k( V8 e" f, q
! j" `1 n7 @2 A0 _) N" X( w0 V! A3 ` SetJobLevel( nLevel, nJob );+ E; W# N9 s; N: @4 k! I
m_nDeathLevel = nLevel;& K8 E+ T: m5 b. V, {
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( R5 P+ y n4 g7 [
if(IsMaster())9 E( T7 j/ u# K/ L
{
5 o' J2 G& F4 A; {# z, [ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108) f4 Q& q5 r/ I' F5 ]1 |
if( nLevel > 59 && nLevel < 72 )
2 L/ S$ n8 \1 i& @ dwTmpSkLevel = 1;( q r& n$ ]; [) L7 y: [ c3 w7 j, M
else if( nLevel > 71 && nLevel < 84 )
5 \8 [1 d7 |' e, s. ~, r; z1 R8 A! h dwTmpSkLevel = 2;
- q& d1 o4 Z* U u else if( nLevel > 83 && nLevel < 96 )
% j' g D# V. i- `) p7 Y; | dwTmpSkLevel = 3;
* N3 w8 z+ n, a else if( nLevel > 95 && nLevel < 108 )2 r: q0 P5 s& T/ J: E6 I
dwTmpSkLevel = 4;( r! t# G( Y2 @/ B, _# _/ J
else if( nLevel > 107 && nLevel < 120 )3 r$ T. b# U- q2 r ]3 G Z( r; b
dwTmpSkLevel = 5;
5 `& V- z& e/ B1 o! U! G6 u' C0 R) R for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 y' J! T w; q2 ~6 l+ }
{ ) T1 ^0 w: F6 ]- Q
LPSKILL lpSkill = &(m_aJobSkill);
6 C& g1 R) h* K3 N @ if( lpSkill && lpSkill->dwSkill != NULL_ID ), D. G2 ?5 [# K" c( k
{
3 i. k3 e6 ]& N1 [2 q. s5 E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 ~0 @1 }3 J3 e' M+ j. z) q8 E" | if( pSkillProp == NULL )
6 O+ ^& q1 E/ S+ I) S continue;
. J- b1 ^$ X! F* G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 J: l; J' J9 @0 R5 v6 T continue;
/ }3 F6 u( ^: v( K3 |+ K1 W v7 ~# U lpSkill->dwLevel = dwTmpSkLevel;
1 w6 X( `5 X# V }4 l) ? a" v' n; W; g( L( ?7 w9 h
}3 }% j. U- g2 c! M
}" _( ~' V* J m5 z- T
else if(IsHero())0 A$ t- @4 [, e! p: w% l) y6 z
{' M E' j0 n, {2 V7 I
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , `. g1 u+ T/ Q" H5 t |. p
{ 4 F. n& n' N, @! y; t ~1 F
LPSKILL lpSkill = &(m_aJobSkill);
) z/ f8 x; |- l3 |5 ^, M2 u5 m; f' ? if( lpSkill && lpSkill->dwSkill != NULL_ID )% q# N: M, A+ l ^5 x
{' B# U, l& H7 L+ M; a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' w# H( n$ u1 a! j
if( pSkillProp == NULL )
; Z% [: @# t2 i- o continue;+ n. s3 E( T |1 Q/ }1 S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ w! J! Q4 o( T) m6 A' \6 y# ~$ v
continue;+ \. t/ _5 ]: o1 x" N l& C
lpSkill->dwLevel = 5;0 W J1 h: c v" G
}& r d6 F, a6 w$ N% |
}1 k$ T8 S! f% V, W6 m# E+ L
}
4 {) e4 R1 _6 M, [* i else if(IsLegendHero())( ?( }) X+ N2 n" E
{
$ U- S1 o+ W$ P4 Y! Q for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 Y# I+ u B4 ^7 C6 o" K( k { ) W+ V+ T: C! n* y' q8 r
LPSKILL lpSkill = &(m_aJobSkill);
8 A ~' \0 N0 [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
: C/ p v2 M5 I& D" g {
* B8 m3 c j" i; U& s8 _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. b) P; P9 y$ P k0 I+ v4 j if( pSkillProp == NULL )
$ k1 {2 U2 F5 {* n% n continue;6 o$ @+ u/ p @/ z/ s, W; w' Y0 K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 k8 |* @* u: ]) B z4 s, ^ continue;" [/ A6 v* f/ B% X0 [4 z3 x- J
lpSkill->dwLevel = 5;/ b+ H K- q6 P$ y+ w, ^
}
) I, j/ ^9 \: }3 u* G, b% A: w9 @* t }
$ Z" ]4 o" i, A) u: p. y }) G: s2 Q8 U2 S6 V$ V2 S
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% l. g8 }. ~3 u4 u if( bGamma )6 W! F Y; o$ e' Y3 c
{ ]) I3 R- k( D6 m6 I
m_nExp1 = 0;
+ J6 r; \+ N$ t$ ] }# h: s' l/ ?: _* t
- u, ?4 m$ R4 q5 B
( (CUser*)this )->AddSetChangeJob( nJob );) M; j0 \* _- N/ k$ C, V' g- g, Y$ X
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );- {" w: I& i) k$ w& b: q# Z$ p
' c/ h5 Z. ^9 x. R' P$ @3 I. z
2 J0 W+ e& a, `7 g' I4 ]% s#if __VER >= 11 // __SYS_PLAYER_DATA$ e' X: K" f! b
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 o5 |5 q$ W0 ]# p9 G6 ?#else // __SYS_PLAYER_DATA
) n( b# y8 X" [" |) b7 O1 o6 N( ?5 J g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# q ?2 a k$ O2 q' q g_DPCoreClient.SendFriendChangeJob( (CUser*)this );: g: e: |. L& J- x- J: E
if( m_idGuild != 0 )
( \- w# x5 y: N6 N" C g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 p( T0 y# I. z! R' V8 z, H#endif // __SYS_PLAYER_DATA+ ?, ~6 ]- ~ l$ E
SetHitPoint( GetMaxHitPoint() );0 g. W8 {) p) X& A
SetManaPoint( GetMaxManaPoint() );
8 E% t2 o. z( b: Z- w$ u6 J/ l SetFatiguePoint( GetMaxFatiguePoint() );
, ~; B' z+ e# h% G: b$ _ if( nJob >= 1 && nJob <= 4 )
p" o6 ]3 F5 e# } {% n( r2 C L/ c) D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% H, W8 }' ]/ j1 _ m_nRemainGP = 28;( j5 ?( @/ H+ `7 c0 D7 x. Q
}) R8 z; o! Y) h1 t7 b% a8 `4 B
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 F: w' p" Y' k- k6 _* d {
1 R: | Z! o9 b v5 [. x: y m_nRemainGP = 118;. V( U% b) r, l6 g/ ^
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& u9 I9 y+ N, W0 i/ z) v% A
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* f; z# y1 H% u* [5 b7 R }
5 ~, Z, W3 F, [$ x# o: n if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). `$ e# Z9 A* f, \8 N
{
+ C E$ h/ s9 ?" \ m- W7 { CItemElem itemelem;. F5 D! ~, @) D
itemelem.m_nItemNum = 1;& c! F6 ?. s2 b( B) r
itemelem.m_bCharged = TRUE;
3 B' E7 ^; _+ J2 ]% h7 G BYTE nID;. }$ E* c2 F7 W. @) e
0 X5 p# j0 q: p9 D if( nJob == JOB_MENTALIST_HERO )
( r7 n: N7 W* G; q, f itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 S% `3 N2 D3 u T6 h if( nJob == JOB_FORCEMASTER_HERO )
1 n s" q) @5 N# D- M; u b% H itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
$ _* K3 r: r* N3 t3 X) c- ?0 ]9 f/ Z3 j ?+ P" ]
( ( CUser*)this)->CreateItem( &itemelem, &nID );' i1 H2 V" s2 u9 g' R
}% I, Y9 T. _2 c5 r" F
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% m9 b9 f' R2 x5 i& V3 X ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 h2 m6 Z- B- n3 c! U* ? ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );" C( u: f& o& R
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: j2 \& e: [5 W) O6 c ( (CUser*)this )->AddTaskBar();*/1 G, [8 ^% s* D
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ r& b5 X' c9 @! z- P3 u+ x#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& n! S' \( N3 ]' J( z- s ((CUser*)this)->CheckHonorStat();1 X0 L5 \2 d$ |7 \$ q
((CUser*)this)->AddHonorListAck();
& `! R1 `3 v7 L7 z" |9 }+ t g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 g- S5 r+ v3 M4 w# K2 G#endif // __HONORABLE_TITLE // ′Tà?
9 I+ q7 W8 \5 R$ \9 _ }. G( V c$ x' m% t: _6 A
#endif // __WORLDSERVER
. ], X% w+ W8 C* K0 \}
* C5 K' S$ V" o9 n* w6 L* Q+ `+ r2 [3 N3 J
然后你进入functextcmd.cpp并添加以下: ? M4 {2 e# L* J( J
* H/ t7 `! I1 Z0 Q1 z, Q代码:, |6 |* t% X1 _$ |* U1 g; a
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% Q, i0 u9 l3 F/ O- s1 G9 M下面插入
: Y" R. n8 G- H1 Q uON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * x) V0 F# b }
1 G' M% B$ v( a5 q- J- T然后你去
. l% d- o/ d7 N8 q: ]7 _
% }2 ?0 W5 W* ^代码:& |% }& W8 X3 S% J# p* g
代码
1 e/ @% h# p' L$ G9 g, JBOOL TextCmd_ClearPropose( CScanner & s )2 Z/ o# G" c+ k$ |6 m! V
{7 \4 i: K: e7 l8 ?- k& h1 y5 }- T
#ifdef __WORLDSERVER
) D1 `, Y1 g* c, M CUser* pUser = (CUser*)s.dwValue;
! [$ R3 q6 X7 ?2 C% d* r g_dpDBClient.SendClearPropose();
/ [- H/ a2 L$ v8 ]8 E' B% R#endif // __WORLDSERVER
3 y4 [8 q4 b; _ return TRUE;
2 \: w& l) s3 \, [8 F S2 j}/ p, d5 o( N; L. C
下面插入
( ~" H9 G9 y: r5 }% ^BOOL TextCmd_rebirth( CScanner& scanner )
2 p7 H3 R: n2 d/ N! J{
! |3 B; W' {, h! m#ifdef __WORLDSERVER
M4 u, _4 n# aCUser *pUser;; u2 }5 @ D1 G6 \! f, w+ M
pUser = (CUser*)scanner.dwValue;
8 X9 z* }: X5 x9 W9 w, z( m' iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 u6 A' e: {7 DpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. h4 y* `* Y9 e% L3 y% K0 felse
. Q" e3 }# l6 K; h" RpUser->AddText("你还未达到重生条件!");
& F) w2 i6 n! v#endif
. E u( e7 L7 O# ]: Lreturn TRUE;8 }4 S5 Z+ g' a" Q+ [' q! {' L
}
* `; J3 p; M j0 I
' l& G5 p& ?3 Q
& k& R5 Z: M4 t% H) `$ Y0 ? X+ b/ X, p. w8 i* ?
: X5 b: Q( v+ U7 _& f
|
|