|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel* K& Y/ Q. P/ _" u
" |' S, p- h6 h4 z& |
Mover.h
% ^9 c7 V) I1 u% r) [代码:# I" X/ Y4 W4 p6 [$ ~( V, i9 O
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü$ z, M( \. w5 I0 g5 n
* ^9 K2 ]5 \: U
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; o4 V: m) a: B/ ~/ e& N8 e Q
. D# F- O+ x( R
然后你去mover.cpp添加
5 ?$ N2 [0 ?# H0 L* ]/ \
8 O% L7 Y0 M9 k% E: m1 I. z代码:9 X6 `' t" v: V8 I! ^) `3 O& h+ \! {
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )* E" x1 G v' a: w$ C
{
2 r a, s/ q5 d#ifdef __WORLDSERVER4 `3 ?5 |! a" z
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% g$ ^, n+ B2 j9 \3 g' i) N MoverProp* pProp = GetProp();; g B5 w& B7 _1 d) r7 x) c: N
if( pProp )
3 E* X3 `# X i/ Y$ }6 c8 I2 l {
9 t& O& `( ~7 E7 u1 H7 D% w* E+ L if( nJob > 0 && nJob < MAX_LEGEND_HERO )# [( x' p: r9 n
{
. J0 I+ z% F: T" ]3 b! ~ AddChangeJob( nJob );1 U# V$ ]7 f. v' Q! R* e. p
}else{$ w. F) l1 X% H
return;
0 d1 F* p( C V) F% }& _+ k }# |) }/ H: J' s! k
int nPoint = 0; U1 _( {. m: h# E& Y: C9 ~3 x
if( m_nJob == JOB_MERCENARY )
- ?7 L _; H3 ]8 P( H. f* L7 i) o nPoint += 40;
$ Z* B; |$ p$ R/ Z* \/ j1 k8 h else if( m_nJob == JOB_ACROBAT )6 w% I2 j% c3 k% c
nPoint += 50;) E4 v, l2 }' ?/ \! F0 S& r2 x+ h
else if( m_nJob == JOB_ASSIST )
5 m! o7 A4 w( K( g: q9 T2 H$ }3 d nPoint += 60; T% d' S8 F s; }7 c
else if( m_nJob == JOB_MAGICIAN )0 P2 E$ `- v9 o+ h
nPoint += 90;) l$ ^! I1 M0 i. A4 V& J
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
1 t; e, _# Y0 u* [! W: d1 R nPoint += 120;
v8 h2 D# c: ~/ L else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
2 U$ H7 U0 r4 d1 R7 R5 X nPoint += 150;. Q% ^6 t6 |. }+ A$ x |
else if( m_nJob == JOB_RINGMASTER )
1 v( G* F* d+ t( S* J9 \! k* _ nPoint += 160;
7 Y4 v9 R1 U* W. r else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 }/ U4 y" h& g' r5 t6 m nPoint += 180;& q. K; \1 m6 o1 ]: d/ @
else if( m_nJob == JOB_ELEMENTOR )! D/ W7 u H5 |& w. v$ G c, O) M4 Q
nPoint += 390;1 b+ U, e6 v1 x2 }: p
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )1 U& x$ R+ N4 J/ c- C) O( B
nPoint += 120;
" x& ~7 a0 J: w+ `. _& P- Z) y else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). a: h! E0 Q% F: ^7 `3 j4 p
nPoint += 150;
( z/ T, {9 A" b6 h8 [ else if( nJob == JOB_FLORIST_HERO )
! H, Y. i) P5 V) n6 O$ R! w nPoint += 160;/ `$ E3 U- W3 ?; p1 Q! Q! V
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )% X& A; Y* z |. |+ p
nPoint += 180;
' E0 u3 {+ l* K# s( Z else if( nJob == JOB_ELEMENTORLORD_HERO )5 _ {" X) I, k6 n' M% T& i# l$ z @
nPoint += 390;; D1 H8 t0 w+ }4 u0 B, Y
\5 _$ v$ v5 \2 E AddSkillPoint( nPoint );2 h- a' h6 C3 e& J8 [" M3 a+ c
m_nLevel = nLevel;
6 S A' T" i# C' s
1 v- e. ` p$ e1 g& A8 n SetJobLevel( nLevel, nJob );
# u+ X% T/ L% g/ x5 L% w0 A m_nDeathLevel = nLevel;
; a2 x2 Z, x5 _# T$ O1 \7 m! u#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' Z& P; B) v% @# W. Y# q, C% S9 L( g
if(IsMaster())
8 I9 D. V1 E8 n {
- H; x; v: j8 y6 V7 N/ y! M9 V int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( k4 x( o# R& ^9 b+ l
if( nLevel > 59 && nLevel < 72 )
' p% M2 V* ?' y+ ] dwTmpSkLevel = 1;( P) s1 q" O7 g* V' D+ D
else if( nLevel > 71 && nLevel < 84 )
; t9 Y; j' T' F' z. A! K2 ^- m9 Q dwTmpSkLevel = 2;
; v) M( a5 q) k else if( nLevel > 83 && nLevel < 96 )
& P0 p% l- R( n dwTmpSkLevel = 3;
- l4 W$ l1 A. A5 ?; H W5 x5 j, b else if( nLevel > 95 && nLevel < 108 )
2 [7 ~0 a+ G# T1 Z* F% q; _8 ` dwTmpSkLevel = 4;
' [( S% }; v. S# B' H* p else if( nLevel > 107 && nLevel < 120 )* p) `* o* ]' |$ X" r4 o" R3 u& d& M
dwTmpSkLevel = 5;$ Z9 M4 W/ x- Q( k1 i& q- y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) m4 R( R! E' n' w- H% H
{
& b4 l& c8 r8 `6 [# v LPSKILL lpSkill = &(m_aJobSkill);
; S+ m/ N& z8 I% H& G if( lpSkill && lpSkill->dwSkill != NULL_ID )) \" t% a: P0 c8 P
{
, i9 G/ T6 k, z3 X/ y. ^$ O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 K8 {) t; ^/ n& x if( pSkillProp == NULL )
. a! K. I& h7 Q6 F* ?5 a" g continue;
; y9 ~7 w3 F8 Y& ` _/ L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 d$ s, z F2 z' G6 P; e$ z( f" n6 P
continue;
1 U. }: A6 X# Z8 q4 u lpSkill->dwLevel = dwTmpSkLevel;5 a7 C# b) {2 A; |) I7 E7 d
}" z% F* n: E& A
}
r/ ^( r+ f I% P) r }: n$ d3 y! e+ w' Y+ ?: N- O
else if(IsHero())( e1 A& I0 d8 V+ W$ _6 s! v
{% O. G, G- C2 U
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , W! P& i, {' H+ W
{ 5 Z- S& U: ~5 A3 B5 W
LPSKILL lpSkill = &(m_aJobSkill);/ J' e; _8 O5 A" H
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 ]) T" |) V9 M/ f- | {
/ `/ c$ i9 F' U( k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 h7 e0 u z2 u( \
if( pSkillProp == NULL )! I. L! ?+ Z2 _
continue;
5 \- f3 N2 Z3 W/ J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( a# K/ L( h- u- V
continue;% E$ y! |- |, a7 j
lpSkill->dwLevel = 5;( q8 m; V$ y9 m8 `
} Z' S! }, B" M; Q/ c) }9 C; B
}. i9 I: r9 B6 d$ M6 O! M
}
; \3 C+ d/ O, l) I; ^ else if(IsLegendHero())5 G9 L! r+ \% S% Q' l
{) L3 x# Q- ]; f& W2 V
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 e: k% \- D7 } {
& q$ K& i2 N/ y7 O* `3 | LPSKILL lpSkill = &(m_aJobSkill);
6 h& k5 @+ n& R* p% w6 s- @$ Z if( lpSkill && lpSkill->dwSkill != NULL_ID )
' r3 n0 ^# }: Z0 e {
3 k; K3 }$ Y" X( R3 z" [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & B3 Q5 P8 Y9 Y
if( pSkillProp == NULL )
/ }9 Z% u# v6 R9 n continue;) P4 E9 V0 t9 d n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ G+ [ O. B/ o! }) G6 r1 i continue;
. M$ v( @# O j: ~ lpSkill->dwLevel = 5;
' N+ H3 W3 D% L$ L }
' @5 P0 d6 V6 F' m+ @: c }; ]9 d9 B6 o- S/ G' o J5 N
}4 m& n$ p* C/ `8 z- R8 \ j8 o0 G9 P
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 B! U* A8 M% g" D" c* K+ g
if( bGamma )
- A8 j. ^ I. e# n1 p& S' G6 K {" o4 p3 G: x# ~! i
m_nExp1 = 0;
* O* ]2 I3 i, a f& Q# u }
$ z+ d$ P) f( ^5 j7 C4 G/ K6 a2 y
3 r- g/ f/ H8 V1 H+ h! m- S- X- l4 c ( (CUser*)this )->AddSetChangeJob( nJob );" ?% p! u" t( X5 p' u1 H
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );- f, Y% |8 C8 E4 U+ @- n
3 [/ w I% d" P: y; N* G- M" H$ j0 _
q5 O+ t5 G s3 H#if __VER >= 11 // __SYS_PLAYER_DATA# H' ^4 Y1 |/ q2 Z1 a* r
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );$ }9 ~# z8 D: E, M3 h3 t/ Q
#else // __SYS_PLAYER_DATA% u/ c8 V( y% O) F
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. M! P% q2 a5 i# S
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: T4 b. U! z9 F, O8 I$ o4 ]7 A if( m_idGuild != 0 )
0 g+ ~$ u, P2 {5 I" @$ _ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% q! d6 x9 O: q0 `
#endif // __SYS_PLAYER_DATA1 W9 C7 ?( q0 }) ]" S9 e
SetHitPoint( GetMaxHitPoint() );% J7 \4 Z6 m" G M8 t, |( I$ N
SetManaPoint( GetMaxManaPoint() );
* @" I. {7 R: I: ~/ Q SetFatiguePoint( GetMaxFatiguePoint() );3 E- e( x5 ^, Q# j( s
if( nJob >= 1 && nJob <= 4 )
9 U4 C, f# @$ S l3 f5 T {
; E1 @3 F# v7 [# P0 C m_nStr = m_nSta = m_nDex = m_nInt = 15;, V' \% W1 H( _0 ~2 ?
m_nRemainGP = 28;
- }$ T/ B3 I% D! ?. o5 v }
2 Y& F' _% ` B) t: ^; d if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 _/ r$ F7 [ V {9 t. [' J2 c' R
m_nRemainGP = 118;
0 E/ J: r- D8 @% y, Y //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& Z k$ U6 T, S3 ]7 T( N m_nStr = m_nSta = m_nDex = m_nInt = 15;
; j! i+ o3 Y( M0 G2 o' X } K+ s$ V5 Q" o3 T! ~' s
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* _! E P6 j( [
{
# J! k! ~' c* `5 Q4 E! f2 W& R A CItemElem itemelem;/ ?% \1 H6 }" M9 f
itemelem.m_nItemNum = 1;
, l" [! N, n+ W( j. d itemelem.m_bCharged = TRUE;$ J; E7 d3 S* p* ~* J
BYTE nID;4 u. ~2 u/ x6 b, v
( \% A" `7 |4 d: a: K
if( nJob == JOB_MENTALIST_HERO )
: X' e E) A& l9 a2 g% y9 n itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;0 b' x" c& v; O+ O k# W6 T4 U
if( nJob == JOB_FORCEMASTER_HERO )
* u5 p9 H! A S' E* q o: h8 } itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ V( j) V8 @. h3 ^/ T
7 v7 g% O$ E9 J& Y1 | ( ( CUser*)this)->CreateItem( &itemelem, &nID );7 W& }+ Y8 U1 g, G; e
}$ R& v! w2 H R# c; P
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ O- e- K% B3 w. m ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: O$ H8 q" |% o, v1 v ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );* [ h9 W& ]+ A6 g$ }; q4 a* x3 N
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 ?9 q, R1 X* l8 U [% z) ~ ( (CUser*)this )->AddTaskBar();*/5 d: l5 n) Q9 z9 K2 m
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( h' R' ]% L% N- V
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?! p' _1 b% B1 @! n1 _
((CUser*)this)->CheckHonorStat();, Q; X9 \) w, Z4 x; ^ ]0 j
((CUser*)this)->AddHonorListAck();: c7 j4 P9 f% g6 j% n5 \
g_UserMng.AddHonorTitleChange( this, m_nHonor);+ V! f3 \% O! k* {+ P
#endif // __HONORABLE_TITLE // ′Tà?
. k' P4 `, ~% L* G" V }
. `4 j% F9 i$ c) d: ?+ f#endif // __WORLDSERVER% a, q( A- x8 Q; A- ~$ R6 d
} ) _1 y) H7 n% Z
7 ~7 _/ f& ]6 o4 d" t4 L
然后你进入functextcmd.cpp并添加以下# h/ i. I# k o8 O% [
; G; I( \$ W# N! B" O6 w
代码:
( d6 X6 H/ j0 Y4 JON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 ~0 c" V' N& Z% a& p1 B. |下面插入+ k! M$ ?( h2 b3 R9 T3 u, v
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * _* R/ |& q7 G6 ^( F: ?
! w* j$ Z1 O& \" ^) r然后你去
. \2 ~. J) m7 D+ L$ K4 i2 N! G4 j5 H. x$ u. c* X% r ^
代码:+ f* g- I. y+ v4 W" b* d
代码' B! b- _; I4 q& U4 C
BOOL TextCmd_ClearPropose( CScanner & s )3 b2 n8 g$ b: R
{
$ E, E3 E7 y; b# M: l9 f1 O#ifdef __WORLDSERVER
" x6 c. N3 p# b, M& i8 k CUser* pUser = (CUser*)s.dwValue; E- s9 @& A E$ \! j) `2 Y1 L! S6 k7 }3 Q5 D
g_dpDBClient.SendClearPropose();' V ]( k v% v8 h
#endif // __WORLDSERVER
0 I3 L8 g7 L3 T. Z return TRUE;
1 ^) ?9 o8 ^2 `! T* W}5 \- U# u6 j9 h1 E+ u
下面插入 d7 t4 v/ G3 n8 [$ _
BOOL TextCmd_rebirth( CScanner& scanner )5 j4 v+ M' a; _$ J( q) d+ M; F
{
2 J% |; l) g/ }( e5 H#ifdef __WORLDSERVER
# r1 Y! F/ X( Z# Z" a7 HCUser *pUser;; @, \7 z4 k) M3 e; x C
pUser = (CUser*)scanner.dwValue;9 q ]& t+ t- m
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()). E/ Z( F3 B. Z1 t! P8 F! P
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
! f! U2 E3 t9 ?" F: s3 J! Delse0 p0 e, U8 l M
pUser->AddText("你还未达到重生条件!");. {& t/ O1 _7 }& R- @ Z- b
#endif
! P/ t. B' z5 i M8 a# M4 sreturn TRUE;* o# s) j9 a) ^4 t9 A
}
, B" ?: q& Y2 T2 A9 D8 q0 j3 h' }
! X0 f# {2 ?$ k) R- k3 k7 O' Z% e. y2 n& o1 T$ G
v! w" R- G' y' y% }. V9 X
/ k: M( _; Z4 [" |# k" t6 L
|
|