|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
" k8 i% u' ^1 B* T( d' L: H; d3 F
" C2 T/ _$ A5 r0 a; pMover.h
& L! i' u& e& l' S' v- t代码:
0 b0 N# U4 i6 `9 w+ n找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% S2 l9 b0 `7 i4 d
7 V$ \, V" \& ?0 y下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 0 V1 _5 I8 V, H# |, @2 y5 ^3 n- C, l: i
% h9 ]9 O$ i" A, ^8 t" B8 h
然后你去mover.cpp添加# d3 T+ I: q9 i- z
( n6 g& ^1 b7 e2 _' l6 ^5 Q: y代码:9 H/ ^1 I# F; `8 ?
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' |. O/ k% }- X) l z! B: n
{1 K" o4 G" o2 s" ]
#ifdef __WORLDSERVER
) w9 E& J: H4 h // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( k9 s4 d" s4 {6 }8 b) ^! T
MoverProp* pProp = GetProp();
# \+ P3 _) [# B% ~, T6 n0 [3 w if( pProp )
$ W0 q. v: }5 K o {
: q7 k( j4 g( j+ G7 |5 s/ g if( nJob > 0 && nJob < MAX_LEGEND_HERO )' {3 R. I3 g; e$ @( Z ~
{
. t6 l! G# p. p+ i# s2 V; E$ g" S: N' A AddChangeJob( nJob );
2 b/ `: t: Y# w2 N- ]5 ]+ P& O }else{
2 n! r1 L3 u, m% o) d" R+ \$ Q2 k return;
% Q' H* W/ D* i0 L" W* ^; A6 c: u# F }
4 M! C: Q# d) W$ x4 X* v7 _2 O int nPoint = 0;
) k8 }' ^7 y3 J8 c! L! ~ if( m_nJob == JOB_MERCENARY )9 ?& w/ D6 m( C9 V" @+ d. ^
nPoint += 40;' n8 p* } q' ~6 j8 }
else if( m_nJob == JOB_ACROBAT )- f% R) L$ ] A/ {* E
nPoint += 50;
' b; |0 `) {" l. p" N( v$ E else if( m_nJob == JOB_ASSIST ). w5 K4 z; ]1 m Y4 A" U
nPoint += 60;# n) n. [. ^; Y- F- w$ D( o
else if( m_nJob == JOB_MAGICIAN )
( z% v' t9 A. r4 d8 ] nPoint += 90;! m1 A/ H I9 _" C0 f2 x$ N
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ ~9 C! ?9 }& {: `3 { f
nPoint += 120;
& i4 V0 |9 t2 Y8 G. N9 Z& o+ G else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( |$ {, c7 p6 Z% z" z* ?8 }# U9 { nPoint += 150;
( O# U- z7 K; C; Z6 b else if( m_nJob == JOB_RINGMASTER )
% r0 J; c6 ?2 n nPoint += 160;9 N& D5 v! Y5 w3 H
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' u' \! U3 @- n3 L9 F nPoint += 180;
@5 z o$ `. k- G else if( m_nJob == JOB_ELEMENTOR )
$ n- S+ M' J( F7 W& Q8 G/ ~4 { nPoint += 390;% A/ C* B2 A/ X. Y$ R$ c
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 z0 R! y& ?' I5 w0 n# E
nPoint += 120;4 o; Q5 B7 S8 l. F1 G( z. I
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% c: C( \* Z( P7 K$ t2 f4 s
nPoint += 150;# }, H4 b/ S/ V, ~* F
else if( nJob == JOB_FLORIST_HERO )
; m5 ^& [- E; z U! _9 q9 l nPoint += 160;3 s# |8 C/ u4 Y
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ E' [4 t# d: @+ S
nPoint += 180;
9 Q m- T+ |1 p( U else if( nJob == JOB_ELEMENTORLORD_HERO ): i1 Z; F3 X" q; o, ?
nPoint += 390;
L1 v" k/ D# s; L! Z6 n* G' a) W9 m1 {1 ?. D3 s6 W
AddSkillPoint( nPoint );/ M8 t. i% G0 Y( i: T* O' q; P
m_nLevel = nLevel;8 ]& F0 I, Y% a4 ^6 R4 b( c
, j0 ~; C4 n* ~7 W2 W; v" w% d SetJobLevel( nLevel, nJob );+ s7 J$ |6 i' m7 G* N
m_nDeathLevel = nLevel;$ M! c2 X1 T7 V# M9 q- h: u5 z- f) `
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 e+ V& V! Y' E+ h0 F1 S
if(IsMaster())
) A% ^% L+ N4 o* ] {
1 i3 D* q7 ?! O int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% z% A' R2 `/ w$ t7 _' S if( nLevel > 59 && nLevel < 72 )% A$ ~& s+ K3 ^6 j N s2 C
dwTmpSkLevel = 1;& m/ T' z9 q3 E+ a; [; F
else if( nLevel > 71 && nLevel < 84 )* C# \6 o; S9 t1 t
dwTmpSkLevel = 2;
0 W G. r' O: }( @/ a/ C1 o1 \ else if( nLevel > 83 && nLevel < 96 )
% K/ ^1 K' \' S# C1 R dwTmpSkLevel = 3;; _+ M8 d( u8 t9 U( j
else if( nLevel > 95 && nLevel < 108 )
, t- T: c) h) N U: ` S% M( k( P& P dwTmpSkLevel = 4;2 h( V4 p0 R0 L S y; G
else if( nLevel > 107 && nLevel < 120 )
5 n9 t# u8 ?7 q- ]& a8 b( x- h2 l- { dwTmpSkLevel = 5;$ ?5 ~5 V# Z k$ @$ @( p% J
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # c7 Z" d; Q ?
{ , A( g j4 {# @$ c1 o# L7 O: \7 q
LPSKILL lpSkill = &(m_aJobSkill);
4 g3 T; ?1 v. c1 T0 k0 v$ m if( lpSkill && lpSkill->dwSkill != NULL_ID )7 R/ u/ v. ?- L6 s
{2 i# V) K, ~3 X5 |! v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* H2 L5 J! z I- L6 ~/ R& ` if( pSkillProp == NULL )0 f7 y: u: t3 ^% y
continue;! [4 I% Z. J& {: u2 {' Q4 G/ h
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* O% m/ Z. j1 g# |3 W4 s' B9 d continue;
~. L i0 R$ Z4 u7 @ ~8 p lpSkill->dwLevel = dwTmpSkLevel;
q2 V$ J4 w6 S( d/ x* [2 i }
0 F! T; q/ ~+ h8 n! E2 I+ Y }
. \) |5 C3 j( ^ }$ V- d [- e/ M/ U
else if(IsHero()); k9 t/ B8 }4 B5 l. ^/ D
{, `7 e" m0 ]$ w7 W) A
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: \% l( K1 L5 P4 a3 L( c+ w( r { ! F' d4 Y* o2 Y- ~- o5 o" w
LPSKILL lpSkill = &(m_aJobSkill);
" C4 }% p+ P0 S; @ if( lpSkill && lpSkill->dwSkill != NULL_ID )% i7 w1 d/ \" e( ?' `9 M9 j/ \
{7 m2 L# e) Y" t( b$ R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' G* S3 g5 V+ j$ k- F# `7 V4 d8 A& U if( pSkillProp == NULL ) x# a# J% P% b4 ?
continue;
* ?3 Z0 c" h- J5 j( N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# Z P! Z4 Q$ P& ~7 F. y continue;
6 c( D& m% `/ z lpSkill->dwLevel = 5;! m% D8 W( u! S
}2 V2 j2 G- C: ]4 T$ t
}
7 e5 s' W/ [4 l- n; R }. D: V! z+ k! V
else if(IsLegendHero())
$ S: I, l) i1 u8 |, ^) C# C {6 w9 }( W+ [8 s3 V- Y' _1 Y5 ]
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. E7 @/ x! S% h$ L s% Y1 W H { ( _: F. s8 l7 R( ~1 Q* ~/ T
LPSKILL lpSkill = &(m_aJobSkill);' ]% I# `8 R- c6 a6 n
if( lpSkill && lpSkill->dwSkill != NULL_ID )' _/ O; l! L! S' `' ]/ J3 ~
{
! d7 H+ j" }" V) } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 h1 _; M# M. O& D, K. K- h if( pSkillProp == NULL )0 P9 U6 L! U1 s! C8 H
continue;
9 ?5 j$ c1 F( ~* E4 S; q, ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 M- A9 B% Y, |! ?. x. z1 U: w D continue;. f+ k( d6 ]3 }; ^( c y/ P
lpSkill->dwLevel = 5;
: f/ d/ f( F5 t! { }$ w+ V/ h, n" m8 x( z: J
}' P! B7 b) L6 V/ i. o+ y }) q! e( Y
}
/ V, N# [- a1 B9 w& J#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 `% I+ G, \+ T" C; w# y8 M+ s/ h' M if( bGamma )
2 Z8 w- u- n3 y3 I( {# U7 n! u {
& z% u( H8 W+ T) B: t m_nExp1 = 0;9 l2 i3 e( P6 D8 B! E
}
# d, a7 u a2 ]/ [6 ~" s0 I: ~% R
( (CUser*)this )->AddSetChangeJob( nJob );5 s+ P ^. Q0 p. O' I/ a
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );( @( z! c0 R- o, S: A
0 S. `. x# L' Z& j/ ?3 r5 v6 p
1 R1 [ V& H% R6 _( _6 w# z#if __VER >= 11 // __SYS_PLAYER_DATA0 o: T2 M3 w+ N
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ A+ M" X/ G" L8 d
#else // __SYS_PLAYER_DATA8 Z7 @, y j( D
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& _3 L9 T7 R; g8 } x$ N; i g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, l; I- `( l0 M- D: ?3 v if( m_idGuild != 0 )
5 T8 q! g% @: n% I b; P g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 b; U# z, W8 T6 ~ e( u#endif // __SYS_PLAYER_DATA5 u$ A. a$ h/ \' l$ q
SetHitPoint( GetMaxHitPoint() );$ e* b: z% \: ]
SetManaPoint( GetMaxManaPoint() );/ x2 e+ L# `( b4 V5 I: A! q
SetFatiguePoint( GetMaxFatiguePoint() );! ^" h h9 q: W+ J$ h
if( nJob >= 1 && nJob <= 4 )& u# D6 ~6 j$ h! M
{
" _5 c- w! T5 E1 X, @ m_nStr = m_nSta = m_nDex = m_nInt = 15;5 a- K2 I0 o: X
m_nRemainGP = 28;6 }0 V5 H/ w1 W. M0 [
}8 j& U5 v1 @, c
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# _" F2 S9 _' P1 |( e' \1 f* ^ {
/ d8 U! P/ n: q2 r- ~1 r0 d m_nRemainGP = 118;/ }4 M6 b& I8 B. [3 r, x5 v: l
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ S5 F+ F, Y2 M& U1 n m_nStr = m_nSta = m_nDex = m_nInt = 15;. \! `- L6 y+ g- f
}
7 B* u* G2 `* x3 K6 m5 w* j if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- ~, x. n7 t6 r- X3 V! b& |
{5 `! p) _4 ]0 K6 u
CItemElem itemelem;" `5 i5 A' g. H
itemelem.m_nItemNum = 1;
3 S0 |+ r5 T7 `* f, h7 y itemelem.m_bCharged = TRUE;. P# h$ g. P1 `) v& [% s
BYTE nID;( y* e" l# m$ B+ y( e0 B
5 z' A& U% c) o- C% C6 `
if( nJob == JOB_MENTALIST_HERO )4 h2 w4 q. Z. G0 V c
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" s. G9 g9 |. G! Q2 A if( nJob == JOB_FORCEMASTER_HERO )
. @/ m2 W. N5 m7 x0 L1 b itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. j1 Z: |, X$ @' F3 w+ D/ p; ^/ I$ s
( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 Y7 f" I2 N3 F W& O }
/ s- D+ c- ^8 P3 w# h# O' A- e g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
0 b$ r2 U% z# }- S% c5 C% B* n. k: h ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );/ e8 t6 n H- Y( E- e6 z% f4 ?% C5 [
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- y1 |: ?. a1 C3 }9 x( Y i /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
2 a/ [; d9 E# M" ?4 {; l# |; ~6 h ( (CUser*)this )->AddTaskBar();*/
3 U7 n2 B7 b5 ?9 Z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 w0 k0 c% [) u3 b#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
/ f4 a" N6 V; c, Q0 l ((CUser*)this)->CheckHonorStat();( O4 u( q, e( S ~
((CUser*)this)->AddHonorListAck();; M! ]* _& t4 D N
g_UserMng.AddHonorTitleChange( this, m_nHonor);
( T1 M7 ^- d' ^* @#endif // __HONORABLE_TITLE // ′Tà?
# l( z9 D) y4 c }" n+ |, G) X- m* k7 q
#endif // __WORLDSERVER! K0 _# S! w7 t4 }
}
' ?$ ^" s6 w7 `1 U* j" N# @
* J1 {! {5 s1 b然后你进入functextcmd.cpp并添加以下
% U, {! e0 b$ q* X; l3 _7 B. m* P( M
代码:
2 m5 x. @. R$ B. y5 R0 c. hON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )! ~. {9 E& D, ~+ D6 P5 O2 M
下面插入
0 ?, s* r+ P6 @ v2 {: K6 SON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . w! p5 o$ e* i5 S7 |; B
0 }# @" d D$ h/ {+ w然后你去7 F+ r1 G) T3 B$ P8 T& I
. k E. x+ B+ L4 S7 h, r代码: \% A4 i' _/ p: [
代码
$ ~! M# W d6 O+ m! X( rBOOL TextCmd_ClearPropose( CScanner & s )
, P7 T5 M- r B# d" W; a; M6 e4 ~% b{
8 y0 Z* @/ a$ t% Y: x3 E) I#ifdef __WORLDSERVER) E2 l4 q# \$ b* s
CUser* pUser = (CUser*)s.dwValue;1 r% K* `( F" T6 D! }
g_dpDBClient.SendClearPropose();7 U* `$ @7 n+ g2 `% }
#endif // __WORLDSERVER% e/ Y& m! S8 U2 s; F7 Q3 e
return TRUE;
6 a& P( Q2 y6 b' k n6 `}2 s s F& _9 I$ ?, a+ J# _, r
下面插入* k9 B; q* v' x, L
BOOL TextCmd_rebirth( CScanner& scanner )
2 U2 X" L9 i4 g( K$ m{
1 G6 f k G y( j* l#ifdef __WORLDSERVER. V. _2 a, l0 s! y1 B. }% s
CUser *pUser;
" r! f, Q) q4 _' h, D" q; K: _pUser = (CUser*)scanner.dwValue;. f% }, h: z) _! {( ]8 @
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())9 Y+ y4 G7 I# ]+ W1 W9 M8 s
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, ]/ k |2 S3 r8 p6 X
else
$ T( u9 k" W/ _$ `pUser->AddText("你还未达到重生条件!");: E! R; N/ e! U- u$ I i& U8 e" Q+ K+ V
#endif( S$ e$ q0 P( `9 l
return TRUE;
8 e' c4 y6 q" [ X6 R6 e1 u; z, V7 r}
( N# L0 E, e- M. X3 m
" i* T( [8 H. e" f3 _4 Z
I5 c& Z( W+ V, m0 A2 O. [7 i: Z* D- M8 g7 u
8 N* U1 |: p. b/ R3 s) E0 v
|
|