|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* |0 R, ] L* h" Y: P) s' B: r4 [) O8 ~1 a* J' b1 M! n% u9 Z
Mover.h
8 X* y' {, M; x8 i9 Y5 G% e9 ]代码:
: m3 b& U& |" c3 U- L找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) k: H9 Z4 S8 G0 b! s
) u, L3 I4 H6 E: S下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 i/ l. b% A9 ?# f# C0 H$ P+ y# O E
* `# G- K1 c6 C9 G. c然后你去mover.cpp添加" K8 C7 \# V0 j7 U# T7 ]: ~8 V
& w7 i1 z2 O. [5 X! [9 x$ Q1 ]$ ~( [代码:
& U) ~) k9 s+ r- b; b: J5 h" yvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )7 u. }4 m' n" e
{
. `" O, [* S* ^9 z# w( b$ S( `5 C#ifdef __WORLDSERVER0 f! P. D$ T* v1 l
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
6 {+ W3 T1 E+ t5 E/ u* s# R MoverProp* pProp = GetProp();, {6 D1 ~- M5 f) I/ u& k
if( pProp )9 b* e5 x: k# |) y
{* {( j5 k- @* J3 v/ r/ G* j" u
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
: V0 ^8 m7 z- @( |8 } k {* M1 V+ @7 A& K& }9 m* t0 y: s, Q
AddChangeJob( nJob );( ~0 @. o0 q. S/ ?
}else{. d0 l2 H! `% N% L. s$ B. K( S% o
return;; B% a( b+ Z: `
}, R& G: _2 |0 |$ y
int nPoint = 0;* H a5 t& i; O3 e% O+ p( Q4 \) v* f
if( m_nJob == JOB_MERCENARY )1 W+ p3 J* O# Z2 j2 d
nPoint += 40;
4 g B( d* Q5 Z4 T5 K else if( m_nJob == JOB_ACROBAT )# q* k2 ]9 P( @$ F7 T! L
nPoint += 50;
5 e9 \' @1 g; D& }8 Z# I else if( m_nJob == JOB_ASSIST )) \, [6 w8 w- p2 }0 ` j
nPoint += 60;
: v+ @$ d( m; p" B* P4 \, H else if( m_nJob == JOB_MAGICIAN )& T7 i' `; f! b) j) ~/ W$ M
nPoint += 90;4 `* g3 T+ i, x
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )1 Y; q! f" u2 e
nPoint += 120;2 I, ^. H+ [' ~' y$ w9 K5 e7 ]! ]
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 \8 _, v" X" u# S. O nPoint += 150;
0 ~ F6 W1 t( \. N' A else if( m_nJob == JOB_RINGMASTER ) i. W% E4 z/ W* f" S4 S
nPoint += 160;
) k8 v) X1 ^+ p& B' l/ R else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" V u q. r8 }
nPoint += 180;% x" ^# M; a6 }( i
else if( m_nJob == JOB_ELEMENTOR )& ]0 l& T8 v- P7 v# P
nPoint += 390;! W' f! Q% ^3 t* b* T
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) g% O, M/ f; W# k0 d, T" i0 L
nPoint += 120; l: a* P7 f5 `1 z# G6 m: L
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% ], e2 f% U9 l: C; O nPoint += 150;
8 J0 d3 ^! j$ \5 @/ ~ else if( nJob == JOB_FLORIST_HERO ); Q4 e5 }7 H- l" H: w8 \( \) N
nPoint += 160;) f0 q+ H, i/ `2 o5 C, E( @% G3 Y4 T% S
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 s) x. I3 M; n! W. u nPoint += 180;" K! z' ^& R; J2 b& b3 c6 Q3 v
else if( nJob == JOB_ELEMENTORLORD_HERO )+ D+ d$ H; y) G& m
nPoint += 390;
1 e0 }) n+ c7 U" @0 z
) K+ a4 Z6 H0 v( Q7 e" p C AddSkillPoint( nPoint );7 o. I0 H5 y1 s/ p
m_nLevel = nLevel;
: ]# p9 z( p; O2 j$ @% U; r
" w; S6 R7 x2 N7 h; n6 x. P, H SetJobLevel( nLevel, nJob );
7 C* ^6 y: B/ f9 t" h. I# a m_nDeathLevel = nLevel;
6 f; m7 Y3 r5 A. s; u8 n#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- y' E8 P9 ~% {9 w; x) V if(IsMaster())
$ j1 E7 K Q4 ` {- l* ]" f/ j Q% A& |
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108/ X8 K0 |# V0 X: R
if( nLevel > 59 && nLevel < 72 )) X7 e5 ~; Y1 ~6 P% H! m
dwTmpSkLevel = 1;
' C$ x) N2 l# \& A) y6 f: _ else if( nLevel > 71 && nLevel < 84 )
9 n3 _, c2 L% i) S dwTmpSkLevel = 2;
' o& N# E6 p$ Q/ B O Z else if( nLevel > 83 && nLevel < 96 )# S" Y* ]" ^$ F
dwTmpSkLevel = 3;
% S8 P6 V8 a2 |$ g7 {/ Z! p4 [ else if( nLevel > 95 && nLevel < 108 ); {, j- R" h: \: o- b9 {. p7 C
dwTmpSkLevel = 4;; g6 u! m. x( [2 s
else if( nLevel > 107 && nLevel < 120 )4 N! Z: v# f4 u7 Y M4 P" |& y9 i
dwTmpSkLevel = 5;
- d1 w8 b" Q; m* j for( int i = 0; i < MAX_SKILL_JOB; i++ ) . w* W3 `/ Q7 q- m5 {$ L) @8 \8 F9 j
{
q5 |0 c) w/ i# _& l4 F* ~$ u$ h LPSKILL lpSkill = &(m_aJobSkill);& W' P* b/ |4 K; V: d
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 W" H/ g. y0 ]
{) l: J) f* N' r9 ?/ ~- V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 C8 h$ u( }" n2 K if( pSkillProp == NULL )
1 u" M4 g: B, o8 Q0 D: L. Q continue; k0 ^4 c5 b+ ~4 m1 [- i; x, I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 ~- k1 p1 I8 `1 [; w, ` continue;
! p" p+ L6 K. T# j! w+ A7 T lpSkill->dwLevel = dwTmpSkLevel;0 j z: T6 L6 w
}
: Y, G. H8 N& k3 N2 J- f }
# P- r6 T/ Y- x+ q4 x) O }
/ c. Q3 [0 T* h7 d9 g else if(IsHero())
4 [$ y# D/ E! p" `* C6 O6 O- [ {% f2 P( l8 l' B
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! g7 G3 D0 z& i e
{ ( W* D* X6 F/ r
LPSKILL lpSkill = &(m_aJobSkill);
. L& ^# g5 s/ _5 ]4 Y! ~ \* V* k if( lpSkill && lpSkill->dwSkill != NULL_ID )9 \, {; _/ S Z9 ?; `
{
q+ Y, \7 n8 ~+ r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* P8 i/ @# K; K( I) [ if( pSkillProp == NULL )) ]5 f5 P A: T- O- }
continue;
( }+ l( W% ~1 B2 M0 [" \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ }' X7 J4 U- C2 l) I( D. c: N! O2 V ] continue;
) z$ \+ A% F |- B; }0 m3 v/ g lpSkill->dwLevel = 5;
4 A2 X" P9 Z1 d2 [ }
( g% P; f9 `; Y$ C6 e }- f- m, ^( d/ Q @" p
}: E- x3 G/ E/ T4 }; e, B* L
else if(IsLegendHero())
9 n. ?6 W, C7 x: D {
! g: b& t: g' l% M( L9 q& [ for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 h+ r! [. C% b; P. _2 s {
1 e9 g. v6 l1 `% D& X LPSKILL lpSkill = &(m_aJobSkill);
0 Z" Y" G4 t1 X3 r& M if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 E; t! e0 U3 M- F# z! Z( v8 H- i$ g& D {) O; I* ^4 G: @6 N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 k8 M' {: |. [, ?+ a$ \3 a1 X
if( pSkillProp == NULL )3 K% G2 c% O: O" R
continue;
! s8 z, q0 N. ?2 W/ b$ {$ `; d! L# F" p if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 M2 _2 S4 e- j8 A. M. H
continue;
$ B Z* K W9 j lpSkill->dwLevel = 5;
3 H6 J7 ?) |7 m0 M- u ~6 B }4 H2 P1 o! ]8 D/ Q% a9 ]
}, j$ c4 G0 G& q3 B# s8 @
}+ C. h7 a- B* i; v
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) g8 S. n! _4 i' _ if( bGamma )- D! S' m Y' d# m1 } S( A
{- l5 b' a. H2 i; ?8 p
m_nExp1 = 0;- U( L1 H8 Q3 T6 ]9 I9 n
}
7 e' {! @8 F" _1 M4 Y' D4 b9 |5 F( c- l. P' n' d
( (CUser*)this )->AddSetChangeJob( nJob );
3 J) n" [& K) ]. I1 {) `0 j g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 q% g1 e; [6 y
+ y& h7 y4 p% z( J) l8 ~" z
2 b( {4 j& A( N0 h, B#if __VER >= 11 // __SYS_PLAYER_DATA# |6 ^0 u8 P7 _# d& ? j
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, c# k( W% ~6 t; ^. G#else // __SYS_PLAYER_DATA) [' }& K4 S7 {
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 F9 g7 f* `2 K+ q* K
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 I! y; |& K" `- Z: W( A6 A5 d
if( m_idGuild != 0 )
' V {2 t G5 Y( s0 F g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) b7 \; L: l' o0 s$ D; ?#endif // __SYS_PLAYER_DATA
- n2 ]+ T% S0 S. p% N1 K0 S SetHitPoint( GetMaxHitPoint() );
+ F2 C4 a0 G9 k' G, Q SetManaPoint( GetMaxManaPoint() );8 q: \( I5 z C9 p% M+ Q5 r
SetFatiguePoint( GetMaxFatiguePoint() );
; q* E. A1 t: A: Z: F1 K if( nJob >= 1 && nJob <= 4 ), e3 \; I6 h* Q" ^0 v# e. V# p$ u
{3 E. v1 j9 ^5 g9 w+ @
m_nStr = m_nSta = m_nDex = m_nInt = 15;! L# `( v/ A) r4 \' e. O9 d$ Z
m_nRemainGP = 28;5 r# w& V0 Q1 O, K$ i, L
}! ?4 J- f! {+ }! m/ G: z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 x3 O4 ^2 t$ g2 o0 A8 l# ] {
7 N' V% Y7 s" ? m_nRemainGP = 118;' ^7 o- p2 C2 V5 t" J
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 f4 p' h5 r/ G3 ^6 e& C
m_nStr = m_nSta = m_nDex = m_nInt = 15;5 E) m5 R* R' Z7 d
}7 D! H( G) B; C$ S4 [# o3 h
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )1 P$ E2 q2 }* ?+ O3 L
{
8 j# [/ L$ B1 Q" W$ x1 m CItemElem itemelem;
5 d% p1 V- n3 I: T& w! e% S0 M itemelem.m_nItemNum = 1;& Z/ u. h% O5 Z- r Z2 Y
itemelem.m_bCharged = TRUE;
! E* F' P2 T% J( H: O BYTE nID;
6 i5 A9 H: d5 E9 M1 M1 a! h' [4 }! @+ ]7 H: e6 Q- D8 K- c& Y
if( nJob == JOB_MENTALIST_HERO )
" B u- o- {# E( s: G+ d; m itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 L. I8 s* } I" I+ X if( nJob == JOB_FORCEMASTER_HERO )# @9 w" y8 |5 P, p
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 h# p8 f8 w9 ^
/ U, e/ x9 P' ] ( ( CUser*)this)->CreateItem( &itemelem, &nID );
9 K) [" ?8 p9 w4 G, x }" k8 L8 v9 J/ e: {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) k2 m9 }) G0 @% P c9 c) ]% a ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );! J' Q8 d: y m2 y' Z4 A
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 e" u: y2 B: F: p$ l( }/ y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );* h5 L' D8 T# B0 g! s# J" T1 D) f
( (CUser*)this )->AddTaskBar();*/5 z P2 s8 A9 G( H
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: v7 ^) o2 N' X5 h1 R1 P" D" C" k#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?( J! }" Q. k: S
((CUser*)this)->CheckHonorStat();
9 [4 [. C' x a, S ((CUser*)this)->AddHonorListAck();0 k/ l0 S u+ K! ?
g_UserMng.AddHonorTitleChange( this, m_nHonor);
, n: _' Q; t* B/ Z5 l#endif // __HONORABLE_TITLE // ′Tà?9 I$ d, I% ~, @" B6 b
}9 q- w6 o- o6 {( r6 P: w- d
#endif // __WORLDSERVER
( p& B; P/ m, f: M, l* r J} 4 n) O0 i$ v( N. e
4 {$ M) p: g) ~+ B" `) ~ ]. U; I
然后你进入functextcmd.cpp并添加以下( J: N: o) n, l' k8 U+ B7 E
: i: @1 A$ X8 A B( Q代码:$ u0 l/ d. s2 q. _
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ H0 E6 ~! v$ @8 C( S下面插入/ f# r n* n. d6 F2 w" i& ^
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) / ~1 ~" E- P. [4 V* ^7 A
2 Z5 P1 G' k/ S0 g4 e6 K
然后你去9 l, B \; U. {5 a g5 A+ w
3 S0 m J: ~" ^/ V/ l3 w代码:
5 F/ o3 B. f" }0 d5 Q代码
! E$ Z* M, d q! Y* u8 EBOOL TextCmd_ClearPropose( CScanner & s ): E8 D2 v" ]$ l* P- }$ r8 O
{6 @9 q& m; |, F1 T9 x
#ifdef __WORLDSERVER
0 ~9 b, r) ^- y* E! W CUser* pUser = (CUser*)s.dwValue;& H( v, V5 ]. L; ?) I
g_dpDBClient.SendClearPropose();* W7 I2 Q4 T( m: F
#endif // __WORLDSERVER
# F K) g& ~7 ] A0 X% `3 g" u% X' d return TRUE;1 d h9 c1 q8 l6 y& B
}
8 D! _1 I% P* q* `7 D8 g5 U' J( p" `! J) c下面插入. [; l% |' k7 C
BOOL TextCmd_rebirth( CScanner& scanner )
( n# D1 x6 y% y- E. o{. [3 ]2 |3 w M4 }/ h
#ifdef __WORLDSERVER
0 K- g* o+ u4 }7 lCUser *pUser;6 n- Y8 L3 c o8 F8 Q5 [
pUser = (CUser*)scanner.dwValue;
' ], Z+ d/ G9 \- b. Aif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 s1 Q, R, i7 m4 KpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% C8 T5 B6 `4 D7 _9 helse
( V0 x, b8 h( p" @: u( c lpUser->AddText("你还未达到重生条件!");
! U; p7 {, w# T& w$ B4 H w#endif
0 _! S1 @, V( N x* F$ hreturn TRUE;
5 S# C" `) i) U+ o/ v} . z, C- r1 U2 {% D0 O) D b% Q
9 o) h0 `. x& g8 e* W
4 ~4 {& O! k3 r; q. ^" ?: q2 b+ o
/ w9 A6 |' }+ M. G! o
) i% ^/ T0 \# L |
|