|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 K& h) k& V4 q; F' u/ n/ o4 d
" ~. X. L4 n8 d) a1 zMover.h
, w f7 j: U( K1 f代码:6 A6 x" Y" E, |+ R
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü- f; N0 a0 p7 j5 b! U( c
* Y4 h5 ?0 }1 i. ?: _( t3 n3 ]下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! h% i& x# C' |
+ u1 {2 v6 I, a" n9 I3 n- p
然后你去mover.cpp添加; G, e2 `- u7 P% l# w" Q3 h9 C* b. N
. J5 W! K0 }# I( y/ `$ }9 Z代码:
+ |! ]/ v) |/ ?9 e# ?( U* ?& g. g. zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )" X& E! @& N& F/ F0 X: P
{& r7 `- h* I. f8 W, W% [, j
#ifdef __WORLDSERVER
0 Y+ I/ z* F% J8 b; |* { // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 |8 w8 X5 x6 h# P( ~
MoverProp* pProp = GetProp();
$ S$ T! g. P4 C% c* V4 M. q- y# @ if( pProp ): W- f7 y9 |7 m
{& x( W" v; o& [' ]" \4 T X
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 T$ @0 _( d) U, x {
3 E8 A n( O2 I' p AddChangeJob( nJob );% w# v; a2 S/ m! \* B% f
}else{
! S' ]" d( a$ l return;
5 S/ e' [" K* g- S( w4 `5 S* E% e }8 N6 A/ `+ p- B( ], |3 O3 q
int nPoint = 0;% v: I$ z ]3 ^' ?# E% x9 a8 v
if( m_nJob == JOB_MERCENARY )$ k' _2 p8 X- g
nPoint += 40;
^; J6 \- I# ` else if( m_nJob == JOB_ACROBAT )* ]$ e- V- Z$ v4 x: p0 x
nPoint += 50;
4 B, U/ x6 P3 E) \/ s else if( m_nJob == JOB_ASSIST )
+ s; Q; `! [! P& k! `& q nPoint += 60;
$ F& {/ ? @3 U$ ?8 x else if( m_nJob == JOB_MAGICIAN )$ ]* s: ]0 c1 K& F! V8 e
nPoint += 90;
2 k) h. k7 m4 H' i& A6 o else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 q0 l6 \2 x8 {0 t9 z h# I- `4 N nPoint += 120;1 t3 X) V1 C5 p4 C: e
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
# Y% \6 P* r6 l$ C nPoint += 150;% e! i' _9 m$ S' `
else if( m_nJob == JOB_RINGMASTER )
! l6 G( o# R: W, p nPoint += 160;
% ^2 {" B! y, p else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); \* s4 k- q) u6 W
nPoint += 180; Y. X: f& M. `
else if( m_nJob == JOB_ELEMENTOR )$ N x) q! ~& I. z8 V/ T
nPoint += 390;' R7 u- V( p: F& x: `8 z9 M
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 h" `/ `6 N! l% f% Y- C nPoint += 120;
8 ]! R: r, I- L2 c$ e) o( ] else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 R# V. C2 e4 P( n& v nPoint += 150;
) Q+ b& q6 P. T0 l else if( nJob == JOB_FLORIST_HERO )
7 `! ?& \" V* q; Y! n$ l7 F nPoint += 160;
$ V) [3 x# U; P( T else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); W* P2 h- F( B: V3 U
nPoint += 180;
; T5 |5 M9 c/ _/ C- n+ ]8 r4 X. \2 X else if( nJob == JOB_ELEMENTORLORD_HERO )
) Q- ^; A# H3 t! Y nPoint += 390;
% ~! `( o0 k& i. w) ]& u+ n
) c; P8 {5 [6 } AddSkillPoint( nPoint );/ E* H7 n; Q3 R) p
m_nLevel = nLevel; [5 b0 l. h) i4 Y M7 w
. ]# k9 X* q1 }3 B4 D0 P; V
SetJobLevel( nLevel, nJob );( Q2 Z' y7 U7 m
m_nDeathLevel = nLevel;- ], Y. ~. H; w4 t. M1 e
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# H- E; \ {$ g( [. t& {) z
if(IsMaster())
2 j& K/ i: L9 O4 d* ^7 v, P {6 H- d* w8 H1 `% V& E1 |( s( B
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) Q, C; m0 E- u. R. { }. p if( nLevel > 59 && nLevel < 72 )& `! V8 H9 w6 |3 z+ a8 h" u: G
dwTmpSkLevel = 1;
: ]: E e& S# }: a5 N/ @ M) C. u else if( nLevel > 71 && nLevel < 84 )
8 d7 U& x, C R3 [8 S dwTmpSkLevel = 2;
9 r B+ l$ L. W, U0 b7 l else if( nLevel > 83 && nLevel < 96 )9 H* U8 l, ^' `0 c
dwTmpSkLevel = 3;( q; [- M" j% F( m5 r1 t
else if( nLevel > 95 && nLevel < 108 )7 |4 o; o- P, i4 m! {' |& u
dwTmpSkLevel = 4;
, q& F& K4 Y6 L3 `1 M else if( nLevel > 107 && nLevel < 120 )
. R& |. d4 Z4 f( q8 C dwTmpSkLevel = 5;' G! ~5 l7 w$ r0 q: P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : e9 `1 \. N( x
{
( Q8 s) z$ C4 I, K; ^! ~! h LPSKILL lpSkill = &(m_aJobSkill);2 L8 l: V6 u8 o3 E5 ?+ N
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 s, q1 _2 d" w7 i. _
{
) Q( p0 c# |( l, F( B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# S9 U& @8 P% V/ ` if( pSkillProp == NULL )+ R8 o( b ?7 V- V
continue;
. V. H X/ R! t; Y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" O6 V/ B! W/ n4 E5 R( L
continue;
( d% S8 E& U' ]3 c- W& E' a lpSkill->dwLevel = dwTmpSkLevel;
) T/ U1 e1 q( B# B; G* b/ d }
# D3 C, l! ?1 B" L8 |5 t, |3 V }
: D! J7 d' u8 ~4 r9 X: T9 M" A }" k# o3 i6 j2 `
else if(IsHero())7 ~/ a4 _% r5 A( g5 K
{# h! t7 r6 V, d6 B0 n: t. B# y# g
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 P# \3 Q, G! a+ ^& j# k
{ ' \) S! K2 H& l7 i3 x
LPSKILL lpSkill = &(m_aJobSkill);# F' b+ |7 E2 i
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; L8 ?. z! E" M* Q- B5 { {
1 ]) P# {) \, ^4 ^3 @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; e) d8 C9 ^( S! m
if( pSkillProp == NULL )
5 {0 j( M8 t. b continue;! o7 D) A, a, ^' \) ?0 p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 ]/ I; b" W6 Z' r# | continue;
8 U5 c' W, i- {9 m, a9 c lpSkill->dwLevel = 5;
( X @( _( G) }% C }8 c" Z) @0 T5 V
}! N6 Y0 C- x3 u+ U6 }. x& C3 m
}
2 `% j- m8 L% p else if(IsLegendHero())
0 d( ?# u# `9 b0 k {
5 D( C8 i1 T% V for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ \2 Q8 a; ?( } { 3 F5 z. N7 O- A$ n
LPSKILL lpSkill = &(m_aJobSkill);
( [5 w0 |/ L0 z- @/ J1 ] if( lpSkill && lpSkill->dwSkill != NULL_ID )
! {; K" ]2 {1 T- x, j {( u) P) Z+ m3 F5 P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / M8 U- T0 ?5 Z! y
if( pSkillProp == NULL )
{% s+ g8 Z6 Y$ U continue;
* ~, U: I- l! s: Q. w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# E, _, W0 i2 r" K0 n" Y# C* h6 W continue;3 a- X7 e( a1 O& v: ?+ y6 C1 i
lpSkill->dwLevel = 5;4 @2 {& @, q" k- Q( k: i; _
}
- r5 d' K+ k X }
; p6 ~1 j! ]! m$ ?# j) R* E }% ?; l4 z- r2 M! S
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* S0 ~0 _$ a- x3 L# s6 E8 ^8 { if( bGamma ), W: p4 c5 W. q! X6 Q
{
8 g7 b9 ~6 ]: b! M4 [- u# I. Y m_nExp1 = 0;
4 {' O5 |# @# n$ |8 q/ i3 d T }
" H' c7 V4 u) p! S7 H+ F, o8 v3 [- U% O6 [
( (CUser*)this )->AddSetChangeJob( nJob );( O. ^( p1 I0 `0 p3 Q3 o9 N. m
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 x3 j e2 X6 g
- S$ Y) e$ e; d# z" B- j3 {2 y5 E5 |2 o0 n4 j7 W" U
#if __VER >= 11 // __SYS_PLAYER_DATA" k! W5 j6 ^4 a/ D' ^
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );: N8 A. s: ^6 ]7 C$ o2 V$ e- e
#else // __SYS_PLAYER_DATA
/ O+ f6 j$ s: C g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ f# L$ ]: V6 y. D g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 M: \4 o1 o! T- {
if( m_idGuild != 0 )
( V; c6 @, U+ h \3 T) a6 Q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
- Y' N2 }/ s t( U& s#endif // __SYS_PLAYER_DATA
0 m( s! w* N8 B SetHitPoint( GetMaxHitPoint() );8 u8 t0 t& `$ z. V0 F5 I
SetManaPoint( GetMaxManaPoint() );
+ y0 `8 [# G! l: G1 v SetFatiguePoint( GetMaxFatiguePoint() );/ Y5 i8 k* p- C. ^
if( nJob >= 1 && nJob <= 4 )
* l7 h- W& Z# e9 M" ^) M9 @7 G# F {
) a% V/ V* Y0 ^8 C, z m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 z$ w3 f) ^0 ~& ?9 D7 D$ D+ s m_nRemainGP = 28;
0 n" G3 s! _. [ }+ B3 B) m/ ?4 r1 D, B$ c% n& ]) e
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
$ B, O% j5 D; V3 P/ L3 }0 a {3 S& S$ ?: d- e
m_nRemainGP = 118;8 x, H0 E: y: e% [, j. x5 g% j! h. p
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: B1 Z1 `. H% J+ s, E m_nStr = m_nSta = m_nDex = m_nInt = 15;
; X) p7 C% F$ ~ }
/ t( Y, |+ M$ `6 t if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 G0 l* d+ }: E# }' c8 W. Y
{ i3 L# i# x3 }0 ?0 i
CItemElem itemelem;2 Q7 E; d U4 [+ z' y$ T
itemelem.m_nItemNum = 1;
" N* e3 s6 T' b2 z; p itemelem.m_bCharged = TRUE;
# p ~$ q4 b9 k! r } BYTE nID;
x8 ]4 C$ f, U6 T1 k# J' E6 e5 P
if( nJob == JOB_MENTALIST_HERO )! w) s! N3 _% q. T
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 Y \) S* ~9 i, I7 [
if( nJob == JOB_FORCEMASTER_HERO )
% K1 E% W% C; |* V/ w4 b% k itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
" ]3 w0 V+ A8 ?# {" R& w9 E$ [% ~4 L$ k5 W f. s
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 d9 g0 s1 Q- E" x% E: ^
}6 ~0 a! x5 G$ H- Z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );' i+ T# m8 a, p6 D4 G) Z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# q8 U, o9 }. E/ O ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );( S4 M) `+ o* r, Z7 ~, g/ c! L0 w
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 `% G" p) P2 A2 O f) I/ L0 p3 j6 Z ( (CUser*)this )->AddTaskBar();*/
, {7 G4 y' r' O ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( y- Q7 i* D3 O {
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 j' g w5 c+ h. D
((CUser*)this)->CheckHonorStat();- e3 ^" y9 d. N4 W! n* A' N$ X5 z
((CUser*)this)->AddHonorListAck();
. p5 ?( O+ H2 e+ p+ m% b g_UserMng.AddHonorTitleChange( this, m_nHonor);2 a& |- X2 Q {7 T& y( y* C
#endif // __HONORABLE_TITLE // ′Tà?
$ ~2 m! P0 @! M+ p8 G( H& D( v6 j( u }
) E A+ i0 j) [1 R8 \1 Y#endif // __WORLDSERVER
; Y6 h, t0 r) X} & N# w$ J7 G$ I
& U: G0 w; T1 ^( ?
然后你进入functextcmd.cpp并添加以下, @4 ^0 ~# t( v) j& s8 z4 Q. e
0 A, L% W3 a5 f' h. {8 ~( e k
代码:8 ~) l+ c+ K2 j' }9 o
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )* J6 H# |, @5 r) |1 h! w" d
下面插入- \3 `( y7 \: X1 D
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# q' J3 A( b' A1 q
. `9 R1 T& c9 y) Y0 i2 A; e; i然后你去
( d( n% Y( X; R6 h9 T
5 C- u! ?7 Y( d u- L代码:# g! J% _! F: H7 d7 q5 c, Y
代码
3 q: U% N9 u3 h( h0 sBOOL TextCmd_ClearPropose( CScanner & s )1 ]) |. u% O4 k8 `
{
: U/ g! h. W5 P#ifdef __WORLDSERVER
3 D! R9 o- e# {/ m- U CUser* pUser = (CUser*)s.dwValue;+ ^6 d$ V* r+ F& i9 v+ g2 W6 f& N
g_dpDBClient.SendClearPropose();3 \6 k; t/ m1 x+ `8 A5 J& B
#endif // __WORLDSERVER3 {9 k. w7 o* X5 q; [/ R# A7 e
return TRUE;+ V# r0 y- z, V1 Y# m. L. m
} ~4 Y# r5 ~! Z; F; _
下面插入
6 ~+ S+ ]" Q5 SBOOL TextCmd_rebirth( CScanner& scanner )* V2 F1 v) i8 _8 B; H o3 N
{$ t- j" ?7 m% y
#ifdef __WORLDSERVER. K" V6 w3 r" A) ?
CUser *pUser;) ~/ t/ h: Y; D
pUser = (CUser*)scanner.dwValue;
, W) |: Q7 R) L; Z0 B/ H) jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())1 G' ^& o8 T& P1 p
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 u. i+ p0 T3 y) M. G! b3 _" I, Kelse9 S9 _2 e. T( c: ^
pUser->AddText("你还未达到重生条件!");/ Y/ t7 W* y; m
#endif
- ] g; W# y* Freturn TRUE;
. v2 G3 z% `/ b+ u9 {' M. G}
* |; O6 p3 J9 ^) `8 \4 x9 z( {( H8 V4 F7 ` F# E. Y2 m; C
8 ]1 k0 e/ B) x+ ] m" M
8 p$ N) M3 i6 p b8 T4 M
5 A0 n8 ^9 \; i9 I/ z N! }! ^& n |
|