|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
( N5 ~! r" G5 M6 R: s/ R! m
& d! R$ T+ i5 e0 r$ y0 ]" sMover.h6 j* `; c3 _$ ?( o+ L
代码:
2 U/ V1 Z8 n7 v找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü# ]1 u$ M/ i4 T# \" B! j: S+ d/ G
! ^, d8 t/ a. x7 z7 {2 k6 V" D* E* N下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 P$ Y( p* @; k0 b) f# V8 O& j# E
* A/ l* k4 G8 Z7 B+ p! J! L. B然后你去mover.cpp添加. y8 z3 E& `# f8 [: d/ Q
; e2 d5 X/ y p' z( `$ A
代码:
5 _( I0 R% G& G' M; rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )5 e W- Y) @1 M8 t$ ?
{
/ x. l( W% F; x/ \! u- ]3 ]#ifdef __WORLDSERVER
8 \ v' i8 W- \& o# @6 [ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
t, a+ w" Z# @# g3 o$ d* S' Q MoverProp* pProp = GetProp();
/ }3 A* i* i$ ~2 i9 \ if( pProp )
" x( q+ r" }) O5 j- A5 d& a, ]/ V {
0 b, n2 I0 {' p* \! }0 y if( nJob > 0 && nJob < MAX_LEGEND_HERO )! E% l9 Z( n6 h+ K+ Y
{7 j5 R# [, W# X! z. u) B5 |
AddChangeJob( nJob );( d- ] q' b8 ?+ C4 h& y
}else{ y+ U. n1 P2 J+ ?
return;
, t2 G5 i& ^/ ], d! E, \ }$ `% i; _/ G- ?7 C2 f; a- I" Z
int nPoint = 0;3 `- H& X9 f4 z8 ?
if( m_nJob == JOB_MERCENARY )
, n6 h4 B# U) K0 p" l. H- ?7 _ nPoint += 40;0 S" \8 t5 X3 F3 ?; F! \
else if( m_nJob == JOB_ACROBAT ); ~- X7 C9 F0 J& F+ Q8 K! u
nPoint += 50;5 R2 A. @& K; q
else if( m_nJob == JOB_ASSIST )0 Z9 H$ |, y8 C6 ~* m
nPoint += 60;+ l* e0 m' O3 X- A7 W* i) W( f
else if( m_nJob == JOB_MAGICIAN )
9 V% J2 f7 O* r8 E5 O9 B+ ]. z5 O nPoint += 90;
: I; m/ k: o* `+ D7 F3 Q else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& |4 l" c0 \* V) Y- r) Z* M6 h8 X nPoint += 120;
% X! R' n9 B4 l# J+ H/ A. z else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )# r4 E" X: c# A7 s
nPoint += 150;
: M, t/ Q) L) N: F4 B else if( m_nJob == JOB_RINGMASTER )0 h' g+ V9 G2 G1 h
nPoint += 160;7 C& T* d2 O2 v5 x: E
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" l0 @% {' v8 W2 r6 c! s nPoint += 180;
, C2 G) D' u2 p7 E else if( m_nJob == JOB_ELEMENTOR ), F; b7 |3 }$ T7 h
nPoint += 390;
7 e6 C3 J; h1 O1 P else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 l' d+ W2 g% e2 @& f+ f) P nPoint += 120;
4 S% i0 |2 ^; \, _. f) w) l else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 O1 s" C* V0 }) s- l/ }/ w
nPoint += 150;
6 W2 p4 `$ k1 P. C0 _6 g else if( nJob == JOB_FLORIST_HERO )4 x5 N& a9 [1 b( |
nPoint += 160;
' V% G3 w' _6 `2 ]( y* u else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); J0 Y9 w. ?. A$ ~: c2 J
nPoint += 180;" O: N/ f5 ^# l0 O- V2 O, s/ g
else if( nJob == JOB_ELEMENTORLORD_HERO )
$ _/ ?1 H0 v4 R: ` nPoint += 390;
, T* T6 Z# y6 X' v5 O8 X' p* K( P$ ]9 e$ q* l
AddSkillPoint( nPoint );1 `0 Z. U8 U8 v( B6 ]# o
m_nLevel = nLevel;: f$ t& Z/ J9 w: {% U g0 B: j: v
& h O1 F1 n8 D4 Z: l$ s
SetJobLevel( nLevel, nJob );
$ {4 F3 {3 T- F0 I5 l6 p2 m* B; V m_nDeathLevel = nLevel;/ R/ e0 `) ^9 b4 v! f% N k
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 X0 ~, d+ e" y; J3 z& s: f1 m if(IsMaster())
9 ? Z2 a" x# Q& n) g {9 o9 @) l0 T$ N: u2 a+ S" w' Q
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1085 c' W4 u6 u( c7 q G
if( nLevel > 59 && nLevel < 72 )9 ~: a6 G- _: r$ S& n
dwTmpSkLevel = 1;2 [+ G$ k, o3 e2 p
else if( nLevel > 71 && nLevel < 84 )/ X6 {0 E& s) _. p8 V
dwTmpSkLevel = 2;
8 a t C( M2 N& K4 D else if( nLevel > 83 && nLevel < 96 )
) a2 p/ u8 N( U- v, D& v dwTmpSkLevel = 3;
, [5 c+ J6 H4 a0 D% O7 j! g/ G- B else if( nLevel > 95 && nLevel < 108 )
0 W' u# N; u! U2 H# \ dwTmpSkLevel = 4;
7 c( R. L# f4 b else if( nLevel > 107 && nLevel < 120 )$ R2 u/ ]+ ]& t7 g# ]
dwTmpSkLevel = 5;5 k# |# v# V$ z/ }* N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 ^ D7 G% J7 |* { {
. @) B! n' v+ b/ { LPSKILL lpSkill = &(m_aJobSkill);
0 g2 }! n. c2 {# [: w+ o) s if( lpSkill && lpSkill->dwSkill != NULL_ID )6 U& V4 }3 H8 L- b# H; Y8 F
{) s& |+ M4 l# |/ j" o! e0 X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 O" B% S0 Z' x% A6 H/ s* W if( pSkillProp == NULL )
' ^2 K: b1 i. e! M- g continue;3 O8 q+ Z6 ~! |9 F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); Y8 l9 c, n- c0 g
continue;" d' i! y3 B9 p% D- e% Z, |5 i# F
lpSkill->dwLevel = dwTmpSkLevel;( z2 |0 _. ?% p( ^3 g! q
}
9 }/ D8 r G; I }
. i+ L5 R' }7 g0 D! E" C }- [; j5 d2 H7 a* d
else if(IsHero())+ I& T% a3 ~" ]2 E3 r
{) f% M8 a5 {5 e2 [# F- K4 H
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( R: Y4 e' @5 P2 Y7 ?
{
! ]( |8 x+ T8 ?; a/ J* F( t/ ~ LPSKILL lpSkill = &(m_aJobSkill);' _. X0 t; c3 Q- }6 Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 @- N( D: M1 c {
# ?4 Y; C9 i4 ?2 G3 L# ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! e4 y' J6 j/ _! B* r E+ ^6 b if( pSkillProp == NULL )
0 p0 @* r' @9 p% B1 ^ continue;8 n0 O* _, C j; j( M$ Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- i. v) U6 L: r+ ]$ B# _0 J
continue;
- e, q4 O9 V4 A# M lpSkill->dwLevel = 5;; X, D6 @0 U7 b; j/ U
}
4 P+ U8 H2 L0 E0 K' [* L, J" X% F }; ~8 H/ y, g# v5 P8 i# a
}
% ] S0 N9 y3 g: Y# } else if(IsLegendHero())/ a# n9 ~4 I J5 i. H
{# D4 F/ L& i. y$ I
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 s+ O/ ~ X8 ]" n# f( L M2 K { ! H( Q5 \' f$ E3 V* F) P
LPSKILL lpSkill = &(m_aJobSkill);2 o; e1 ]9 M! |( C5 z' [; Y/ B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! d1 S- l# Y2 f: I# | {
) y1 W }2 C7 _4 I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- m( w1 b2 x$ t$ d* q: r2 c4 U if( pSkillProp == NULL ): y2 R& T5 H. E) {1 |) H' T
continue;
7 e' b8 Z% j9 g4 A if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) K3 {. z3 D, `0 Z7 N9 n continue;7 M7 r3 F1 M8 T) f: _2 \5 _
lpSkill->dwLevel = 5;
2 |2 F. B& ]8 \1 @# M1 Y6 T, Q }8 Q: n8 x2 \2 m& b
}
' C8 w, O# K& K9 g$ Z }
8 s0 ^# h$ N9 }. I+ [; m#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 y6 b6 l' u3 t% w3 A
if( bGamma )
- Y$ F/ ]2 ?5 G4 w7 S7 K' A {( x4 N8 y" C1 l& X) J$ T, U
m_nExp1 = 0;3 X! Z/ S/ Z# ~+ g [
}4 o' ~/ }! m, y6 t' S/ b: p! I. Z
5 y C! W3 o1 ~: l0 p ( (CUser*)this )->AddSetChangeJob( nJob );
/ n# W0 n3 o* [/ l) M, R, Q- n6 Z2 n2 K g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 p' O; [0 w' }9 L w3 |3 d
$ F7 d9 G# M& r- H
* T$ O2 d+ x) w#if __VER >= 11 // __SYS_PLAYER_DATA1 ?( }- @2 B* e8 D a
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 n8 Z l( F! G" @# j
#else // __SYS_PLAYER_DATA$ l7 N- O2 Q& m% \3 B) I
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* j J8 r6 Q* j" x: n g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 J1 a' }) |0 b* N. Q5 U3 _8 [ if( m_idGuild != 0 )2 V2 N: M3 ~! V6 W% T/ U: h! h
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
! h) s7 X# G3 R- M; c, K#endif // __SYS_PLAYER_DATA
2 v- N3 i$ ^* Y) X; w SetHitPoint( GetMaxHitPoint() );
0 A; q J3 h5 J0 a4 @( [ SetManaPoint( GetMaxManaPoint() );
W2 A* |* |6 U0 V0 G P SetFatiguePoint( GetMaxFatiguePoint() );9 _+ s. f( m6 n) T6 T
if( nJob >= 1 && nJob <= 4 )1 v# T$ C: `" i8 B
{
' z% h0 T) u' s( z5 e, {! D$ F m_nStr = m_nSta = m_nDex = m_nInt = 15;
# u* m7 o: Z- Q/ S* q m_nRemainGP = 28;* P4 m C5 I) ]& G* i! T
}
* J+ F/ w) k. i! c- J. ~. q if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ h% y3 M" K1 W) u
{
7 K* H; J4 A f9 o7 D: U m_nRemainGP = 118;
* h* H6 J! ^# b0 f s& | //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
* x o+ { ^4 U, Y m_nStr = m_nSta = m_nDex = m_nInt = 15;% W: T* Y) r |
}
. G+ O4 \2 u$ n if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 J& j! U9 C4 m0 F7 E: w
{9 Z) a0 d* [) B
CItemElem itemelem;
% Z0 ?2 {7 \2 v o/ \4 R! M itemelem.m_nItemNum = 1;
- O/ e' V4 C3 G! y7 n: Z! C itemelem.m_bCharged = TRUE;$ K) p( U; i. A( @: A. Q. B
BYTE nID;( \5 S3 W; w- |+ Q$ w) Z8 X: A
$ y0 T5 {6 S; G1 Y4 J8 E5 s) n if( nJob == JOB_MENTALIST_HERO )" C2 R, `5 ~7 T; r. M. Q& i2 R
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 d' l b6 P$ o! u$ A
if( nJob == JOB_FORCEMASTER_HERO )8 F; O- a7 {& m% L/ x, R# T
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 Y$ e0 _% ` i
3 t5 v0 L) L+ f3 m8 _ ( ( CUser*)this)->CreateItem( &itemelem, &nID );
" ~* j0 B/ L4 y }; M# e7 a; L! ?* @9 q) a$ C
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
" R& F; {+ }0 Q ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 c9 D2 a0 |: {, {- K5 n ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );/ ]( ~, z) ^) u' `0 k: G
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );* S* R( I4 k2 [" t9 {8 r
( (CUser*)this )->AddTaskBar();*/, E$ a) |# d" m6 [' A( e/ I. g
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- A. G% Q% x" i0 V0 ?1 f$ k6 H
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?: k1 Z8 m I7 ^! X! Q
((CUser*)this)->CheckHonorStat();
: @- z; L# i" I# G0 X; M% @8 C5 u ((CUser*)this)->AddHonorListAck();, ?" W& \% A7 [- p7 ]8 X- @* @- I
g_UserMng.AddHonorTitleChange( this, m_nHonor);6 T0 [4 A& K: ^# ]
#endif // __HONORABLE_TITLE // ′Tà?
7 M& Q/ ~; K+ x% Z0 \2 e }
; i+ f+ r2 n9 t7 b- q#endif // __WORLDSERVER) L \( B5 K( h8 u
} + r' i( S8 }; O, \
R' u. D, I7 c2 K然后你进入functextcmd.cpp并添加以下
# }3 V# Q, q, _+ b* {# ?% K ^( U5 x
代码: ?: y! N4 z5 M+ a
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ [4 O w# y7 x+ f! ^- J
下面插入
: _" J& Q! ?3 {6 d0 u9 y2 m( a QON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ! z: X+ u( t u: [7 Z
! |: d2 c3 @# q1 E( B' }8 Y& f然后你去, c3 d" e8 g" i8 j2 y% n% F- G
- N& Y- J& w, q; F; I# {8 A代码:
8 |0 d4 o) h9 c& R q T) }, ?代码0 N8 w% A& e8 y) P7 W, O
BOOL TextCmd_ClearPropose( CScanner & s )
2 N8 Y+ F2 O/ _3 f' G$ [: }# [{
3 ?3 F* ]! D& ^#ifdef __WORLDSERVER
+ D8 k1 |% J, S3 T0 { CUser* pUser = (CUser*)s.dwValue;
" P& q+ A4 Z" T% r g_dpDBClient.SendClearPropose();
: Z4 _ X, c, C4 a#endif // __WORLDSERVER0 r% [% O5 }2 A5 ~4 r% h" A
return TRUE;- q' m2 N; V' W2 S& P. r8 P% j
}
6 }" a/ d& Y9 y3 U# ?" }% `下面插入
1 d4 ^/ u+ e- D. d- c' VBOOL TextCmd_rebirth( CScanner& scanner )
2 ~ C7 M3 m9 E% L6 X: C: O{
+ d4 E" K3 y1 @& Y B+ V2 m# k% V#ifdef __WORLDSERVER
% k! c C! G zCUser *pUser;7 }1 C" A0 B+ ^
pUser = (CUser*)scanner.dwValue;
; `/ x7 M) ]. a0 T! @: t* R8 Y, gif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 F! u+ v- N$ L( r
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" M: m8 v/ T& Z6 [/ Pelse6 G0 V3 K D7 ]4 x. i8 v. j i; }
pUser->AddText("你还未达到重生条件!");+ A/ _& T, [+ N2 h! d
#endif
( Q4 \* H$ ]$ M& ?/ z# b Greturn TRUE;
& q* x7 O" _* }, r3 V$ i% A}
" w4 q5 B9 g6 i1 ]; H( e! I4 l. |) Z* U
6 A7 u- I: C" S& W% x ?4 D) @; g2 B+ H1 ?) u0 U
8 \& {5 R. l: f# ] |
|