|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel0 E5 z v. \" Q. i
! C% h% ] H: i2 p3 P5 m- K
Mover.h
$ U9 ~- V. O. J& w# U$ |代码:
0 \$ [, A- ? D1 f! J' |找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü# C. o3 n+ g ?
$ Y; n2 Y6 u1 ]+ x下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ Y) L6 `6 B7 k6 a( N- e
; |# s h9 g# B% J8 p$ E& \
然后你去mover.cpp添加( W9 l2 n" H& L; x% \8 L
1 c+ T: t+ ?" Z6 N/ ] V代码:& i7 f! Z% }* E0 r1 `% w
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
! N/ R, f, d: k! T5 g3 i7 [{: d' K! \2 y' b: k' ]8 N
#ifdef __WORLDSERVER' Q f5 R/ T1 X) t, Z+ o; i
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. d8 k5 L& @" H' K& Q4 g MoverProp* pProp = GetProp();
2 i- ^% s/ p) m( V; e+ K. Z- _ if( pProp )( e/ D8 R) o/ [/ p4 X; e2 J
{
j9 F; _. Q& b if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 n# I6 l+ g% E5 b
{
# Z! ?+ M& n1 g) [ AddChangeJob( nJob );
, e, J* G) G A' B2 C) F$ X( `. E }else{
9 v/ v# v. R/ H& z3 r5 c) X return;& N* J1 C- N% ?( ]" F9 x
}
, P* j- `6 e5 k$ m( ]6 U5 ` int nPoint = 0;6 B! u9 |7 Y( e% O, [0 ? |7 d
if( m_nJob == JOB_MERCENARY )
/ |3 \, G, M" m0 i1 _' X7 Z# U nPoint += 40;* l0 l( m/ I# a7 f2 h' _
else if( m_nJob == JOB_ACROBAT )
# Q/ M X. u6 \4 {: | nPoint += 50;
+ W; V6 P7 ]* q, G% {; g. j$ V else if( m_nJob == JOB_ASSIST )- n1 }+ p m3 ?: I
nPoint += 60;$ Q. [) f7 O, [, K) a$ T
else if( m_nJob == JOB_MAGICIAN )
( p/ V8 l: c) d: Y# G/ M nPoint += 90;8 p( Z+ M! L7 w, v1 s. x, _. V
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )! k7 @7 @# j2 p; n: @
nPoint += 120;
* q) {- k s- ^3 _ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 @2 v* x% n$ z4 u9 |
nPoint += 150;
! S6 p5 U" G/ m j else if( m_nJob == JOB_RINGMASTER )
! B$ a+ M5 @6 Z' o! O: x3 P* Z nPoint += 160;- m8 R# ^3 v( |8 l7 z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )% c# O: v2 M7 O% e3 z3 m4 A
nPoint += 180;, L. }( a; U: `* R* k$ i
else if( m_nJob == JOB_ELEMENTOR )* P( b7 Z! L6 x- F5 [# ?; w
nPoint += 390;
$ m% t9 \/ F4 y: O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )0 `, ?/ }' J' e
nPoint += 120;
7 r3 g% ]' F! o else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 b7 A, t* R T$ [ nPoint += 150;2 e+ o* L% |- q \; ^) C) j" \% R9 Q
else if( nJob == JOB_FLORIST_HERO )
, C- ]) J2 ^0 w" d nPoint += 160;7 X/ u1 J5 w8 T" r
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ G6 }0 m! }) f" j
nPoint += 180;
?2 B5 l0 x* z% x! P: s5 D5 i3 Z else if( nJob == JOB_ELEMENTORLORD_HERO )
3 I& J) V0 E2 c" P nPoint += 390;
7 K; o2 d$ k9 B J. l+ n7 ]6 T0 M0 ^: F1 n+ D9 }; v% j! S3 R
AddSkillPoint( nPoint );
, X B" g/ L4 D* G3 { m_nLevel = nLevel;
; h, {1 {( x& X5 @4 h7 j" V
0 J8 Z1 m) s7 r: T SetJobLevel( nLevel, nJob );% }4 ^" }$ X# S U( T- @* n
m_nDeathLevel = nLevel;
7 x" G& ~1 K- ^) X4 i#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ g! P9 f( A( ~4 J& \ if(IsMaster())
, d" W" b+ O9 E: ?3 s {
" a. C% |/ E. `, E, j) ?* K int dwTmpSkLevel = 1;//60, 72, 84, 96, 108. ^* E# J5 `) b. n4 M( H$ ?3 Z
if( nLevel > 59 && nLevel < 72 )" A- ` e8 y& G X
dwTmpSkLevel = 1;. c/ z# R5 m0 A5 ]; j2 W! v" n* |5 @
else if( nLevel > 71 && nLevel < 84 )9 L4 N- [; Y( n0 w- H' E& F/ B
dwTmpSkLevel = 2;
- H' p! [( \$ Q+ k" ~ else if( nLevel > 83 && nLevel < 96 )
& I' S% Y2 F8 h( s) [& A; i9 } dwTmpSkLevel = 3;! E: X% z( \; M. X( z5 q6 L
else if( nLevel > 95 && nLevel < 108 )6 _% G- ?# r. ?/ C6 y7 x
dwTmpSkLevel = 4;8 b+ X/ r1 k7 D7 u8 B& Z/ j6 V
else if( nLevel > 107 && nLevel < 120 )
4 H; v$ I* {3 p) j4 ?4 Y! {* g1 i% x dwTmpSkLevel = 5;! [2 s& y: |1 V4 v, p
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 _# {" ?3 ^+ S) J% R$ G# e { 6 p( G/ U& C# V; {$ m1 w) r/ A
LPSKILL lpSkill = &(m_aJobSkill);1 p% ]) ^. N8 P2 `) f
if( lpSkill && lpSkill->dwSkill != NULL_ID )
c' ^! s# ~8 F: \, ` {% Y3 G; y" Z9 @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" ~% y% m* A" b, ` if( pSkillProp == NULL )
8 y2 P, p, t3 q4 o6 W/ R continue;
$ y+ E5 M8 s; w, C6 z/ F+ S! w" ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 I" m% T/ c+ _& p6 I2 t o
continue;
7 M5 J! G5 q3 | m lpSkill->dwLevel = dwTmpSkLevel;' q; {$ Z; E9 O/ ] ]0 b8 _8 x
}
4 r$ a) R# m) d5 h, W }5 ~; L6 F/ t8 F6 {0 P- E( y! b
}; [2 l2 f0 H2 t/ J
else if(IsHero())
$ P1 }7 \# j( {3 E/ ]9 J" U {0 B$ |$ t2 d! S
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 l) b) w V3 T$ f9 @4 M
{
- P, p# a! J7 s* @/ o/ C$ H LPSKILL lpSkill = &(m_aJobSkill);
0 ]/ g) d0 C7 [$ X) i if( lpSkill && lpSkill->dwSkill != NULL_ID )- P. P8 O! _; C. M4 j, Q" n; s
{: q( {8 \+ X% z$ A# r
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# j# u9 ^" _( Y. ] {& U if( pSkillProp == NULL )
. E6 N+ D) s; G& |$ x# q- p/ O4 f continue;
1 x6 {3 M! Q; |" W; A' }' n if( pSkillProp->dwItemKind1 != JTYPE_MASTER): a" U( Q- G, P4 p. [
continue;
- N2 f+ G, [& @& _! ` lpSkill->dwLevel = 5;
- J+ [+ j* F }+ p( R& h( J }
4 G7 e/ H' m. B$ {* O3 k" Q }
% r# M# E' X6 m$ `0 g }
; E n2 [+ C5 f else if(IsLegendHero())
T5 M1 C' s, A k E {7 L# C* e, h% B! c2 G4 x
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 h2 \ I; K$ d8 D+ R
{ + q ^& V2 l; W( |1 k
LPSKILL lpSkill = &(m_aJobSkill);
2 d. F. d# i1 V) k' q' P* n if( lpSkill && lpSkill->dwSkill != NULL_ID )1 H1 C- M1 n" a: g2 Q v
{
1 x; c+ _( U' a- y1 B0 v, _: d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " H7 q# D# n1 w+ H
if( pSkillProp == NULL )
, R U1 G( y: `0 r) z+ o' K2 W$ V4 [ continue;
0 V: g/ C5 g% D, ^# ?- }! T if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, W m, E6 K: d( a4 \ continue;7 M; b; h! @: c' R
lpSkill->dwLevel = 5;
- k6 t5 S# D/ M- U# Q* O1 e }5 a; o2 W2 S9 U. L
}: d2 h* o8 L; F' e
}
* N0 y) d& y* A3 c9 z5 r; j#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* G4 d" O$ x5 E7 |7 ^2 A. B if( bGamma )
3 ?) X: c6 h7 ~% D/ {; n {8 d$ i& D7 C: }# ~. t9 p
m_nExp1 = 0;2 I) B4 v/ K8 x+ n8 h9 K: o
}
6 d& s( F, b9 W5 m4 c4 R/ ]. f P$ N/ Z' [
( (CUser*)this )->AddSetChangeJob( nJob );0 q' l& A: s7 k) |: W
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ d0 R, n% k# m! V; _% t5 [
( K; Q5 @2 D7 F+ u% E. J5 x
v& Z' _4 E5 z# V; y6 b#if __VER >= 11 // __SYS_PLAYER_DATA
7 a0 B/ f' b* C9 b9 B g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% p" ?) a7 W, ~#else // __SYS_PLAYER_DATA2 c( k1 T, `# H' O! S$ ]
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 A* f2 e' X6 P! G
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );! v' T4 J, n2 H2 H4 F+ \
if( m_idGuild != 0 )
+ y; O9 ]2 U1 e4 B g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 a, @: v( ]1 K3 I& c#endif // __SYS_PLAYER_DATA
- Y2 O- I1 w# s6 g# |3 a& j' G* k5 v SetHitPoint( GetMaxHitPoint() );
* P; C2 s. h5 z9 r% g SetManaPoint( GetMaxManaPoint() );
3 R1 ^) l) _( L R N/ w( D SetFatiguePoint( GetMaxFatiguePoint() );; Q) K+ }8 @& I
if( nJob >= 1 && nJob <= 4 )' L- L3 b% k0 }
{
8 W4 m3 {5 f, ^* ^: S m_nStr = m_nSta = m_nDex = m_nInt = 15;
! G% K7 B/ S- Y" }* M m_nRemainGP = 28;
v- q( M0 I: _( q# @1 @ }3 C1 j' y# N& I: u; O: L0 U+ z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' [$ ^' a8 d; u1 @ {9 h) P4 E' y& V ^0 S" A7 T1 E
m_nRemainGP = 118;& ?; A# r3 k& b$ F8 {; p
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;3 y3 D: c9 x8 P
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ n5 W; g7 A3 {- @% P/ V& B& k }
0 \3 i" X* Z, O/ D if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )4 b6 M& ~9 {: N4 z
{8 |# j- m; ?" l0 D; O, L' s3 l
CItemElem itemelem;, P( I5 H3 R9 |- c) J
itemelem.m_nItemNum = 1;
- Y+ I! Z2 `3 l: h- B8 \) ` itemelem.m_bCharged = TRUE;
3 S8 f& ]! e2 K6 a* F BYTE nID;
# j3 _4 i8 x, ?+ v% S6 R9 O/ t% G
if( nJob == JOB_MENTALIST_HERO )! p( I' x5 ~6 O7 T# i0 u
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, ~( b* Y: s d+ M2 n1 ? if( nJob == JOB_FORCEMASTER_HERO )5 y7 L# f3 W' D/ r% v
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 y" H4 a1 x8 H6 v1 c; n& b3 K Y8 b$ f" y1 ]" y0 \+ H5 f& b
( ( CUser*)this)->CreateItem( &itemelem, &nID );" U9 Z: k, z1 I3 t) `" f
}+ S; i% C! Y& M7 y" _
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 g8 { T' z4 n( |) n: d ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 C3 b$ `) S! g
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! M8 @0 t! @+ ` /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" G) j7 f" M* j' v+ e6 Z ( (CUser*)this )->AddTaskBar();*/- a- V: b; |+ m- I
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ a, C% Z" n; }8 Z/ ?
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 Z+ w% I! O& `% l' u. n
((CUser*)this)->CheckHonorStat();7 o8 L. c+ {+ C$ F. @5 a7 V
((CUser*)this)->AddHonorListAck();
, i, F8 O$ ~6 \" P g_UserMng.AddHonorTitleChange( this, m_nHonor);: H2 C- t& Y& C) {% r3 W/ o
#endif // __HONORABLE_TITLE // ′Tà?9 B" I2 L4 d' J: p
}
3 {% w9 P6 I" X- D6 ~8 |8 Y9 S2 L; Q#endif // __WORLDSERVER
/ m, u$ U8 }4 {. V7 [- _} 9 s1 ?& d" U* W% L, O+ Q' y4 g( k
* _$ q# l1 m% Q6 [
然后你进入functextcmd.cpp并添加以下
% ~, X+ _/ p& [' b7 j
' h$ V1 r" |9 q3 i9 ~, n代码:
; v' a: s' c& |6 [0 iON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); {+ m4 ]5 l3 t' ^; N( m
下面插入
& S# M; W) m2 B# k# KON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 ]# h+ e2 w# _; |. k( I
) v# d+ x9 F$ [- w
然后你去
$ N4 i! _6 g$ S! Y
6 J) t- k; e2 C4 \7 X" b代码:: a0 r# W' q7 X
代码+ |) g* V( W6 _4 J5 J* }
BOOL TextCmd_ClearPropose( CScanner & s )
- J# n e, U Y. W( g{& h+ F5 N: _; Z. M
#ifdef __WORLDSERVER% b5 b$ m! H! y6 y, q
CUser* pUser = (CUser*)s.dwValue;
; _) k S n/ j" j g_dpDBClient.SendClearPropose();4 H7 p, U2 G& K, }. y J' v. ^" W
#endif // __WORLDSERVER- ~$ f, `7 U+ F# Q
return TRUE;
2 K8 Z9 d0 v8 f/ o5 \; G( i}
" h) x: i v6 U1 b下面插入
# P9 W/ }' o5 a8 X) _BOOL TextCmd_rebirth( CScanner& scanner )
C8 v& [& i# B7 B! C8 T1 ?{
! ]% h _+ O/ r1 ]" W S: G#ifdef __WORLDSERVER! T/ a6 w: c( O
CUser *pUser;
; Z* O( v y3 B! c2 }: I( apUser = (CUser*)scanner.dwValue;
4 P. L: f1 h3 V5 j8 R6 O* bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) a; w' }; s8 T8 U! l1 e `" h+ B! mpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
d* y* N/ i, g- ^1 l- [else
% Y& m/ P7 i3 Y4 b/ HpUser->AddText("你还未达到重生条件!");( `* \$ T7 B1 A5 ~# @7 @1 L# p
#endif
6 K( @+ J7 g& j" i- T; lreturn TRUE;
6 D6 k( Q$ F& A4 C; m* u2 C+ }1 K; P}
. `, ?3 H& B- J: p. X8 M
0 y3 K/ G+ q! n/ N7 {4 ^% I& I
3 F* B. I) Y5 f: s# j4 K: P! I( b1 D) Z
0 w; R7 z% `1 [# T! \ |
|