|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
1 [* l6 }0 m- g0 B' x+ g1 v+ N0 I6 ~6 C' h# E9 b
Mover.h
% m0 x; J6 _# G0 [. y代码:" P$ a$ Z$ a) T& e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% n6 z7 \# `0 T( a4 o
- }# j# P1 B) A6 L下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) J# O% R. y3 G) I; M+ f
9 _. Z4 C" T/ l* W. i$ @* M: {然后你去mover.cpp添加
/ w- F7 S6 T; {. @ H
, K2 c7 x0 \1 L* j4 K$ U2 S代码:. i0 M0 |6 q8 \* O
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, X# r' x$ B) |( H/ j{
, y0 n+ D& {; D9 h#ifdef __WORLDSERVER
# M4 ?# @ M. Y; w0 u; ?- p2 ` // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: @5 Q- }, ^8 R- l MoverProp* pProp = GetProp();
. p7 Q, `. U; G9 R' x. [ if( pProp )5 ?4 m) X& L! d- M& h
{5 @+ X2 D8 p7 ]0 U# f( C
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
7 d& g* j3 i. t+ X9 G5 d {+ d8 Q8 F c& r, L4 c- P# X
AddChangeJob( nJob );
) J' w! G' s4 t$ H" e }else{5 H2 D3 b% V# p
return;
2 \$ Z7 L P" V: s8 L) @ }3 @$ |- R5 r9 C6 Z( F
int nPoint = 0;- o- S4 j' g1 }6 g( ^; |& r
if( m_nJob == JOB_MERCENARY )
: p" U; X* j" P$ ?$ F# g* _: b nPoint += 40;
& d0 W, E1 N! c% x) S else if( m_nJob == JOB_ACROBAT )# w# z. C7 l% X9 I9 y) m' W
nPoint += 50;
; h+ k/ O- r& r* X, J else if( m_nJob == JOB_ASSIST ), W" x! @+ _8 C( z: v' F, Q
nPoint += 60;# F" ?( e0 \8 s. e) F8 k
else if( m_nJob == JOB_MAGICIAN )8 U$ p* S: B) ~' x! f3 H* T8 q
nPoint += 90;2 G! y1 l) ]0 O; ?
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ) g2 c) M# h' W4 S
nPoint += 120;
/ X) i# F8 ?) v$ e) ]- { x else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: N) c1 e: \% ?4 x- X3 S nPoint += 150;
6 a y3 ~/ }6 W$ _9 y! n* Y8 w5 ` else if( m_nJob == JOB_RINGMASTER )
; h% N* f# k/ \' U& D2 M; h nPoint += 160;- u. `1 o h( A: f1 r, i. R3 N& f
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 U) j, O4 r2 i
nPoint += 180;
5 C* [1 W/ G& S+ {7 w6 y7 G: Q" A else if( m_nJob == JOB_ELEMENTOR )3 l% [* v; u( y
nPoint += 390;, O" A3 L7 y) M8 j
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )% F, ^& a$ f1 C& O
nPoint += 120;
1 _7 k7 z4 o9 f4 g* q1 a else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); ?3 Z% h8 i2 }8 |& e9 B
nPoint += 150;
! k" R) r( p5 I5 o, D8 F- B3 w else if( nJob == JOB_FLORIST_HERO )% M& `& v4 s( Z/ ?: d; v
nPoint += 160;9 X8 y( |9 o( J, e1 l
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ j+ m7 H% S/ ~9 H nPoint += 180;
- V7 [7 H" J- a5 y# o8 g else if( nJob == JOB_ELEMENTORLORD_HERO )" z/ x" Z% ~: j2 h+ j
nPoint += 390;
5 P9 V- z6 R! u0 j
) v2 |3 K E4 t3 Z; `# D; K AddSkillPoint( nPoint );' G5 T4 C/ `* G7 Q8 l0 s+ g- e
m_nLevel = nLevel;
$ U X9 Y& [8 m% u a
! G% W* z$ \* d1 u" y) y SetJobLevel( nLevel, nJob );
7 M$ a8 H1 j6 V& m& ?# l m_nDeathLevel = nLevel;4 n! s( n- m6 ]( z. e5 F i
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% v" ^0 y% L! {( i if(IsMaster())
6 Z7 B+ a/ H$ G {
4 r* X q, N( ~ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, Z: r- T+ k6 p4 S/ f" P; D
if( nLevel > 59 && nLevel < 72 ). `/ H! i4 r% w: i4 d
dwTmpSkLevel = 1;
. y1 z3 t- e- X, K. q4 O$ k5 { else if( nLevel > 71 && nLevel < 84 )
/ t1 c5 `) l0 F( D3 R. T/ y dwTmpSkLevel = 2;/ k/ x" I9 H4 S% B4 D. H/ R
else if( nLevel > 83 && nLevel < 96 )
0 `( U) V! h3 d) C9 p8 v% ] dwTmpSkLevel = 3;5 U& i6 v' p% _# M( y9 B6 N, T
else if( nLevel > 95 && nLevel < 108 )* Y* l8 A8 H$ }( y/ _. [1 n
dwTmpSkLevel = 4;
U! T7 \3 n2 H, L | else if( nLevel > 107 && nLevel < 120 )
( X, `* g' O; `! Q6 x i dwTmpSkLevel = 5;: _% k; Q! Y. _* ^1 s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 K4 y$ h" ^: q5 { {
. F& z1 R& Z" p- I2 T; x! l LPSKILL lpSkill = &(m_aJobSkill);
; i! [% H3 c1 w4 C. M if( lpSkill && lpSkill->dwSkill != NULL_ID )
# n" V/ H0 P Z: U" ?( i; ?" s {
1 {9 @1 ~0 u2 o" B1 V4 ~7 d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - d- G0 N$ T0 o& i
if( pSkillProp == NULL )( t& t4 B& O0 C: z4 Y& M( A
continue;
! }% f# D8 w7 r& A0 | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 n/ h# L, g/ [1 X% c
continue;
9 T5 X8 ~% W6 ~- a& } lpSkill->dwLevel = dwTmpSkLevel;
7 u7 w" {& Y& R8 ]0 B }- \. s7 w5 G7 A. }7 `! l2 j
}) R- J3 }+ B5 j" ?. V. E
}
$ O4 X6 O+ M0 Q- B& E( E2 k9 c else if(IsHero())
1 }' L/ ~! G$ D2 i { {# l+ H4 c+ s9 Z# @' V) m9 x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, x5 [2 S) T* d4 z8 W6 | {
5 t1 w/ |2 M, B9 I) A! I* g# Y) v LPSKILL lpSkill = &(m_aJobSkill);
8 H! @, W# n5 x0 z0 V5 b7 u0 E if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 d# @" P2 q) D9 U4 D2 Q {
# y w/ K O' @8 C5 v ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 }; F j& |& ]/ A( E. q# F$ D
if( pSkillProp == NULL ): P; N) f, B; m9 q7 Y5 O e
continue;
: v ? s! N- { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ C \. i& f: x' K6 l continue;
# M0 i+ g9 X, t) b lpSkill->dwLevel = 5;) H5 w" v3 w6 A& ^
}
. }* U y# S7 X/ s6 W5 M) } f' j }/ |! P- Q& L4 F' k. Z K9 x* Z
}
! M Q: @- D% G' X else if(IsLegendHero())" E: J7 P3 L( M5 u" F0 L8 T
{- {# y: [% Y. A% Q# l$ s- X
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 e( @: D" p) {; c% s
{ $ }' P& E0 `. {" E3 d8 p" n
LPSKILL lpSkill = &(m_aJobSkill);" B* q! N& p0 u# T$ R* j$ L5 G, E
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 Z& W( H% n2 U9 y {4 k' q; a. A* [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . g c" `" Z0 B2 p. n f; `
if( pSkillProp == NULL )
* r0 t: I/ W* Y& J' j+ I1 c continue;
4 O6 T2 t# s) J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 l" A* L& y0 c4 D6 {. X6 h$ R continue;7 e a6 k3 ]2 \2 l, R1 y- H: ]. b
lpSkill->dwLevel = 5;8 N1 u M- Q7 T; t( s, j( C( h
}
+ y0 A: m- x( a1 B1 }! {2 i }
# ?& J& y) ~1 E3 C }% t/ J, b6 Q7 B1 A I/ r+ h! D! e
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' G9 V# ~) m' b" m$ h! l; y0 U
if( bGamma )
2 V$ q' E2 U6 V9 R' b( B {
& O' @8 l4 V" ?2 p m_nExp1 = 0;
( ]$ [6 i2 H v% m( U }
8 u& y! I2 K- A
* a: @! {) O, O$ j' B' f ( (CUser*)this )->AddSetChangeJob( nJob ); U+ H) x2 F5 g+ e
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ e( M$ M* g2 `
' t9 Q. p9 s/ D1 f; R& a! @, f
#if __VER >= 11 // __SYS_PLAYER_DATA, s( |# f' @0 S
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 p U- h& M! ]/ S- `
#else // __SYS_PLAYER_DATA/ c S" T# b( O$ F8 U5 _4 n4 @
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );) l |4 I1 e" M, n/ Y& Y2 K
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 ]! K) \; `. L7 M3 v
if( m_idGuild != 0 )- u1 I. ^3 B5 i; F
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& T( f! i0 ~! r+ n3 X8 W4 I4 V#endif // __SYS_PLAYER_DATA4 X5 u$ I! E) ?. L% p/ C
SetHitPoint( GetMaxHitPoint() );9 g! k- g5 D6 o! F0 N/ j5 U
SetManaPoint( GetMaxManaPoint() );
$ O$ g k; f& ~- `* @% u+ _: O SetFatiguePoint( GetMaxFatiguePoint() );5 l0 y4 M: Y5 K( [5 e
if( nJob >= 1 && nJob <= 4 )5 Y0 y# p( k1 ]0 u
{
1 ~+ o, V5 [; z m_nStr = m_nSta = m_nDex = m_nInt = 15;. ^" T* a* \/ u h6 U
m_nRemainGP = 28;
0 h1 p* l5 P e; b5 ]" Z# @ }# Z: S% H' O) [$ W/ q4 H, j
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; h- B' V7 m. g* `: x& Y# G( L$ P1 a {1 U/ K' C8 b7 y& k1 r: S
m_nRemainGP = 118;: c6 P: D7 [' g+ J
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; D+ u' U& C0 l0 W" y( y, F8 U m_nStr = m_nSta = m_nDex = m_nInt = 15;3 J0 M0 `2 d& S7 |
}
9 k* @+ z% _* t' v; } if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. T, d) A$ Z8 O0 J/ P v/ R. n1 q {
% @! R D" r Q7 g# E CItemElem itemelem;2 X# i$ K- J9 w7 ?5 x" ^) X
itemelem.m_nItemNum = 1;
9 X& E' K! a+ ]' S8 G itemelem.m_bCharged = TRUE;' F) ], l/ m7 G6 @
BYTE nID;: W# B' y) r( y$ r1 L
W# ?. Z5 b( S) `: [7 y. b
if( nJob == JOB_MENTALIST_HERO )- w- M; ?" n. w9 k; E
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;; ~2 h& u+ [: K) C# k8 s
if( nJob == JOB_FORCEMASTER_HERO )0 S1 N) x2 m( Z7 W
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
' ~/ p6 z! U; I0 s2 q( B
8 F$ d5 \) w' S0 K ( ( CUser*)this)->CreateItem( &itemelem, &nID );# i" P& F3 _8 X
}
. ]1 `9 S- V: ]$ U' B g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 z4 B3 K' L; c7 q2 Y7 ^, ~ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
6 U# ?1 p' I; J2 Z% G$ t7 j( B. \ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );- E! t; |+ o, q+ D
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );; P2 r/ n9 A! o/ b' L; x; W$ Z
( (CUser*)this )->AddTaskBar();*/ B Q7 k' i9 b$ [; ?5 {
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );. l( p/ c" I E! \
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
# g! A, s* B" X9 ?2 N0 X6 n ((CUser*)this)->CheckHonorStat();$ m" g* I- _( z* V
((CUser*)this)->AddHonorListAck();) \7 k* h# n: |
g_UserMng.AddHonorTitleChange( this, m_nHonor);5 a& X& D: \) B: L% l x
#endif // __HONORABLE_TITLE // ′Tà?
' }/ L6 h( u u% `, _% z1 K }5 }3 r' K3 u, y! x
#endif // __WORLDSERVER
8 m3 W9 _$ V8 w5 ~7 o2 b}
5 u8 H v; n; l3 f0 }, m5 l- z4 T
6 N! j/ Y# l4 \: R' F; R然后你进入functextcmd.cpp并添加以下
, I8 C' ]: ^/ \3 H$ U5 b1 P, A. B0 l1 r! o# s6 N' c) p
代码:
2 U# C- @" C' \4 nON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& [+ `8 C4 Z9 C; J
下面插入
0 O2 c8 Q) o% }: ?9 cON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' J3 b, _, m& N/ W
% |7 H! o! I- S1 h, Q% X! n然后你去
2 V, ^( h+ t9 w V: N
8 j9 f' p; P4 @, A; u代码:
: ?. P' H% }# C8 @0 \代码9 g. ]( |3 m* d) s4 A6 y R
BOOL TextCmd_ClearPropose( CScanner & s )
1 u% L1 B: u4 Z0 {& V1 \8 e1 n{$ B4 q; C) g& H' {. o
#ifdef __WORLDSERVER& C. G$ s* Q: m4 J, q/ Q2 A
CUser* pUser = (CUser*)s.dwValue;4 y/ _+ i( b- J2 A+ B
g_dpDBClient.SendClearPropose();! w1 q& o# j J' o0 I5 T6 E
#endif // __WORLDSERVER' |8 R$ I: ?' b \
return TRUE;. M, \. e( s) p r7 E) N0 |/ l0 \
}' Q4 v. @9 i4 a1 Y. c
下面插入 V. g. |% v, e- @& |: \( i* u, Q
BOOL TextCmd_rebirth( CScanner& scanner )
$ Q$ S$ v8 t4 T9 Z/ [* ^; E. ]{
! `! Q( p* W$ p. `# q#ifdef __WORLDSERVER
: D# E8 e- j$ m A! e& MCUser *pUser;
# m) D2 v; ]5 G0 BpUser = (CUser*)scanner.dwValue;
% E2 I. D+ _% `' F0 Tif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 E Y' S1 V5 E& c+ x& V1 npUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 F: D# B h! b9 X6 ]0 g3 p9 L
else$ _* s" S( C; h% Q5 |
pUser->AddText("你还未达到重生条件!");
n6 y Y0 C% N" Y) |- n" B1 C#endif
- X' X, r' B) s. a* M5 m5 areturn TRUE;
" I7 {2 m" A% u& D}
9 h v5 X6 V: o2 d
1 W: W; R5 A& v1 h" H5 W; D8 |. m7 Z- p
# }1 }3 L- f4 w" G- ^3 Y$ P% N m$ O
|
|