|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ M" x. W, K; K4 w% B& h
9 x) I+ J+ ]8 s3 ]+ p1 [Mover.h' n! Q/ b6 Y) ~- q( [- L# Q# [
代码:: Y4 t4 r! ^; J& P* {
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 j% i% M1 T1 P2 Z: x# X% P) o
' {' w8 r$ Q# M. G下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 y3 d4 w3 D J- ?, n0 O" P) e( Q6 R/ W% k+ _
然后你去mover.cpp添加" q6 e, {% M% ]" c0 O, W4 h
( x; v3 A. w! u/ b* [, W' p代码:% l( d& }+ W5 ~
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )$ X) Y, ]( B* @+ a7 X: Q+ S
{) b/ j h: ?, N6 V( b% y# D
#ifdef __WORLDSERVER
9 X$ l t, } |- K' M6 n // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ x3 ?% h& R, z$ o5 g
MoverProp* pProp = GetProp();1 Z; W* g' w+ x2 M7 g
if( pProp )4 e+ C! @# ?& [2 q5 c
{8 d1 s6 F/ D* L5 V: s& ]
if( nJob > 0 && nJob < MAX_LEGEND_HERO ): i5 I; v( ~9 k0 C
{. C( U) c4 I+ d
AddChangeJob( nJob );
$ h5 {: i, _7 N. z8 }& l3 p# U }else{9 t2 J$ h* g" [( E7 w
return;
! ~& g- b1 C5 J4 a- p) V5 C }! H& Q7 S- r. w; Y' \: e
int nPoint = 0;
9 f: c; }6 _" H" W, y if( m_nJob == JOB_MERCENARY )
' `. r( h" U, W% c/ d nPoint += 40;
; {2 G/ n% r C n else if( m_nJob == JOB_ACROBAT )+ \$ X2 }9 C! L
nPoint += 50;
9 G; R5 T* v. n: U, n* `5 @& ^& [ else if( m_nJob == JOB_ASSIST )# s( m' E" { u* \0 k- L* U* I
nPoint += 60;
# M; w. u: n0 n4 T8 a* v8 F else if( m_nJob == JOB_MAGICIAN )
, }. K+ M- \0 d0 H7 } U nPoint += 90;9 W! \, f" V' ^) u D
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ); K+ x4 s' G0 a5 j
nPoint += 120;
1 X: @' e0 z. Y+ x: c; P$ K1 r else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, B1 Z- q( U" R5 j nPoint += 150;/ f% P/ o3 Z+ p6 ^
else if( m_nJob == JOB_RINGMASTER )
- e$ L3 ~/ r" c4 ~3 h. s- P nPoint += 160;
+ A: D$ H. f2 m# o else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% L: t9 F% P% ?: M/ p- @7 p' ]# T nPoint += 180;
$ u. {$ e& |: Z/ R( F. | else if( m_nJob == JOB_ELEMENTOR )8 p& w6 n( |# s; m: l
nPoint += 390;) Y& Q$ {9 w+ M. a% J6 r
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )4 K; a! s9 Q4 L, g
nPoint += 120;
9 s3 ?" n4 q: q* A$ j else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); x7 N" T& N+ z/ e1 B
nPoint += 150;/ }5 O- P5 D7 z) |5 r% G0 Y" [+ K/ h+ R
else if( nJob == JOB_FLORIST_HERO )6 n" i- O5 D8 k; O
nPoint += 160;- D( g$ z, }/ z7 b
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )0 M, d V, z7 R" m
nPoint += 180;3 w! x W5 q1 }8 L3 m* P* e; G) R
else if( nJob == JOB_ELEMENTORLORD_HERO )# v0 T2 \* M) ?, N( v) |( a ^( \
nPoint += 390;( h; R$ s9 n7 ~ g1 D, N/ }% o5 f
8 H2 F7 {( r. v A AddSkillPoint( nPoint );, V: {/ z, o. Y! w6 w+ K1 X* \
m_nLevel = nLevel;
! m0 X* I' f* O: l4 ^8 B1 U7 I9 S) Z/ l4 x* v
SetJobLevel( nLevel, nJob );4 `& X& L$ `9 O3 C; I: G
m_nDeathLevel = nLevel;
- F' i& b6 @ X0 T+ w#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# D; q3 Z3 _* q7 j: k5 k if(IsMaster())
' C! W- A6 ?; ~ C% L7 g {# H' M5 S. \- ^% e. Z: d
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 `7 Q6 }, R% g+ W
if( nLevel > 59 && nLevel < 72 )/ t/ e1 f* U8 a
dwTmpSkLevel = 1;
, H" D$ F1 z: \% T& {3 r V7 Q else if( nLevel > 71 && nLevel < 84 )
- q5 p1 h' u2 D3 f# s4 f* T8 H dwTmpSkLevel = 2;
' n0 I2 d" `* Q* a+ l else if( nLevel > 83 && nLevel < 96 )
3 H. `; n: P* c% V$ t8 W$ i2 \! \ dwTmpSkLevel = 3;
" u) }7 w6 O7 U% o2 ^6 G. M0 C else if( nLevel > 95 && nLevel < 108 )
/ h7 g* W2 I, A7 o! x9 R y& P dwTmpSkLevel = 4;' [# ?1 |, ^6 j
else if( nLevel > 107 && nLevel < 120 )
9 \2 w/ h5 R# _4 s dwTmpSkLevel = 5;4 n' f- @' J8 t, k3 P
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% u+ c( V; R/ }- v* [ { * p1 I: d6 p, S; g; Z& Y* Q
LPSKILL lpSkill = &(m_aJobSkill);
( b6 ~ _( _; Z& W# N! ]6 @ if( lpSkill && lpSkill->dwSkill != NULL_ID ) Q4 A, ?" [. C% L* u7 H6 f
{, {/ T* g' i, N& l7 F( p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' K p+ N W1 S# Y if( pSkillProp == NULL )$ W& n) o& p, }+ |9 e5 X
continue;, ]2 l7 B: p. y; a" [, D/ S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 q7 u5 x+ T' K* [! Q! d( a
continue;
. k$ D/ E! ?/ R0 B6 g lpSkill->dwLevel = dwTmpSkLevel;
2 n' h( L; R( ?" S }4 c6 i6 Y) L4 h; I( b
}* V& Y) e r8 {
}
# j0 [3 U' `: w else if(IsHero())' m/ E3 C7 L' @1 N$ Y# g
{' N; }6 c! U; b: ? k+ ], o& Z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. B! j" x* W! G- g5 `+ j' k {
# v% u8 v9 ~5 S% A# S& Y, j LPSKILL lpSkill = &(m_aJobSkill);% h. u% n9 Z6 K/ S
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 d0 X9 h' }* @% O
{; J: E! X+ j6 ~. q& a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" _" L4 R+ j$ H w4 {0 T8 n. C if( pSkillProp == NULL )
* B1 |) q. h# ` continue;( }; |* z6 O5 j7 @. n9 \/ i2 X" q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 Q6 I8 R! d7 j" j continue;
1 O+ ^: g& e7 p6 _' I lpSkill->dwLevel = 5;. t& L3 N7 v8 v* y5 W, p
}) P: c4 s( o: b$ O7 j0 ?
}
1 z; U1 }* r2 y2 J2 v }8 X7 m# s# q Y; [9 \0 @5 {- E
else if(IsLegendHero())
$ _& f7 {6 a; s _- R {
4 b. q9 c& _ k, d. B for( int i = 0; i < MAX_SKILL_JOB; i++ )
' Q" g& ?1 [+ z5 T N' H {
( M# t8 \$ ]* ^7 X) E& z* q LPSKILL lpSkill = &(m_aJobSkill);4 R7 m4 r1 l- U: S1 s' J B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 U# g8 o4 H2 ? {
" E, k$ G$ n& ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 O7 E' Z9 {1 r) T8 F if( pSkillProp == NULL )
2 a c$ }) G* [5 R continue;
/ Y& i6 I, _9 `0 g& H1 N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( ^; l5 t0 Q, w. o/ L1 P4 e continue;
/ o7 ]: c! V, }0 Q) j6 b lpSkill->dwLevel = 5;
, _4 ~3 y" z% q; {% n; @8 k$ n$ g }+ r# S- @( W1 K! k6 c" R
}3 C/ f5 X0 x) A- g
}
, i r, R g" E( P' e. [# G2 @0 C#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( ~; [" d' t f# x: w9 H9 R+ i if( bGamma )' P4 R: U! ^2 F) a- T' S1 f
{! ?4 X3 n$ y6 e8 p
m_nExp1 = 0;
7 j4 f1 t$ j# L0 y+ Q5 X }- H8 g2 G6 M2 s( i5 t8 u
, ~% m/ ?8 y* u! T
( (CUser*)this )->AddSetChangeJob( nJob );
& k S4 e* {" O3 _9 X8 j% R g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 n6 p& Z* H. l! N& f. c1 r
# v/ M7 J. j, b5 R9 v/ K4 Y! I& N* M! R. w
#if __VER >= 11 // __SYS_PLAYER_DATA- M4 `9 ]5 L0 b$ {6 ]8 d
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; h" u4 d& [) w* I. o# S#else // __SYS_PLAYER_DATA
- Z4 V5 x( H# y; ~ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* K6 E8 x; J! @6 F" a& M1 q
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, q" N3 ^( m0 w7 P. v( n7 M
if( m_idGuild != 0 )' o* t8 v$ A& X" i
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 {+ V9 Y/ I+ E. E
#endif // __SYS_PLAYER_DATA* f. n/ n$ A1 b
SetHitPoint( GetMaxHitPoint() );
* F+ s& l, m+ B/ ?0 S' M SetManaPoint( GetMaxManaPoint() );
$ R* x- U! H: v2 s+ D" Z$ N+ n R SetFatiguePoint( GetMaxFatiguePoint() );9 o* C8 u. i% U* V6 a; }& f6 [
if( nJob >= 1 && nJob <= 4 )
. k; w0 ~9 a+ \4 n+ E {+ ]7 Z4 P! }% @
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ ?" S) w9 r0 a m_nRemainGP = 28;+ E1 R/ k H. Q0 d
}
; d% ^4 p: n3 G$ X& S" i: L2 y4 r if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; m& i; E& C! p7 Q( a {
, T* u$ _( a& H+ z& k m_nRemainGP = 118;1 x0 |& c" J L; P
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. f+ W& M2 D) O! m6 s- b
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 l/ G1 ~/ |8 P/ s6 ]5 ` }
& U3 q y1 s% p0 _! ^! H4 d4 y% n if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )0 @5 f2 S+ T* h! L) J; S* H
{4 Q9 ~8 T0 F* O
CItemElem itemelem;
) |; D4 a% s) B1 @. @4 r itemelem.m_nItemNum = 1;9 d1 v2 {: ~6 n
itemelem.m_bCharged = TRUE;! \/ S& B4 F1 g
BYTE nID;
9 s- i x# C6 Y+ n
0 \* G$ \8 e' J5 t if( nJob == JOB_MENTALIST_HERO )
9 j2 J7 q) Q1 X# S l3 w itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) A: d: Q) N2 m# P) Y* C
if( nJob == JOB_FORCEMASTER_HERO )
, H. q z! ^8 u) i4 a8 E5 n8 h itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. Z$ n2 V4 F7 I4 r6 j8 R' I
% d4 t2 k/ @% K* Y' w0 F ( ( CUser*)this)->CreateItem( &itemelem, &nID );2 N1 F {* o3 d8 {8 v
}
/ H6 Q+ t( A' U {, Z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 p5 Q+ ~ m5 D3 _. O: V
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; N. D1 H, u8 k( S, s ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 M D! F% ~5 l$ Z% a3 M
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );& Y! V+ t$ [' g1 H/ c3 R
( (CUser*)this )->AddTaskBar();*/
+ x+ T& x# ~; [! O# H! {9 F ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: W. q" Y, \3 D# v
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 ^& Y* Y8 p& T( n" M) [ ((CUser*)this)->CheckHonorStat();
) C& J8 P! R% ^# G. R ((CUser*)this)->AddHonorListAck();8 q% z; W2 O: Q4 T1 i V% X
g_UserMng.AddHonorTitleChange( this, m_nHonor);
7 X; a$ d* s6 J1 h#endif // __HONORABLE_TITLE // ′Tà?6 j" v" m$ A1 U& X% B( _/ [7 M# O
}
& e* F o4 u3 O% w#endif // __WORLDSERVER
$ @! D$ r8 g) m4 h4 ?2 p} 4 k2 a+ o! ?* `' X
, P5 D& a" u; T8 l4 @ W
然后你进入functextcmd.cpp并添加以下
% F% k% o+ z, M% q! `; B6 z& B j7 d$ P3 }* L( i( w
代码:6 \0 _4 c/ h5 r$ N4 Y, h
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- C1 j: `+ {2 F( d下面插入! @3 l' B3 P6 n# M. f+ ?; l
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 9 M& w C [# S- v( y% I
/ X, a: G0 `0 z7 J6 W然后你去
2 r, n2 r, R5 W7 n8 ^0 p, y$ _8 ? H
代码:
$ ^# ~" X' V H" ?" a/ V9 p$ `代码8 D" ~# ? q6 o* J: B, w
BOOL TextCmd_ClearPropose( CScanner & s )% [( {$ Q) j5 `+ Z) |9 N
{+ _. G( f$ P6 `# e8 X/ Z: u
#ifdef __WORLDSERVER( u1 [8 H' P5 w. W. w7 y& B
CUser* pUser = (CUser*)s.dwValue;( x! A9 b9 X, l$ C
g_dpDBClient.SendClearPropose();- w4 B3 J- C- X2 x9 D
#endif // __WORLDSERVER
4 t6 H4 l; S- I) B/ p0 M return TRUE;
* p4 O" z2 r7 N}* q$ g* Q. Z, j8 J4 I# I
下面插入8 x6 F" |4 r: L5 M
BOOL TextCmd_rebirth( CScanner& scanner )
, W) q& m" V l- z" y! c1 l4 E{/ W, X2 O5 x5 u% S. Y% p; s
#ifdef __WORLDSERVER+ n& s" U X( A0 X3 J8 x
CUser *pUser;
7 S' [6 c7 \& j* M9 v, J8 y1 j7 _pUser = (CUser*)scanner.dwValue;
( F, Y" n+ k+ {% f; i/ B; i- o: Jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()). A4 F w D" b) B+ O
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
p7 ^, ^- L: y1 R3 Z1 k. ?else
7 z% ^) Z, R% Y# e4 p4 A$ W0 @4 kpUser->AddText("你还未达到重生条件!");
2 {0 w; h$ t4 T! K. ^3 H#endif
$ p4 ]0 o1 P1 N- p* y, W5 |) Creturn TRUE;0 c: E+ G8 e; ?& l+ N; L) d3 S
} - k$ M% f% _" w/ Z. Y( [
5 b* J7 y4 B- J/ Q' l! J
9 ?& Z! ?3 _$ t' P0 b! A
u9 h; I" s' ]5 \( g3 E8 L
& M+ a, c% u7 O |
|