|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, y. T* l; {5 G# R3 Z8 v2 `; V
! u8 ~ r+ }4 A% z% A
Mover.h
# [4 f5 Z6 V, S代码:6 F. M6 e9 E7 s+ }: \+ f
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü z) R- s/ }2 H1 p+ Q7 s
g% M7 m* Q0 @( R( e
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
( ~9 p& U& p8 X6 H) [( f: b) g/ \% L0 | p# a
然后你去mover.cpp添加$ L6 D9 q! F- U3 ^; H2 c5 Q
* R( W; Q7 ?; p. \: l
代码:6 F2 h7 C( m# B/ B
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% @, F8 X" F& j( N* e
{ h" m3 G2 z1 v) s+ S
#ifdef __WORLDSERVER
8 _1 P1 n) [3 m7 x+ d' Q6 j // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: S1 N" S& I% y/ s MoverProp* pProp = GetProp();0 [: [6 ^" e( {, V3 o$ K
if( pProp )
8 N& k6 R. R( _6 p8 i {
- i6 h8 {) `4 H7 W! d% O8 p$ N if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 \. Z# r7 a' z6 i; b4 ~
{
! b _3 q. l) t) x& {2 P AddChangeJob( nJob );
, K9 g/ R9 A* {; j2 { }else{7 y! b1 D9 i7 Q3 Y
return;/ d2 u' m9 Y% B/ N* _% T! [5 k
}
I) V7 q( |+ W int nPoint = 0;
, v- |5 w# x6 h7 ~* C if( m_nJob == JOB_MERCENARY )$ `1 v, _; U: ^5 n
nPoint += 40;
; t4 `3 {, F. c& c0 @' S1 R$ t else if( m_nJob == JOB_ACROBAT )
, c3 ]4 G2 b) p1 l, } nPoint += 50;% h0 k8 b. W1 |8 R. K& Q
else if( m_nJob == JOB_ASSIST )0 ^+ w5 M5 k4 e& e. `! M
nPoint += 60;
$ u- K8 g$ t! D4 q9 a else if( m_nJob == JOB_MAGICIAN )5 m& [' O u; R: k
nPoint += 90; W+ c \7 n% n! S& N/ Z4 _- ~
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 P* d8 o T9 d, S
nPoint += 120;
- o& ^' d3 y% D( M* I. @ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )- ? t5 W- C: z' J/ C1 S% C2 X+ V4 w
nPoint += 150;, w' L9 p0 K9 A4 h. }
else if( m_nJob == JOB_RINGMASTER ): [- V7 C9 P2 e
nPoint += 160;- b5 J% o; L' Y% B- B! ]0 @9 b
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# r' z. e+ W" x3 J9 l& Q( Q; y
nPoint += 180;
5 u: J% D' z/ |/ }! y. } else if( m_nJob == JOB_ELEMENTOR )
& J# X; L, D/ F( g* Y/ |2 k0 M/ l nPoint += 390;
, @0 e7 j4 V$ c else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )7 ^( D5 U6 A6 d9 @8 ^. X
nPoint += 120;6 R2 b$ q6 D g3 s
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
' T4 ~6 B8 x9 Q5 G% q' T nPoint += 150;
& ]6 w+ W0 I {- [, B/ _ else if( nJob == JOB_FLORIST_HERO )
; y: X* \8 {! C+ C, y7 S) t nPoint += 160;. u7 ~$ \. J9 D0 |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )3 |) n9 r6 p/ Z2 x6 C" D- d
nPoint += 180;
- Z8 I# d7 _& k# |5 a1 s else if( nJob == JOB_ELEMENTORLORD_HERO )1 F4 X$ P! n. a2 t+ r
nPoint += 390;
6 \! o2 ~8 X2 o/ V& v
* @- o+ u+ E0 ]1 U6 ~ AddSkillPoint( nPoint );
( K: N4 @5 T/ _7 ?9 Z0 @4 b* V8 p- C$ L m_nLevel = nLevel;
* g# r3 x8 F2 w4 \
' e$ a" O2 t; x1 Q' S SetJobLevel( nLevel, nJob );% u0 p9 V2 M4 z( b
m_nDeathLevel = nLevel;
1 |$ U8 d' B/ }* m8 j" d#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 B4 k* C( Z* k6 [
if(IsMaster())3 t: y+ o+ J0 I
{1 ?4 o" H' G+ U$ Z( V0 }2 Z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, y; M1 s* d8 u% d( `! p7 M
if( nLevel > 59 && nLevel < 72 )* H" k" x3 S" h! w
dwTmpSkLevel = 1;
& F0 n* ], _: S$ r! u6 s6 R7 l% T else if( nLevel > 71 && nLevel < 84 )3 G' z: V* ^, G3 E O5 n, [1 V
dwTmpSkLevel = 2;6 c$ ~- e5 U% r
else if( nLevel > 83 && nLevel < 96 )
4 K0 f! @% a* L3 O6 O$ x3 E dwTmpSkLevel = 3;5 B( C3 `: S. _! z5 J
else if( nLevel > 95 && nLevel < 108 ), w1 l" [6 n% c; E% @; I7 J" M
dwTmpSkLevel = 4;, f" D5 ~ I3 F- w; k, B
else if( nLevel > 107 && nLevel < 120 )
$ U5 Y; i9 g4 b: G1 y dwTmpSkLevel = 5;3 o3 W. v9 S. g- ]4 q# Q& I% f$ \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ A; P I' g# o9 H) x0 { {
0 ^1 |5 C0 N% s9 k! J3 p/ n: q, D LPSKILL lpSkill = &(m_aJobSkill);
6 F- u# n8 z( D8 D if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 K9 T7 m5 ~& Z' i3 ?7 J {
" N; d7 X, H* T. i( b' E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' D: e! ~, ?# D8 {: k
if( pSkillProp == NULL )) B; W3 M0 C2 y1 P: b
continue;; N3 U# \. F3 p+ K$ m( q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 R! Q1 s2 h. f continue;; I2 P" H z5 N; \" F
lpSkill->dwLevel = dwTmpSkLevel;% r. r) `" E2 |
}. ^9 Y6 h; g J! g
}+ f# l8 J! q- o* N5 h$ ~9 b
}
& p7 e8 `0 e1 `* I8 N else if(IsHero())
% P; F* k/ J [; }* z {
" X R/ _$ ~6 q. k R ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 B1 P2 r; y9 H
{
0 F& Z; }5 W- ^& z LPSKILL lpSkill = &(m_aJobSkill);
5 Y) r* _5 J0 F* s( i+ Z2 W' ? if( lpSkill && lpSkill->dwSkill != NULL_ID )$ j+ a ~0 x: r! p# t z$ _
{
2 b. S1 Q. r0 w4 w1 {, {) e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ f# C& a4 w2 ] N5 H6 z if( pSkillProp == NULL )
6 L9 X6 f" R4 A continue;
. p+ H* J- f6 L( O8 _7 R if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 ?$ o+ L L7 \. I" W) B
continue;
' b+ Q7 U" O9 h% E% ] lpSkill->dwLevel = 5;
6 I! L' I9 s) o: D7 l) H }
2 s, K- L& x- S% d# k }" f4 w* ?: |" J, `; u% ]
}4 z4 z6 m( ~/ |
else if(IsLegendHero()) {& K) _2 Z4 I: s- R
{
- E% l7 A& i' x9 U for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! B0 L. @5 W! b% q' |' G) y
{ $ r& F( w8 V7 g$ m @6 A) c( B+ G9 L
LPSKILL lpSkill = &(m_aJobSkill);
o! Y3 x8 G) o% q5 r5 G* E if( lpSkill && lpSkill->dwSkill != NULL_ID )5 c3 R9 l. ]3 v7 m; }( U
{3 v* V& a ~6 T2 k" A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 @6 C. T( D P6 V
if( pSkillProp == NULL )0 n, ]2 r/ \4 S ~) l% g, S( @
continue;
" D7 a/ z" G, ^: [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 M5 y! @+ p1 r7 w$ }8 t, ^
continue;
' c M7 P i- l lpSkill->dwLevel = 5;
$ Y$ r1 g% o# M: o' ^ }! t* H3 B1 t: y9 o" Y W
}: Y% i5 t; |& g$ w2 ]! ?4 M" k
}
% ^* D, {9 E, {/ J0 k0 U/ b/ W8 b#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 s% b" Y# b$ q3 w7 a1 k
if( bGamma )
! Q; Z# `$ S' w" ~ {
8 T3 {9 {/ w& t- @ m_nExp1 = 0;' b9 D1 P1 V7 B- j3 ~
}# Y/ r: _+ H' u D5 M
7 s Y, v1 m: {3 n* d. T+ ~
( (CUser*)this )->AddSetChangeJob( nJob );& B- c) R/ X2 a5 o
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ g& o( @; z. d. k) R' _$ \4 `
( K8 v% E. i, r# O4 s* R7 P7 M
3 q! O6 p# K& O( g6 \* Q: X' O#if __VER >= 11 // __SYS_PLAYER_DATA
! O" h& R2 Q1 \) M# n g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
# w6 V D. q0 j( y2 Q#else // __SYS_PLAYER_DATA+ q" Q$ {7 @4 N! \2 x; U$ \
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* e. ]. b" n7 G- K' c g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( u' }5 f9 D4 \9 ]9 o if( m_idGuild != 0 )
d* T) Q9 h1 i7 H& k: Z w- _ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
. ~5 }: H0 L \5 g T( `8 O#endif // __SYS_PLAYER_DATA
8 {# X' a {% e! I8 a0 q3 |3 } SetHitPoint( GetMaxHitPoint() );/ f* b' J& j: b* p2 K
SetManaPoint( GetMaxManaPoint() );
; R- E' ~6 _. M9 j# O4 ~ SetFatiguePoint( GetMaxFatiguePoint() );
' k0 f) B( O5 d1 |$ F3 m if( nJob >= 1 && nJob <= 4 )
1 D* R8 S% C/ k( d3 }: \" s {6 Z; h# ]: t: E+ L) D
m_nStr = m_nSta = m_nDex = m_nInt = 15;0 [9 m! {. z5 ~% @: `6 g- |; k
m_nRemainGP = 28;
: v; {( v3 {6 v }
7 }6 z3 X4 P+ B1 f9 u9 k7 C( `* ?( K) M if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 K4 G9 |0 d1 Q, U, K {
( {2 H, p$ T4 c, ^: b% x. m m_nRemainGP = 118;
. N/ n- H4 o9 `$ M, w6 d //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; e2 Q5 `$ g5 q+ ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;* n' ^+ O- ~1 |) l' ]+ T8 l- T
}
9 C% ? B( @: @ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
c* L0 Y" q9 N: V7 A7 N4 U) A% s% i {! X) o* Y1 Y8 d7 n% E
CItemElem itemelem;
5 g* q; i; X7 m# P& T- U W itemelem.m_nItemNum = 1;
3 t. S' |2 k* j3 f8 g itemelem.m_bCharged = TRUE;
" d3 c/ V: C; b, j6 Z BYTE nID;
/ p# b; ~4 {. F/ o6 ^8 ^9 F' T O3 z# D/ M
if( nJob == JOB_MENTALIST_HERO )$ q. X& S. N8 ?1 B# _' |% q( J2 O
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# ~: G, X% ], m9 e" t if( nJob == JOB_FORCEMASTER_HERO )! H+ \% [ M, `3 u
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 T. j4 v0 a# b0 _9 ~( {" {1 T' ^& E+ o$ C0 U4 y! S/ B
( ( CUser*)this)->CreateItem( &itemelem, &nID );9 r5 J6 q3 q! G
}
1 P& G# m8 n, m g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# H/ z: N1 x. D
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );. u+ ^, O% O- p5 @# F
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. \' ^5 ~3 @% m2 }2 ]
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
u) z$ T5 v" \& } ( (CUser*)this )->AddTaskBar();*/
# L8 L( b6 Y, r ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );, N J# }' ^2 @0 d0 X7 ]2 M; h
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- f8 y+ r0 ]" E0 L$ {0 L6 V3 H! r
((CUser*)this)->CheckHonorStat();
5 `+ ?* e. r- u3 B$ h3 P7 e ((CUser*)this)->AddHonorListAck();
0 I% z3 b$ p7 E g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ S, w' ]( v+ W: D- v: o3 d6 n8 I#endif // __HONORABLE_TITLE // ′Tà? Q e6 _* P: H6 r
} h5 ?; q$ V4 |; W; U# ~/ s
#endif // __WORLDSERVER
, P9 D% \5 t( Y3 p+ G% x6 t8 W}
0 X4 {0 j7 z' ~. M' y
6 A1 n8 T6 t# s3 M然后你进入functextcmd.cpp并添加以下4 A5 Y' _' B% w, `6 z4 y1 y* V
$ _4 m# H. X* B( H: z
代码:
/ m# ~+ E. H7 _$ \ i( o) l* j$ OON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 A6 F* N. f3 \下面插入' p& H( _* ?% W5 ?
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) + C, s6 ^$ k$ B2 T3 H. L. D+ O
. u2 x$ d r0 U' s/ I3 b然后你去
! @& y9 W! Q: |7 u9 j# m9 @5 e- V7 ? c
代码:
8 U( O# F- r* `代码; S- e% l2 \) U# N1 h& o
BOOL TextCmd_ClearPropose( CScanner & s )
: F8 Q" Q5 J0 X$ t( B{
j# k* i4 C7 g#ifdef __WORLDSERVER
! Q! d. Q+ i8 n' [4 U CUser* pUser = (CUser*)s.dwValue;
5 ?8 i$ Z3 S7 r8 R y4 f J2 A g_dpDBClient.SendClearPropose();
$ V6 k/ n. [# O0 J& g$ y/ @. k#endif // __WORLDSERVER
/ t. u4 J( ]8 T+ R" h. x3 H, @! { return TRUE;
- h$ m, a; ]) d. N5 d}/ t6 f# @6 V5 t) y! A
下面插入
) n) p3 j3 E) ^8 x; l& {& B e( |2 PBOOL TextCmd_rebirth( CScanner& scanner )
7 T# g5 ~9 P, P{
4 v+ J/ W/ A- {7 Y) v, b#ifdef __WORLDSERVER1 L$ z! E Q: [" n% R6 l( E
CUser *pUser;) L. C) d- Q+ e, S! d( y) L6 W& V
pUser = (CUser*)scanner.dwValue;. V+ i3 S3 a* z/ K- p- T' M- v; M, U
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())/ N4 J" B, C5 S! F3 I
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 a" ]7 S: x5 g/ k$ {
else+ i; Q& i1 ~- H# N g( }: y
pUser->AddText("你还未达到重生条件!");1 B+ `( C4 |* Y5 X S* j3 m( ^
#endif
$ ] K8 N# M- L$ x& f) l* s$ S7 u1 Preturn TRUE;
* l, G m' X. z/ j! h/ m8 Z) J} , o% a6 e# n- R% }( L
9 s' h( H! @* n F- w
+ a, n! c& k% ]. J2 Y5 x7 ?
0 h' c- N' c# B# B- V4 E
, H* t6 r; G( _+ k& }0 X4 y% u |
|