|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 o$ v8 \4 H" V6 S5 q
9 ^1 @, u y* ?Mover.h
. _3 m3 Z9 z/ v) ~) g. e) ~, V代码:) L3 c- x7 R+ y8 `
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü7 b/ L1 a% r* N6 Y7 y# O
2 {/ m* ~; R- t/ T2 v下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; % o s( N1 e4 J9 t% E+ b. m! M
5 b/ c% t: ~+ n- S- c然后你去mover.cpp添加) P! F4 ~: W6 k7 y
2 q; B: b5 Q/ V; X8 ?; u
代码:3 s! G+ Q+ |: L4 H+ d" {* \
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 z" M( S D. _% p8 u7 X {+ {
{/ L, p% N1 M' b: [
#ifdef __WORLDSERVER
8 ]3 A6 N9 e n7 R* h // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 a3 ]. L$ F1 u5 \8 @
MoverProp* pProp = GetProp();% E! F3 f; Y3 l
if( pProp )2 A t- E+ u4 S
{
/ x, N/ A& ?; R if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 @6 z7 N7 u$ A' E/ {' T5 W {% o( d- P/ }2 P, M
AddChangeJob( nJob );# U6 I4 V& x' ?, e- m7 D- J
}else{* {# c1 V: O! i' q
return;
/ L6 b* N i( P* i9 { }* f5 X5 ^+ h" S; K( j
int nPoint = 0;' R, g# ?+ r3 r) o! m( b: R
if( m_nJob == JOB_MERCENARY )
. t4 H8 W: q6 `3 i7 Y' v3 K" E nPoint += 40; v- M3 D9 Y9 R6 V% v$ B1 c
else if( m_nJob == JOB_ACROBAT )
; [* ]) M v: ?1 e nPoint += 50;
% w, J3 ` G5 v% i5 X- j7 E) b else if( m_nJob == JOB_ASSIST )' S& i& x; v. E4 s; H: Y @
nPoint += 60;
0 J% a/ V, R) }% e) ~- h$ x else if( m_nJob == JOB_MAGICIAN )
- H6 d: S4 X( t nPoint += 90;
8 i7 o6 v9 S- r- d else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ h) N3 L+ B; V1 r" t1 J6 E nPoint += 120;
) A- K& w3 b# M2 ~) ~ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" Q4 P4 ~: Y& Z
nPoint += 150;! g; A/ _2 f" @: ]! P
else if( m_nJob == JOB_RINGMASTER )/ ^3 `7 r, b) v) I) G
nPoint += 160;, o% V! L" z/ I F* T* Q) t y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )( S6 q( P/ C* o3 Y) c
nPoint += 180;/ W) Z2 n5 s: a" n
else if( m_nJob == JOB_ELEMENTOR )
* g% q) B- g- C0 @4 R nPoint += 390;) i# ~7 N4 d7 D
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 W& n0 h& S" g nPoint += 120;
" A( H2 L6 y) a! s2 }4 m. h# c else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* H$ o& P U3 V; a+ J
nPoint += 150;+ E/ w' B/ v% T. k9 ]
else if( nJob == JOB_FLORIST_HERO )
9 e7 i* o: A8 `' E+ r u nPoint += 160;3 T& a8 c) b7 S9 r
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). G3 i4 J9 M4 }2 d7 ^
nPoint += 180;% U, J6 Y5 A! ?* r3 }/ s
else if( nJob == JOB_ELEMENTORLORD_HERO )
, ]/ l2 y/ U6 N, s# O nPoint += 390;: K; C8 C3 L) e. M* A
/ L8 |8 n1 l( Z4 n1 K l( x# U
AddSkillPoint( nPoint );& g% f( | a4 s1 ]
m_nLevel = nLevel;* { i, U, V4 Z8 N$ U4 X
/ `6 t. `" X3 O* l- j0 ~7 n
SetJobLevel( nLevel, nJob );
' c7 K# Y" {6 N5 f4 p( U n m_nDeathLevel = nLevel;
. v% ?( U. ?+ Z* Z, w- I8 s#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 h! u% P& k6 r/ I5 _
if(IsMaster())0 H' q- y& G/ G
{! U K2 o) S7 Q# l; ?( i5 i ~
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
* A# z# n- [- h) Q$ ~ if( nLevel > 59 && nLevel < 72 )
' M: ~# W( J- \$ ]- g9 Y& p- D& x dwTmpSkLevel = 1;$ a! G+ A; n1 v+ n
else if( nLevel > 71 && nLevel < 84 )4 k1 R/ G+ l3 ^: q1 R8 \ f
dwTmpSkLevel = 2;
- F- B$ y- ^+ j6 z) E/ {% G* a7 f! w else if( nLevel > 83 && nLevel < 96 )
: ~5 H& b9 e) e' j5 H8 x dwTmpSkLevel = 3; q2 l( F; \ W9 q( Q( Z! C: _
else if( nLevel > 95 && nLevel < 108 )
% ?# j% S, L5 k0 V3 H# U dwTmpSkLevel = 4;
# j. S4 }5 `" e a X% U9 y" G else if( nLevel > 107 && nLevel < 120 )/ Y, j( ~$ l" H, N
dwTmpSkLevel = 5;
2 n( D) h* ^- w. I0 ~# e( L for( int i = 0; i < MAX_SKILL_JOB; i++ )
. C/ M3 F; d' I3 Y0 J8 I+ V { 8 z6 G. z0 f4 f! y @0 I0 c
LPSKILL lpSkill = &(m_aJobSkill);
1 @/ m9 V8 T4 q. A, {* h1 a9 [7 A! A if( lpSkill && lpSkill->dwSkill != NULL_ID )' [4 O( V) Q$ v9 t& C' d% u
{+ @7 [* i1 |$ D9 ]- C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
P4 g& P/ Z/ B ] if( pSkillProp == NULL )
1 S P" Y8 C$ G+ u4 M' x# y1 A continue;0 ?- I9 ]! u+ {4 E* B0 w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) Y+ @( {- j4 W6 C7 `4 `) a& v
continue;
# T" v: q" `% d1 v W lpSkill->dwLevel = dwTmpSkLevel; `4 c, E" X6 D# h9 }: ?
}
# c! [3 o* O8 v' v* L, M* ]" \ }
0 O' H& o0 \! H/ C }
3 C+ s' q& r7 s) u# v2 \6 ~ else if(IsHero())" H) X$ ~; {9 _* n" z" g
{' D! j1 b, D( k8 P! s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 b2 N, [, R' d v. m; ~( f8 p. P {
; t* p8 b( V) r/ N: u LPSKILL lpSkill = &(m_aJobSkill);# S4 v. `( J; o* r1 s- Q m( n* w
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 @' I7 P! i2 {
{6 X# D7 a: j$ [; Y; S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + H# Q, H2 q2 J' @: c' F4 _- `* z& [
if( pSkillProp == NULL )
7 V6 v$ w) G+ [$ v; p3 D4 b5 A continue;
3 r1 l/ Q% M! ~1 s! Y0 x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ x& z1 w, j, l- p6 ~ continue;
9 @% J4 ?5 h& Q! p( {5 p lpSkill->dwLevel = 5;
8 R. m4 s% [+ I/ Q2 ?+ ?8 W }
4 K9 @! }) x9 K( ~) g0 I' ]) c5 A }
& j! @5 b8 E# I. y% t3 J }
4 U) U- Z8 z) i1 f else if(IsLegendHero())4 b0 M# G1 R, ]8 F5 p
{! x7 w H- e5 I3 }$ x2 l* K* j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 \% L" [) H" u6 Y
{ 6 Q4 ?* c) }9 P! R8 Q# O
LPSKILL lpSkill = &(m_aJobSkill);7 C$ A6 E. T2 P4 w# q# T
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) D5 a1 a r* Q7 P {( s( E1 @2 M5 p- g) {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% e5 K, f6 E! {+ u4 v& D, V1 l s2 j if( pSkillProp == NULL )
F" I3 Q, p! \) h! K/ r1 e ~- U continue;
. l2 _6 G5 b: ]$ b4 Q# g- Z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 K3 A' c; U. b4 f8 j0 }+ p# C; h
continue;
* t Z0 }5 i: {! z1 t6 o; a# w lpSkill->dwLevel = 5;% c* I1 I- `: a( l: H
}& `4 x3 u, J0 N! | o
}! @* Y* ~9 e3 g5 C( ?7 K+ p
}
! d4 v* I& V+ N. T4 L6 o#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! G8 X: F; b( f if( bGamma )! t( ?: G: d* [
{' C! E" x3 M" ^. C
m_nExp1 = 0;
* f' c$ D* L7 H: W5 m" H } Z- c3 S4 R" b( E
. H. ]# [# ?) v* O4 V
( (CUser*)this )->AddSetChangeJob( nJob );
# O, C4 [# M- R g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! E; U, x7 \6 ^5 [5 e$ }) ~6 Q( M3 B, {$ b4 i/ a$ y; B o7 O
2 ~6 Q* _8 q& O' J0 E# ]* J#if __VER >= 11 // __SYS_PLAYER_DATA
2 ]: q) U. H% q9 ?) L0 T+ ?: `1 Y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' Z) e v: J: Z2 O
#else // __SYS_PLAYER_DATA$ y6 Y3 g/ c G2 `$ M( \
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. A! H+ ^& f" X+ k1 v3 c8 C. |2 g) n g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# K$ S( U9 q2 C) p2 J' [ if( m_idGuild != 0 )3 H' Q& V' r3 `& N [1 _
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );) x/ L( j; M* c& r' G9 ?
#endif // __SYS_PLAYER_DATA
: K8 [' C) `7 @6 h, N SetHitPoint( GetMaxHitPoint() );0 t9 ?# c) I9 D
SetManaPoint( GetMaxManaPoint() );$ @) U6 |' Y0 Z
SetFatiguePoint( GetMaxFatiguePoint() );
( G- A% c q- J7 K5 C, ^. y2 m if( nJob >= 1 && nJob <= 4 )
' R5 Z7 ]' r. ? {
7 O$ M# t5 M& P( ]0 f$ M) q- I m_nStr = m_nSta = m_nDex = m_nInt = 15;9 w* h" d+ a' O
m_nRemainGP = 28;
$ W# s% l1 J2 f }
6 o& `% z8 H! K8 a if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
+ k5 K- M2 t# Q2 f! u {
1 [. n. `! W& q2 w" L4 P3 x m_nRemainGP = 118;
' b" Q" `, T$ I, Z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: C7 H1 f- [" h, Q m_nStr = m_nSta = m_nDex = m_nInt = 15;& L1 K3 U# M- @/ M2 |, ]6 W
}
p- A/ X! K1 T* \ `! Z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )+ b% o+ G( v* Q+ o
{
' [' s/ W8 N1 w% C; ?2 |$ p CItemElem itemelem;
2 V7 Q+ @; {+ \, g% c9 X3 Y( ~ itemelem.m_nItemNum = 1;
8 I, x" I- ?. j n1 O% }/ S itemelem.m_bCharged = TRUE;3 e; l6 L0 G! M2 l+ g& F, s
BYTE nID;
}6 X! I" g6 b0 C. \! O% w; G0 P! l
if( nJob == JOB_MENTALIST_HERO )# k/ A0 y [( A- J
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. n- J) v" d- o- |+ V if( nJob == JOB_FORCEMASTER_HERO )+ e( B% k$ B/ b) z2 o
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- N* ]& n# v8 G- L8 [( m; |5 I6 d
# \* y) {6 y$ m( j6 E% g ( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 r2 {# ?8 @: k% F3 G }, H1 {5 B5 c, N" a; K
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
: ]7 {0 T" F& V ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 c; e0 B" ?/ x: E+ t) H/ r- L
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ E0 ]' a9 x; Z3 ^- r /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 v6 e, q" k1 L6 K, \
( (CUser*)this )->AddTaskBar();*/
2 o9 k% ^* j/ f4 | a8 X ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );& M# F* w! j- N7 j" z. }) H% g' E1 W4 ~, b
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& h, I# F9 c3 k# K
((CUser*)this)->CheckHonorStat();
. |7 T2 r( ?; R. `: I ((CUser*)this)->AddHonorListAck();
" G2 v' \+ v# F& G, s5 V g_UserMng.AddHonorTitleChange( this, m_nHonor);
* r4 q% w( k1 z( \0 J% [; ~: s* W#endif // __HONORABLE_TITLE // ′Tà?
9 W% e5 b; s& @; i }
0 o1 R( h: d0 n/ F) y% u, Y#endif // __WORLDSERVER
* e* f5 i! S; E t8 R} 2 K4 S" ?# W; d. ^2 W7 o. {3 |
' R6 O o4 x- N" d1 x+ p7 Y8 K8 q然后你进入functextcmd.cpp并添加以下
9 z1 s$ Q* F m5 I1 b, S! K( Q% D% p& y8 A! b" Y3 @( a0 O8 y* G8 @
代码:
4 I& @- g- b1 O7 U6 ~$ bON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) B. I0 g6 g3 b
下面插入
- } U; m* _$ {ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 1 h* ~% w2 a! d. R
- G" ]! V6 t$ q* n3 g然后你去) H, \: Q8 V/ y% X; W. s l9 n5 v
+ Z. F* w8 p0 v. z5 G( f
代码:" c1 q4 U. | U9 J* U
代码: _! w% c' P: O& T6 e y
BOOL TextCmd_ClearPropose( CScanner & s ). A/ P( H( q7 s7 A
{
H; g) s% o+ L3 `# N$ e& M" |#ifdef __WORLDSERVER% ?* [) m8 d" `9 V6 {5 L
CUser* pUser = (CUser*)s.dwValue;# |: N/ _0 h5 y
g_dpDBClient.SendClearPropose();
$ C- d0 d3 R9 L# n- F* a#endif // __WORLDSERVER
& N" ?) k( ~6 a) q return TRUE;: L9 V! H6 ~- _% o) N% B7 C
}; l" K0 x8 M: m4 a7 }
下面插入' L) d# _7 _6 z5 o7 D: q4 P
BOOL TextCmd_rebirth( CScanner& scanner ), r" z3 @1 P, K5 g7 l, \- \2 ^
{
8 }( }- v) g9 _* H) K' B5 c#ifdef __WORLDSERVER
. w! b. H% w0 {CUser *pUser;' G6 z5 c; q M9 u
pUser = (CUser*)scanner.dwValue;3 A5 ?. `' R# Q& L$ y1 q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()) ^. E/ M& r2 f# f3 P
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. v( w+ C6 w6 K+ T6 X- ]7 C8 ^
else' t" A* \' i4 G" l" T: _
pUser->AddText("你还未达到重生条件!");
. J) d$ {7 K' E0 I. Y& H, V+ R#endif1 u( k0 `" i* u0 F z5 T
return TRUE;
% G' M" B9 d/ \" v+ G1 F' Z5 C# Y}
- ^) B- \# c2 ~3 b5 D) [) ~# M/ O# j$ }6 X# e1 q2 X( b6 U! V/ U
3 t) t# x3 q( ~" } h' z3 t7 ^% M2 L9 ]9 \
% e8 X3 X& Z$ Z8 G S |
|