|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 ?# Z/ q4 q9 ^, A3 L6 j
4 _$ |) N! I) b/ e) a6 p$ dMover.h. [0 N' |$ [0 Y. E$ v5 r
代码:/ d& Y5 x+ T; Y* j; H" x3 m
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: r. ~/ q7 X o, L1 x3 h
; K& Y% d4 F a' t下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
) f7 v4 ^/ j8 M' F9 ? W
M& w+ t7 v! Z然后你去mover.cpp添加
) x$ R& ]. }+ g5 s3 M t
4 r- U8 A# N; ^ T4 J4 q9 I代码:
5 ^! d' w8 Q0 Svoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )1 l5 V; ] u* C/ K7 C% ^. j1 \. c
{; l* Y: c+ B+ O1 W
#ifdef __WORLDSERVER
. t+ j0 X5 N: E! m5 i8 }% M // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- H, _/ K) G+ z/ J" C5 q
MoverProp* pProp = GetProp();) H$ a1 s0 d8 n, \. b% `' ]
if( pProp )* m. \+ t- A% u
{' ]) G0 Y. R. _) M2 S; Q/ `2 h# N' F
if( nJob > 0 && nJob < MAX_LEGEND_HERO ); W$ ^7 l( X/ h7 _+ S5 K* O
{# }+ b# S8 Q5 [ K# i
AddChangeJob( nJob );' Y, ? Z2 E, M O6 i- M. r
}else{" ], s$ ^8 e5 |
return;: W! g2 ~8 |8 a5 |& c R
}' Q- b/ |9 f: P" g7 S! I
int nPoint = 0;
9 g1 {6 y3 |# a' B7 l, ^ if( m_nJob == JOB_MERCENARY )
5 Z6 u& I, E# Y3 n; | nPoint += 40;
4 G6 j5 c. z5 M/ ^! O4 z+ ?9 ] else if( m_nJob == JOB_ACROBAT )
7 V8 T' A( A$ v% R' `# J nPoint += 50;
" Z$ L- j$ d" U else if( m_nJob == JOB_ASSIST )) E/ [ G( v$ B1 Y
nPoint += 60;
% j, ?' V8 W4 l# ~7 J* R else if( m_nJob == JOB_MAGICIAN )9 b' W5 ~# }) W' O& S: ?+ d1 Y
nPoint += 90;
3 E- G5 q9 ?9 j. I% d* Q5 B4 m7 I9 j else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
% Q! {, p5 U( C: ~: F0 A. E5 { nPoint += 120;' q* Q, J8 O( v: n( P6 y0 h
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 n, f) P( S0 Q+ z. A) }( b nPoint += 150;" W# K' E' R# ]( O' T
else if( m_nJob == JOB_RINGMASTER ), R" g9 N2 e& I+ O
nPoint += 160;) P; o* ?7 |: B5 y- n9 D) n y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' i( c r3 ]( d) `4 s0 f7 e
nPoint += 180;8 J4 w2 l* C/ w* W5 s" K6 {' v
else if( m_nJob == JOB_ELEMENTOR )4 T+ e5 t" C9 b; b* s
nPoint += 390;! I: A9 @' a' e' J j, ^. `
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ I" v/ o! S* q. H3 d nPoint += 120;
. i& u" C9 r" K5 g0 r9 u else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )) q% Q8 n2 `! ^% A% A9 Y
nPoint += 150;
: h3 H! j( y0 e/ J7 _: A9 P else if( nJob == JOB_FLORIST_HERO )$ W( C7 p% d$ v7 j
nPoint += 160;1 W% B( G" ~9 L7 t" ^
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; U2 w3 q8 h6 @8 F8 P nPoint += 180;
$ J! w% _6 W: N else if( nJob == JOB_ELEMENTORLORD_HERO )
6 l. l: W" y h" ^8 |+ i# q nPoint += 390;
7 u; M* U7 Q: q8 ?# x. v. r$ m& b* K2 p3 m$ a2 j4 t. r# A t: F; j
AddSkillPoint( nPoint );4 Z* e j- P: X+ h
m_nLevel = nLevel;
; g4 J+ ?9 y9 L; h& e1 t" x) C6 ^' P0 V' ?( R
SetJobLevel( nLevel, nJob );
' D/ x B$ B6 y m_nDeathLevel = nLevel;* _3 |7 l' {# z/ d8 v0 I9 C
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, V0 c- v E+ K3 I
if(IsMaster())- b2 y' u9 h/ F2 z2 V% {; ^
{ N7 o" ?3 s/ [2 ]
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108. {& V6 [; A0 a' r; q1 e& n2 x
if( nLevel > 59 && nLevel < 72 ): R' b# e6 ]' z
dwTmpSkLevel = 1;
: z/ o* s! w! E; w; e7 h1 Y+ G else if( nLevel > 71 && nLevel < 84 )2 K9 Q8 ~$ Y3 }( I
dwTmpSkLevel = 2;$ L( F( I1 C1 Z; Z8 c7 y# X* K
else if( nLevel > 83 && nLevel < 96 )
$ Y) m- {+ R, b) T7 W7 X; n dwTmpSkLevel = 3;
x9 N3 _2 ~5 p! l3 X8 b- \ else if( nLevel > 95 && nLevel < 108 )
& M# c/ A2 V1 F4 u# q1 k+ f1 W dwTmpSkLevel = 4;
0 R3 y) W) d0 ^' U else if( nLevel > 107 && nLevel < 120 ) g& G# N: t1 U2 G# M
dwTmpSkLevel = 5;
2 e4 M; x. g w# {, y# S, j9 r for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 m( \5 }- h' {5 t2 S1 ^0 N { L/ K0 D2 T( O4 r% Q, H# J- ^
LPSKILL lpSkill = &(m_aJobSkill);$ f, D& a" Z4 y" t0 r$ `8 l# ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )% q7 n- }' V" @' l! ^. Y) K
{# D' E) ~6 Z6 _: ^5 T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 L8 L5 f M, f& C/ S. T e# q
if( pSkillProp == NULL )
& U5 `0 S3 i1 i+ I" n6 K/ P continue;! {' P/ a- G+ ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: s& _# P2 ?5 I8 v* P( y& V continue;
9 \$ J1 d) T% i) Z" W5 k lpSkill->dwLevel = dwTmpSkLevel;* [1 R2 b7 d |( U/ m
}1 q5 d9 z- \/ f* ~ Z: g
}% Q2 z) g) [- d- y( E* \0 S
}
! @- p8 G7 j: c4 H else if(IsHero())* {% B) S# K1 y# [
{
9 P$ G( q2 T, C T. C$ ^ for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 E, v4 `) F6 ~8 r+ I2 A {
4 }3 F1 T. K/ n; p4 f LPSKILL lpSkill = &(m_aJobSkill);
* @; s0 X$ F! M/ q if( lpSkill && lpSkill->dwSkill != NULL_ID )+ k1 r" b, M; g! D6 ~$ k
{
- N1 B" `' f* h; ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" R/ b, t2 @( [/ {; i% h7 O if( pSkillProp == NULL )
+ w" S2 F, A5 {, B continue;* j& I1 C3 _! u1 w% T& c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 S4 \5 i3 V& Q% X5 t continue;
$ E* C$ p( n4 J& R7 K! o, D4 M lpSkill->dwLevel = 5;4 Q- R! V( J) v4 t, a7 M5 W
}" z! f- Q* w' o" G" `4 j
}
% ?: K$ W a0 Z0 B2 Q, ^8 V2 s9 p }/ C0 s& r% T$ m% f7 b% k4 k
else if(IsLegendHero())
; e2 X. c5 K) r$ ?# `1 c {
& _8 E5 m; T+ R$ P& e7 _5 Q for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 g6 G; f2 {+ H7 t% J6 s
{ 4 k/ C% H/ G% F. {; f
LPSKILL lpSkill = &(m_aJobSkill);# }. O2 ^; n5 O5 f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ {: Z. Z* O0 B4 K* b# O {
5 _1 _# H7 [( T: Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ ]: T! n+ N( f! r( D" W+ k if( pSkillProp == NULL )
* _1 @% T [+ A% Z+ U! g continue;
$ F. p3 p0 F$ v& V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# D% @$ W% e3 A) s W6 U1 [
continue;
! }# U. G' z: v6 N# E$ U lpSkill->dwLevel = 5;
+ \) \1 d4 T4 E, E& z$ k }# C: e# Y% h, Q9 ^7 U) ]4 T
}; N+ j' R! f: \/ Q$ Q8 Z: m; j
}. j! }- k9 z+ W. N
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# G% q6 [0 a( I3 e# w) P! H4 Q if( bGamma ): a9 Y: m' F( r9 g
{6 C. X# ^7 _) f9 B$ _
m_nExp1 = 0;
7 T$ x8 ]4 a+ `+ c$ x }) ^1 l) N2 G6 g0 Y; B, [
7 J9 ? T9 G8 @+ _( ?( L& l ( (CUser*)this )->AddSetChangeJob( nJob );
" G. ]. W$ K) w/ F g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" h) L' Q2 @) }7 r
5 i0 `9 A( F7 @7 k* u1 b
1 G/ m- Y$ o( T5 [: O9 d#if __VER >= 11 // __SYS_PLAYER_DATA
, S$ b/ k; r, p4 \" D. y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; o2 d& N6 H$ r2 O1 [0 T# y#else // __SYS_PLAYER_DATA
* U6 G# \ H9 V" G. T. v' u# C g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# B" h: Y$ [( W4 P7 v U g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 S4 x3 c- l7 k5 e if( m_idGuild != 0 )
& ^3 N3 Y+ |7 |9 B. L g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, N* O3 p% P# v' v0 W: O- B8 D9 h#endif // __SYS_PLAYER_DATA0 u6 ~5 y5 i6 B/ S' y; d
SetHitPoint( GetMaxHitPoint() );
# C2 ^; p* V1 j& g SetManaPoint( GetMaxManaPoint() );
' }2 M( g: e5 ^ {# M# K& n SetFatiguePoint( GetMaxFatiguePoint() );, w8 w7 u$ V% H w( I3 b! y
if( nJob >= 1 && nJob <= 4 )4 v6 F; P: j$ x8 _7 R, {- r
{# x4 [: _9 [ V$ r) j1 @$ e
m_nStr = m_nSta = m_nDex = m_nInt = 15;- Q ?* d A3 K, d4 W* N
m_nRemainGP = 28;3 a" d! X& B& J D7 H
}" p4 M, k2 t! q5 ^8 _* @/ S# }6 B% p
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
N P2 b( u# D. ~ {
, X. z- K- D1 m3 |9 L m_nRemainGP = 118;& F! r+ Z; U' u% S5 e, }! {
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
M. ?) |7 M5 ]# s8 S m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 r8 ]% E t4 _' t7 Q! H }* s" n# v) Y5 v- `8 l W+ q8 i
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! H3 A8 R0 w8 Q$ W# j% h; } {/ m# d6 S$ f. A6 V( C! K8 r4 \; T
CItemElem itemelem;
* i: }' }# x; f2 L+ P, d e% q4 i itemelem.m_nItemNum = 1;
+ l: X9 x& I5 R# h7 ]9 e itemelem.m_bCharged = TRUE;5 E" n4 O9 D5 Q. i+ F. L9 m7 Q
BYTE nID;( I: n |! {) _, B& T- D6 U5 }
o% L# m( H/ X" P! P* `
if( nJob == JOB_MENTALIST_HERO )5 c) M$ ^0 G- G$ t, G) w- o3 \
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;( |4 }) \# I' Y2 N+ O1 @
if( nJob == JOB_FORCEMASTER_HERO )6 e B8 I: e$ H7 \ l' q0 P E
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;; K- c) l% d1 l
} n1 @& w8 F9 H ( ( CUser*)this)->CreateItem( &itemelem, &nID );
% `) b4 c/ Z1 F" T" P$ S" N$ j }
3 `7 d, ?/ l: J6 m g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& Z. o' y D9 N% z; t( |8 x' i
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' J4 ~- i; O4 P
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# h8 W4 D5 y: V: E( k) m3 q( H /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );- r7 o0 B! ^& Y" i0 V' i4 A
( (CUser*)this )->AddTaskBar();*/
) F. p8 L% F& b6 q7 N ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- z" k4 A7 d; Z* _#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 P' [% \( Z/ R+ f! x }1 Z, E ((CUser*)this)->CheckHonorStat();0 B' {/ ~' |4 i4 q3 n& f U
((CUser*)this)->AddHonorListAck();( r! h2 R6 O V! i4 t
g_UserMng.AddHonorTitleChange( this, m_nHonor); B3 ]- h: n4 f! T: @+ f7 T
#endif // __HONORABLE_TITLE // ′Tà?8 |+ q; _3 Z4 [: y1 w% \5 t: c" |
}
1 G( k8 e5 f& {2 v4 U. T#endif // __WORLDSERVER
8 l; Z* H8 T. }% C' B% r! G" A) V}
7 o! Y% f! |1 p# q, u6 s+ X3 Y0 h$ z& p4 P0 A2 }) M! s$ T
然后你进入functextcmd.cpp并添加以下
2 D1 D( q2 r2 S' c: B2 w
5 l0 R6 M$ Y5 d2 I代码:
$ i* @/ `8 L; D& E7 B6 F; D3 NON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )( r+ D$ g8 M: J3 c2 h
下面插入
% c! F2 \- W! Z3 b% VON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 `, y( }% X3 q) `' R
# w3 |# @ O }3 G5 w1 O% W6 A4 x; u然后你去
t/ n6 _3 T" a. Z- j
" A8 `; f. d7 u$ Q; G$ f8 }代码:
; c/ `1 C, A8 v& i. N% Y, |& u代码) p$ k! K% [+ Y/ I( t
BOOL TextCmd_ClearPropose( CScanner & s )
7 ?2 G6 j: y) Z+ J{9 ~% c4 y; ? v$ p& M! _
#ifdef __WORLDSERVER
* J z* q) t3 a3 S1 F CUser* pUser = (CUser*)s.dwValue;% Q7 e1 i$ g5 ^& U
g_dpDBClient.SendClearPropose();6 p; A. K" S. B( S) r
#endif // __WORLDSERVER6 e9 m3 R" h5 M
return TRUE;
) g+ U. Z4 p O; q, @}
. p( m; j! l- L1 g' D' k下面插入( S- `, n9 z. w- o7 S
BOOL TextCmd_rebirth( CScanner& scanner )& ?4 @# H* _9 M# W: u9 H8 P& u5 m
{
+ U6 o9 h% w; s' C#ifdef __WORLDSERVER
- |9 t+ o+ G% ?/ iCUser *pUser;7 o7 Q, a c8 {8 Y; S" P
pUser = (CUser*)scanner.dwValue;
+ C8 ]5 x/ z7 h1 _if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! A, x1 O) T5 e4 ^: ^2 Q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 y* r7 p% Z5 \5 f$ N. Pelse
5 D8 h; @+ A/ W$ Z1 m+ `# m- f. npUser->AddText("你还未达到重生条件!");, f/ r/ |2 Q% Z$ l B
#endif& m+ ?! o$ `0 V$ ~8 B
return TRUE;
+ S! _' j4 S% k" Q, F} / x$ i% C- I( Z* I- ~+ x- U
5 N" D' l1 [. [- P
, ~6 a. S$ F$ @' K! T
$ q: K/ t2 Y* X5 `2 {
; S. ]8 [/ k$ I' e1 H |
|