|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, [ h. G _% u/ c
7 U+ g/ L4 v" L/ w) X7 RMover.h
1 w7 ?% s7 x- u: j代码:
' w. x: ^ T8 o找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; e% I- a' d8 H' w. ^" V: w# [" Z' k8 r/ i9 g
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
* [% u" j' @( D) N) R7 d: ?3 T; A7 S6 D; }4 T, M& V' M
然后你去mover.cpp添加
2 _& Z) x9 j5 A0 C7 W* p6 O2 a7 m: {+ y+ q5 r7 V. l+ B( S; L
代码:
: [# @% e0 }, j& V3 }# C+ Rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' [/ k. }, w6 v{
! M. I5 {0 d# ^#ifdef __WORLDSERVER
8 t9 W9 h {, V; F$ s1 h8 W) Y8 m // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 b" ]6 j/ Q) b! ^
MoverProp* pProp = GetProp();
& G1 y7 \: q! o( M8 i, T if( pProp )
! `- q M% ~" g0 Y; j* b: ~5 { {% U" B- @; R2 z& U( n
if( nJob > 0 && nJob < MAX_LEGEND_HERO ): Y7 E+ w; k& F. L. m g& H. k
{
/ s; i! b6 w' L0 a) Y AddChangeJob( nJob );' E7 j6 u& a3 ?( n" u- U4 L. U' E
}else{
) _" J) ~. }/ F% S return;; r) X! b) Z" P1 N4 l; S
}
( k4 t1 C' n: f7 R- i4 W int nPoint = 0;
/ v z( g$ @$ z" q( i if( m_nJob == JOB_MERCENARY )0 `2 S0 I7 M5 {" E" |: `; l
nPoint += 40;
- n; A- _% `: G5 v else if( m_nJob == JOB_ACROBAT )9 S* ]" o6 C: Q) {, Y
nPoint += 50;9 w3 i6 R5 g, b0 ]( ^2 B1 j
else if( m_nJob == JOB_ASSIST ), s+ K1 P* V7 K" z+ v
nPoint += 60;% B+ o( d1 f; x3 E" ]# F
else if( m_nJob == JOB_MAGICIAN )
/ n- P2 w" [+ ^4 Z nPoint += 90;: O# c1 e: {, f; } T0 ~
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 W2 U, b" ~1 b4 K! z% ]9 a% d nPoint += 120;
5 Y6 q. I. G. ~! P else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 }6 J5 e$ e1 c; H$ |. \4 Y nPoint += 150;* @" L+ I6 T# R& p0 L9 Y
else if( m_nJob == JOB_RINGMASTER )
( Z l$ A0 O* i9 t& k! @6 k5 l$ m9 Y nPoint += 160;( A# k6 p6 U- \
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( E; E- r& n7 Q4 \ nPoint += 180;8 A) ? G9 S& g6 J2 ?
else if( m_nJob == JOB_ELEMENTOR )5 Y' l/ p# a0 x; R2 |) k' h4 e1 ]
nPoint += 390;
$ T; R6 j! \' t7 y& w else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) { M9 Q5 n! Z5 }- _ E" @
nPoint += 120;1 s% [: Z6 p1 i" Q, p" a( r
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )5 O1 ]0 C* e* i# x, U- }0 ?
nPoint += 150;
n- U' w2 q, e7 P; N else if( nJob == JOB_FLORIST_HERO )
5 |1 ~0 A! \% U4 R x4 D$ F9 T6 @ nPoint += 160;
" z8 O1 _! Y0 Z5 {) l else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )4 F* {9 ?$ Y6 G" s
nPoint += 180;& q/ J1 T7 O3 m8 L) K
else if( nJob == JOB_ELEMENTORLORD_HERO )
$ X6 G. O2 c V$ A+ f nPoint += 390;
! f u7 o! E. p( @/ Y& V( k
$ R/ O) I" S& g6 ?( Z, K AddSkillPoint( nPoint );
6 l; C- n& q/ ~0 Q. T. z m_nLevel = nLevel;) y Q# x7 G' e% @; b+ u7 p/ v
9 u6 j* S; z& k: e+ v0 S5 g2 z SetJobLevel( nLevel, nJob );
* [& @# A4 X1 N$ \ m_nDeathLevel = nLevel;' Q+ Y7 `8 I: z* A5 w" B( \
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 A0 a8 W7 @/ p: M# G: O. `! H% B1 Y
if(IsMaster())! w, f/ c p, u# o
{
# ~6 S4 P; l4 Q# M+ k) U int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 h& m0 ^: l" k8 J, H4 z0 | if( nLevel > 59 && nLevel < 72 )
2 r! t5 ~3 K/ u1 `/ Z4 I dwTmpSkLevel = 1;# ?2 |$ X, N# d& z- M+ \8 |# i5 A3 g8 u
else if( nLevel > 71 && nLevel < 84 )
* Y8 h! [# D0 Q9 s; _ H; Z/ E N dwTmpSkLevel = 2;
, r) T N* o7 j! h1 p* W: M else if( nLevel > 83 && nLevel < 96 )
& @. B6 w# q8 W" r9 P dwTmpSkLevel = 3;8 j5 F# |, v, K2 H
else if( nLevel > 95 && nLevel < 108 )
h0 S. p! o: P( J* e3 j s dwTmpSkLevel = 4;
; l H# p3 I/ k else if( nLevel > 107 && nLevel < 120 ). q' |) ?, v+ f% K7 Z# J/ k
dwTmpSkLevel = 5;
. V5 r5 [3 T4 n2 ^9 }" y for( int i = 0; i < MAX_SKILL_JOB; i++ ) % O' ?8 S* e6 v# c
{
3 p5 p- r3 z7 l& G LPSKILL lpSkill = &(m_aJobSkill);
+ ~' o+ ?" {$ [2 U! W if( lpSkill && lpSkill->dwSkill != NULL_ID )5 q* t L9 A! N
{# ]; ]. K1 o; K! K- {6 A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. z! g: ~" h$ |( _- e- S if( pSkillProp == NULL )
! Z4 F% L0 F2 J0 c- ~. S continue;- X% A3 _" F! q. u t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 w' l B, g1 b% Y% ^( K continue;
/ F; [& a: E( R! _! R lpSkill->dwLevel = dwTmpSkLevel;
$ V; q3 d1 \7 L8 N! K }7 M1 I& j( _6 f9 Y" ?
}3 a" g$ f5 U& D4 K/ K& x
}
( N- x* `/ l; H/ ~6 n7 r' _ z else if(IsHero()), {1 Z% ^7 x; k# G! `
{% T( c& Y2 M6 S$ k
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ H5 ]0 W, E' c, Z { 4 r# u7 e* P; y
LPSKILL lpSkill = &(m_aJobSkill);
# ^. i) K" U/ N* o if( lpSkill && lpSkill->dwSkill != NULL_ID )
( E9 u+ j3 P8 b, w6 f$ O$ f4 i {
$ Y7 q+ p2 H& D5 l9 @" `) y7 i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. M1 r& X& I: q. X' h3 _' ~ if( pSkillProp == NULL )
7 j! r2 i4 ]! M8 @/ {% P3 ` continue;. J; @* F2 ^5 @8 ^& X, S4 [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 @3 z* p( d1 ^; N3 T" _" m
continue;
1 Y9 p3 J" b+ y0 ~ lpSkill->dwLevel = 5;9 g# T6 Q4 |8 R- y. f( ^+ R
}, Q d M; m9 X( w6 m, a
}
6 Y* B8 h. ?6 j6 H }# J1 k3 L o1 k" ^& ?# X9 g8 L
else if(IsLegendHero())7 s: f+ b8 Z6 L. t1 [2 R
{* O: n! O" _. R# U$ d
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * l# ?; f+ Z) i! z9 g
{ 0 Z) X, r# W/ u, s
LPSKILL lpSkill = &(m_aJobSkill);
4 g+ B/ U# a+ _, r# U2 b$ P if( lpSkill && lpSkill->dwSkill != NULL_ID )( U! C: M. T9 N% |5 \" x d c. n
{
L" f6 I q8 L$ ?6 E3 R- E3 S2 |9 | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 M; G% ^* W B1 E
if( pSkillProp == NULL ). l: ^" S6 f' b
continue;) c1 y0 e) i! p1 a. R& k5 z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" N, g. [. J2 p9 T9 [* ]( O
continue;' }+ Z, p4 P- O' k0 R( n: w6 z& u
lpSkill->dwLevel = 5;
j; v" M8 ^, q7 {& c5 A$ `( i. C }4 ^$ y4 y; Q& v: B, i: z# h& L9 O
}
- J. o1 i' G4 b5 x }
e. f( D1 N- Y7 g3 S1 ^#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 f/ K9 G; e8 C% i/ D if( bGamma )7 |0 C2 P8 _' m- Q" e# W
{
: A2 k3 ~" {' W' v" w% O- P/ T m_nExp1 = 0;/ o! T1 }% A/ d7 u
}
( {; f" I: y3 |& V7 R- s
% I* T- m3 `& @) N' M w: d ( (CUser*)this )->AddSetChangeJob( nJob );
- g9 r$ j6 L- g% @% _* c g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
0 P* F( e' R, [5 y6 j5 a g: ~" s. j3 j) A% d: D
; Z% o/ @" k( `: ~ R
#if __VER >= 11 // __SYS_PLAYER_DATA! M) d' U2 |/ f4 ?/ X1 x) ]
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
: A! j. ~1 d$ A5 q#else // __SYS_PLAYER_DATA
) i6 y& \. [" S, k g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* R# p2 n( a! p3 _8 j
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
& y/ C0 o2 T) }4 {6 g/ o4 o if( m_idGuild != 0 )$ B( `4 I. {/ A# B* ^
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
- q$ c8 f A2 K% z U# S" v#endif // __SYS_PLAYER_DATA
! A; p3 N1 U1 Z9 R! D/ d5 a ]% r SetHitPoint( GetMaxHitPoint() );
; h/ r6 g J: K4 p& d7 z SetManaPoint( GetMaxManaPoint() );
5 m8 ]& {4 ?( m: S# w' a1 ?1 P SetFatiguePoint( GetMaxFatiguePoint() );
+ x( u2 O9 x: [! e: R# G1 @ if( nJob >= 1 && nJob <= 4 )* u0 i) V& _6 y6 h
{
% x5 z/ @; X- r m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 B( ?6 e( L; M0 Q/ e: w m_nRemainGP = 28;2 P" m: S5 _: T$ y% O1 v
}& r, {0 I( N7 z, `
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ u( M2 @) [- g2 g2 S
{
4 A* T# U: n* a a4 q+ V: o m_nRemainGP = 118;/ I: Z2 i; w x/ W
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 {2 t3 O' F. H m_nStr = m_nSta = m_nDex = m_nInt = 15;
# S' ?$ d; o- ^: `* q! Y+ t7 ^- X: f }& z- I# A+ u2 L, u0 N6 j3 V
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 Q P. o& W8 R {
# Q& v" d# I' o5 \: Y% p" j3 p( S5 e CItemElem itemelem;
6 z W$ X; N' T0 h Q& t0 q itemelem.m_nItemNum = 1;- k0 m* G8 v3 S
itemelem.m_bCharged = TRUE;" W7 w4 X3 b' d
BYTE nID;
2 |5 J2 ^* E+ \$ k3 t4 o* e$ h' \& `! i
if( nJob == JOB_MENTALIST_HERO )
( E) j# i: b3 l6 _& b itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) V7 S* M9 t7 N if( nJob == JOB_FORCEMASTER_HERO )
. }8 Y; l5 p6 }0 i5 `; y/ K8 l itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- c8 I& @0 d+ ~ i; }. _8 w) B
( G; E' `8 E7 u ( ( CUser*)this)->CreateItem( &itemelem, &nID ); r) l& H. G$ s+ K8 C0 q
}8 @4 Q. e6 } n$ d0 n' _* {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& r8 F; _8 r6 R; n% K ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: l& Q& S. r, h1 n ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 C7 {- I2 K0 P# n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! H) t& N4 V# v: o1 i ( (CUser*)this )->AddTaskBar();*/2 B2 j; U2 t/ F8 i" f5 h" L: m
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );9 [5 f8 n# G5 p6 [* D
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% m. | ^4 U2 j# r7 K# I* H
((CUser*)this)->CheckHonorStat();' A* z3 ]1 B/ Q* s. E, Y
((CUser*)this)->AddHonorListAck();
7 L7 ^5 x& h1 ]6 d, j4 e3 c g_UserMng.AddHonorTitleChange( this, m_nHonor);
% n$ M5 [/ x4 V2 f2 J#endif // __HONORABLE_TITLE // ′Tà?- v s5 s7 l' t, V5 L- B5 Z
}/ _" |5 X( n# p3 o
#endif // __WORLDSERVER
2 h2 p0 E' @# e ?}
) Z- t4 a, D. G) C/ C% b" R( L
+ ]/ _$ l/ V+ v* |4 t, @& [然后你进入functextcmd.cpp并添加以下
# S( l+ z e4 y7 I! I8 `7 p5 @: n3 ?+ o3 f* ]! q* s9 v! p; c
代码:6 Q8 y9 h% b! X1 t0 H6 L1 l' Q( y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )6 u1 {& `" T$ A
下面插入
/ j& @ i* R( c4 X$ r$ O3 CON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: g+ J: m0 ^% w' i
' [! q6 y" x0 D7 ~2 }' D& S' L然后你去
7 T- x1 f* M, B( S L
+ ^) t& }" i; M$ p& k+ N4 C代码:; c3 G8 J6 h5 D# T _
代码( Q2 e3 p6 e& k l- M8 ^9 _
BOOL TextCmd_ClearPropose( CScanner & s )5 Y: N0 q* h5 f' ]+ l
{
7 O9 J1 l; n3 ~3 h- W4 X1 V#ifdef __WORLDSERVER+ c! D- k0 t2 [
CUser* pUser = (CUser*)s.dwValue;/ I& k# `- o6 @3 |$ R4 u3 T" N
g_dpDBClient.SendClearPropose();
& G% q+ R" F3 U% q7 c) g#endif // __WORLDSERVER6 f% J( F7 |( G) \ y
return TRUE;( P U& z- s: k% R. @8 p, H9 F0 d
}
; w# A0 _) ~) `4 B- v- A下面插入# \7 F Q9 i2 A+ b6 [6 R
BOOL TextCmd_rebirth( CScanner& scanner )8 b# q. B! F' P) F$ U! B% d
{
( @' W3 [/ S) [- m: d* V: x2 E#ifdef __WORLDSERVER
7 h1 v& f, ?8 g2 o- O7 T7 nCUser *pUser;2 A1 ^+ C, Q& p' u3 Y/ W* [* Z
pUser = (CUser*)scanner.dwValue;
0 P" m8 _2 Y+ O5 S* zif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())3 b' E E- H( y( i8 M* _
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);: ^9 [% I* V# i* W P
else
h( ]/ v0 O& |( @' h! e, T! kpUser->AddText("你还未达到重生条件!");% m/ u4 S% }7 y1 R- L
#endif
$ b S @" Y; {( ~4 d ?return TRUE;' a4 A% i- J; Z8 |! Y/ I6 U1 W
}
6 G7 E+ x+ ~; f, C' g( X
( _3 M3 a. w1 |5 d
) A# J# r9 d) a8 \. n7 J! R' K
7 x8 i* _. R5 P) s; G0 |4 j& D1 N0 Q0 G
|
|