|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, Z# t* M6 X+ ~6 |+ ?2 G- k- q+ M4 I* w5 O
Mover.h& y8 o0 l# E1 ]+ `- S
代码:
& m7 v+ V/ E8 f3 I: L g: K找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
p0 ^ M9 r& a% `2 z
) ^3 q; |. F9 v. J: G$ M下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 w) r/ N$ P8 v4 {/ t
D5 j3 W' o2 k1 Z. q: _然后你去mover.cpp添加
$ T2 s* R( F0 ~% h: A
4 R8 T0 K% y1 @代码:6 \' o$ [/ ?! s
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ ^- g4 Q% \* m5 f% w& |9 S{
0 c- x: h' f7 c6 z8 a#ifdef __WORLDSERVER- B% k5 D3 g0 K1 P, |
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó" E* e) I+ w0 n1 n j
MoverProp* pProp = GetProp();( T \5 N6 D' X% w" k
if( pProp )* L( y& L3 L1 |/ l% }1 I$ z
{
c4 p6 |7 y- { u. G$ q5 ` if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 ]( z$ g3 u; u- U6 [' q: d( o& Y {
4 ]! K5 O/ }% a: B/ v AddChangeJob( nJob );# h) H1 i0 O3 b9 ?, ?2 b5 `
}else{8 k9 i: f, w; J3 J
return;& @4 z U% }2 w" r$ q8 {2 a; ], s p
}1 Q# _6 p' L |/ d
int nPoint = 0;
9 e8 C$ Z6 J2 Y; X) s- U2 n if( m_nJob == JOB_MERCENARY )
w5 g) t. Y: K; {) @ nPoint += 40;1 }4 e$ e# j3 s
else if( m_nJob == JOB_ACROBAT )! i* ? X7 D6 b; G
nPoint += 50;
2 H$ n5 U6 |0 C( F1 y N7 B, f8 s else if( m_nJob == JOB_ASSIST ) H% w' Q" l% n; }
nPoint += 60;
& r1 r# {- K9 w; R: P3 ? else if( m_nJob == JOB_MAGICIAN )1 M. @" [' G0 N' G) m: e
nPoint += 90;
. f' W% J2 U% r- y- F/ q: q else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; d, |8 r# M5 w9 {8 @# Z5 t, x( d nPoint += 120;
! P# m" Q, ]: k% H- @! x else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ O7 l6 x9 t* M2 y" g* |( D nPoint += 150;6 w% k9 ?$ {: j: m; I7 |- f8 `" d
else if( m_nJob == JOB_RINGMASTER )
( U q/ x6 f. C( l4 t# X: k nPoint += 160;
: N- h* A6 w) b9 s else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 d# W! ~8 Z8 C3 T* R. b4 `( l nPoint += 180;, t( v q4 |# U( y, F$ g
else if( m_nJob == JOB_ELEMENTOR )
" |6 T) E& e7 v. A! `- w l nPoint += 390;
2 @& v$ U) d; t" C else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )8 b( V' \9 B" i6 p
nPoint += 120;; N1 h* A/ j9 k- P2 @
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% x6 E% G( M8 @" l. b% S nPoint += 150;
; A5 R) X6 s; |, P9 K else if( nJob == JOB_FLORIST_HERO )
& ~3 f! g- z- T5 ]+ M% | nPoint += 160;! _+ Q8 h6 j5 V; ~* q; W
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ) Z# n" L: K1 @5 F& a- [
nPoint += 180; ?3 [( ~7 ?) p! E1 s
else if( nJob == JOB_ELEMENTORLORD_HERO )# v( f q+ Y* l w5 N) s
nPoint += 390;+ A7 o5 }$ n3 a0 B1 g
7 ^2 L0 f% K! |
AddSkillPoint( nPoint );
, c" B& N$ X$ q8 [2 ` m_nLevel = nLevel;
7 q2 }/ @& `2 U5 ], i
% p+ `; F, C: s* I+ C SetJobLevel( nLevel, nJob );
0 o; b" e! f. @: N2 N) ]$ O8 x2 W m_nDeathLevel = nLevel;0 `- i9 W# Q9 G+ _8 B0 Y$ X# ]2 j
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 x" y x! f/ H: O( F% I if(IsMaster())7 M% X9 Q% C; H
{
3 A- J- h8 o( W6 W" C int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. g& }" ^! a9 } if( nLevel > 59 && nLevel < 72 )
1 e# U, {' M* `; Z dwTmpSkLevel = 1;
" ]8 A# M' S7 m. U9 _( X else if( nLevel > 71 && nLevel < 84 )/ p' }% H3 Q+ D3 t: ]& q0 Q
dwTmpSkLevel = 2;
$ @4 Z4 N9 ^0 l3 `' C" ^ else if( nLevel > 83 && nLevel < 96 )
$ l& E) p% ?! ]' P& Z dwTmpSkLevel = 3;
3 M3 K( u) q4 c3 d3 x else if( nLevel > 95 && nLevel < 108 )& m/ y5 |4 m' q1 c0 S: D
dwTmpSkLevel = 4;
4 _9 f- g; R0 u5 @. _ else if( nLevel > 107 && nLevel < 120 )5 b" E( h, I; n2 ]! J
dwTmpSkLevel = 5;, o4 w8 [7 b( Q/ V0 y9 X
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 ~6 F9 g5 D' w/ ^5 V
{ & k d; c; ?4 L& s x E2 ^
LPSKILL lpSkill = &(m_aJobSkill);- X; d6 ?% b! ]+ A
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 G$ ^& s; c% Q) L+ [6 N3 h3 m
{! L4 Q/ U, l- u( Y' `: a+ j7 g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 H* A- D2 i6 ]# n
if( pSkillProp == NULL )
# V! E- t% O$ b continue;6 @5 h5 e9 M' x8 I& x! G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ M% R/ a7 h% c& \) a& e4 ` continue;
& i# D0 K' ~$ t9 K# m lpSkill->dwLevel = dwTmpSkLevel;$ R4 }! K6 U- k& J u+ W
}/ l6 v- j. O9 |. c2 l
}3 Z" ]) t6 i; n4 d- i8 x& @
}" H$ {) J, M3 B3 `
else if(IsHero())
+ U8 ]$ v! S4 j" O6 t {
8 Y5 y/ ]/ M/ q, }. k: ?& ?: P for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! k; F# R, f! o8 A) Y) a! @+ o9 x
{
7 J" h, P! K# h) V, Z, } LPSKILL lpSkill = &(m_aJobSkill);
& R2 j1 D8 F- b' _/ C. {5 z if( lpSkill && lpSkill->dwSkill != NULL_ID ). f$ o5 D, P( W3 {0 J
{
2 c: P* r" J! X8 L u/ X- M3 T ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ d6 c- q$ |4 [, H2 P8 h# P2 w if( pSkillProp == NULL )! a* w1 u; h3 t- |: \
continue;
3 y- y4 l+ w3 I2 j2 `: h p' u) J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 [% i1 \! ]3 Z% Q0 `' }
continue;6 H; P6 v/ X7 q" R$ G
lpSkill->dwLevel = 5;$ a8 p2 `# K5 |0 v" ]
}
8 J0 c. X6 ~2 w! v% V0 [' r* }$ z" A. I }- m+ l7 C- ]% u
}5 ~( c$ F( h1 B: q( R
else if(IsLegendHero())
/ v+ b8 Z" A* i {+ V5 U! p/ P' q9 g7 A! |9 _. M; ^/ \
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! V- F7 S1 M% x: N/ V
{
: n- |, I* d0 k ?- M LPSKILL lpSkill = &(m_aJobSkill);
' I- @! o/ M6 y0 m if( lpSkill && lpSkill->dwSkill != NULL_ID )- y& {( G* c. u( C' l2 X3 {) s. |
{/ ^$ x2 i4 n) }$ E2 w) b+ k2 Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 r" ]( k# D4 G9 u0 p* q' V if( pSkillProp == NULL )% i6 E$ \/ t/ V! m+ @
continue;8 m- n+ I) f5 [2 w8 l& x4 E( I; q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! o. v) C% q; w2 N
continue;) M2 U3 D `- |
lpSkill->dwLevel = 5;9 W# k) K5 p( u; h! g
}
; T( [: }1 \% F6 f5 n }
W, j6 p+ q/ X# | }
* ^6 L0 [& ^2 |8 F8 ?" }. i#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 A3 d) G7 j! {) U G! `( f if( bGamma )
7 e$ s3 W9 n$ w4 d) x. S$ u. O {+ U w$ ^5 f$ l& \! j* O
m_nExp1 = 0;' n+ ]$ T5 H7 ^
}5 X2 {1 _9 n% v% s! N: S1 f
! h# m C- Y! H/ G9 M ( (CUser*)this )->AddSetChangeJob( nJob );
$ o3 r" ?5 M" U& ] g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );2 u5 c |) w, O; R. I1 C1 Z8 V
( d: R8 q0 B* v N; g. V7 e* g+ D# a3 L" d7 O; f
#if __VER >= 11 // __SYS_PLAYER_DATA" ~* D F& I7 `
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 p: c: l* E+ F, ?
#else // __SYS_PLAYER_DATA
3 m+ x/ @* N T9 T$ O; B g_DPCoreClient.SendPartyMemberJob( (CUser*)this );' h @1 p" q8 ^( J2 O
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
/ r. o& N$ U3 i- d2 V if( m_idGuild != 0 )& x$ u% i) `$ g4 U, W6 v8 s+ F
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
H. {6 ~( `6 L#endif // __SYS_PLAYER_DATA
0 O E" n3 }" ] G SetHitPoint( GetMaxHitPoint() );
6 q* ]( v7 _, S7 y! k$ e" a2 Z SetManaPoint( GetMaxManaPoint() );
3 t* J8 L0 G: S! c2 V5 i, |5 i$ i SetFatiguePoint( GetMaxFatiguePoint() );
! z+ H. u p* m% { if( nJob >= 1 && nJob <= 4 )
: ]+ q R# c- E* `4 w$ ?- f6 w/ B" h {
4 n3 I1 e7 s7 i( Q" x m_nStr = m_nSta = m_nDex = m_nInt = 15;( F2 P& }. G7 n% H1 I* Z" J5 N# B
m_nRemainGP = 28;
6 e- I$ l D+ W S6 D' i* k }
% U1 d$ c5 }* x$ |) O1 w$ x if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" Y5 Y0 r$ f+ p+ c* q {, P0 ^5 S& p! x5 W1 \
m_nRemainGP = 118;
, ]) m9 p5 U) ?- X, ?7 h //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ j+ l' D" I/ [/ S m_nStr = m_nSta = m_nDex = m_nInt = 15;
, c" o4 [" R; ]+ y } _% I" A- z; G5 ^4 l' M
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& J! k$ {3 j) C; V k( S! q2 t/ t {
' l2 N# x6 k a: \: W. q& w CItemElem itemelem;
- }: i9 T4 U1 s- M& Q itemelem.m_nItemNum = 1;+ W# o0 C' d7 c7 G( g) @# u1 q, f3 Z
itemelem.m_bCharged = TRUE;
3 \6 U3 m3 D# [4 m! b8 x0 T3 f, p BYTE nID;
2 }9 f5 Y) t9 @- C% z! o1 U; a
7 j' ?+ k& y& p! O/ n2 H; S \ if( nJob == JOB_MENTALIST_HERO )5 k: \3 D3 q$ [% g( m" p
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ q3 d+ \6 U, j# e+ h0 \5 k
if( nJob == JOB_FORCEMASTER_HERO )
t- B9 @9 p" h( D8 W& z itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 D/ p& j) e" t# ]5 y% g: {/ Q2 E
6 i& f2 |& j6 k( Z6 h
( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 q# m" S; v; T: D$ F( S }
. l4 X- |0 n0 B7 `, @0 T g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! @ v7 \: q4 ~" Z ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );0 P' h6 V7 O( V. v0 P4 `5 @
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- M0 ?1 h* l$ w7 ?5 C5 d- o /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" n! G% I5 N( g2 L3 U9 | ( (CUser*)this )->AddTaskBar();*/
% e8 V2 z1 G3 W. E ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 ^- |, i0 T9 p9 O; U#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?/ q1 ~: |) F( X5 s' N5 ^
((CUser*)this)->CheckHonorStat();! l w( n/ e4 `
((CUser*)this)->AddHonorListAck();
! B3 r! [% t9 R7 x1 B$ O0 t g_UserMng.AddHonorTitleChange( this, m_nHonor);* p, m5 _" k {* E7 `3 P& l% n
#endif // __HONORABLE_TITLE // ′Tà?
, d y" }0 I% @ }2 `" Y0 b! d; ~; a& C
#endif // __WORLDSERVER
7 {. B! X, y& u/ p! |9 @% b}
& ]& v: B! z6 h' H" f2 q2 A" \4 U1 y# a: m
然后你进入functextcmd.cpp并添加以下1 X0 }3 u+ h: L! P& U
$ y' j5 F% F0 U% s: l8 ^
代码:; c- ~3 O$ m8 A8 I. V1 ]0 r
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 }0 S |4 g( h5 w8 b) g0 [4 u下面插入4 h, n; ~, \+ b9 X
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ h$ h, G. W6 J" Y1 c0 A0 v- E0 F. |3 ]+ u, b8 ?5 G
然后你去
: O% Z7 m% ?( [+ b) Q- R& B8 L" \# P1 v+ h s$ E9 M
代码:3 h4 y4 }1 f' T4 x
代码9 g4 L0 ^8 c& W+ q5 \7 T& X4 J
BOOL TextCmd_ClearPropose( CScanner & s )
a& N6 o( k" d9 H' [{
1 q0 _) w1 o* W" p% J9 r#ifdef __WORLDSERVER" F$ c+ m0 l6 K
CUser* pUser = (CUser*)s.dwValue;. f5 W# R- l5 V; G- {
g_dpDBClient.SendClearPropose();' B3 m' Y3 V8 `! K/ a4 j* S
#endif // __WORLDSERVER1 X$ C" O( }2 v5 l: l
return TRUE;- T. r( c) N% u8 O! I
}3 M! q5 s4 u' }9 Z: |) Q
下面插入
3 M z T. B) r' ~, QBOOL TextCmd_rebirth( CScanner& scanner ); @* L* ^# m3 r' |$ l1 o
{
2 M2 Q# S1 w \, D7 ~& l2 U#ifdef __WORLDSERVER& E3 k% f& ]4 Y1 Z P0 [
CUser *pUser;
0 N/ _) `. t! j5 h# _. u. a# qpUser = (CUser*)scanner.dwValue;$ |5 M) P: J* r: p4 E
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' c, d' s: o! P+ \5 npUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; Y% d, J* Z5 N3 z8 Nelse
' |& k$ J d: c% q& VpUser->AddText("你还未达到重生条件!");
1 W8 e# T+ ~: q2 Q' n#endif/ b. C" z. g5 K9 m0 ^# h
return TRUE;
. Y+ F( m& R! b+ ] x" o} + _3 f4 N1 h8 G/ R, A: J& A) U
: ^/ v+ W" M. S! o8 q6 m4 e0 m
: s. ^# J6 `) V
6 s/ u% x" T8 i7 ]- t5 z
! { b7 D$ l2 v5 N7 \# o% k |
|