|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
+ J( O, a: f# k- f/ Q" a H! q$ M1 d
Mover.h
$ ~) _6 F/ X& F- |! V0 \* j代码:4 z0 E# T4 w. [$ U" ~
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& F, @, ]' r( x8 K
* Q. q7 f1 u: W% }# C4 D7 E+ }" D下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
) P' X, k# P6 f8 ~0 |2 B( G! V' G6 x4 K
然后你去mover.cpp添加
8 l/ t& g H! z, U& {2 W3 m" j# ^& d" I4 O
代码:7 @. m& G! |% ~- @& G* l3 s
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
0 @4 }2 ~9 \# V" p2 d2 l{
3 H m1 h0 y6 ?! u. E$ R" c#ifdef __WORLDSERVER5 N# {2 f! P T7 [
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 E3 A; J0 j4 [/ V* G MoverProp* pProp = GetProp();8 [ b- O8 G0 P& o3 M
if( pProp )
' Y3 r* w! z( W9 d5 D; [ {
6 ]- Y2 I6 R' N0 t) M6 n* D if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ P' q2 X) q- n$ M0 ^ {
1 N f* O) K6 \, ]. Y AddChangeJob( nJob );6 g2 x0 A( J- q6 P0 C. z) o. Z: E7 g
}else{2 V2 i8 n* Q! i4 w. t
return;: X0 q. h/ R% t! |9 {6 ^, b
}$ A7 I) q) s, x2 c
int nPoint = 0;7 F1 Y: e: f& D3 g1 s% G
if( m_nJob == JOB_MERCENARY )6 ~3 j- f1 V, k6 S' Y
nPoint += 40;
6 O3 @) n. {% n else if( m_nJob == JOB_ACROBAT )" x7 X1 J4 A* }* f- H
nPoint += 50;
2 k: t0 V; l U else if( m_nJob == JOB_ASSIST ) _; v' T' _, c- B, k: q0 Z
nPoint += 60;
( r; v: O9 J# D) E) w- R* J else if( m_nJob == JOB_MAGICIAN )( D, t2 C3 b- J1 \
nPoint += 90;& b8 x/ S7 v8 K" k. k- h
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )3 j. m" T. w- _6 |
nPoint += 120;. l! C6 e6 O# v8 u$ c; G. h0 q2 A
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
0 m9 }- r3 m) X0 E5 n8 ^+ A x nPoint += 150;0 J# J- u& T }+ ~4 h9 K0 X6 F$ p
else if( m_nJob == JOB_RINGMASTER )8 M: }$ j2 v) i4 _* Y/ T1 U2 m
nPoint += 160;0 _% j- B0 Z1 o: }2 q- u
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' G( ~4 W" p4 \, R5 Y9 H
nPoint += 180;' f6 g. r: z8 d% s" o0 z
else if( m_nJob == JOB_ELEMENTOR )% l1 z. } _$ Y$ \, n3 W6 l P
nPoint += 390;9 W2 C; a% Y4 [0 \
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) ?! J7 n0 C8 W& `' F/ O nPoint += 120;# o( A! S1 F$ ^
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# @" e! G! P8 F nPoint += 150;9 n$ J' n. Q8 [1 m0 |3 i1 S
else if( nJob == JOB_FLORIST_HERO )
# k1 _) j# U$ I5 L nPoint += 160;
3 R9 q6 {! n* O, D0 w else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 u( @2 [7 t9 Q1 Q9 m
nPoint += 180;
. X" t) ]8 k1 I$ }; D8 ^$ f else if( nJob == JOB_ELEMENTORLORD_HERO )0 _8 e& Z# m- X4 G# N4 n! ^+ h1 o; c
nPoint += 390;) U& S5 b, p: |1 c
. e5 c3 K% `4 _% i/ c. z
AddSkillPoint( nPoint );' _; {' L* _0 ~* t
m_nLevel = nLevel;% o7 u/ M8 W7 q
6 ^9 G* w2 z2 Z$ r7 N0 |( e SetJobLevel( nLevel, nJob );; } j& P& g1 _& {8 f& m, f
m_nDeathLevel = nLevel;
2 b* [7 \/ G8 B P* h#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" a J# G/ d1 W6 T8 W if(IsMaster()) o& a! \/ C# t7 t
{
& a- U) Y9 S. X- k int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 s* [0 N( F0 R3 r if( nLevel > 59 && nLevel < 72 )( _* p* G+ r) f" X k0 Q6 z
dwTmpSkLevel = 1;
C5 N0 m+ l$ f5 n/ M else if( nLevel > 71 && nLevel < 84 )
: ?; R: o) [$ \# M' w; z* | dwTmpSkLevel = 2;# V2 L3 D. f& A
else if( nLevel > 83 && nLevel < 96 )
8 ~- B. \) j5 u, N5 e' L9 a dwTmpSkLevel = 3;
8 d( P7 i1 r1 y else if( nLevel > 95 && nLevel < 108 )
4 M, A( p/ E" ^# v dwTmpSkLevel = 4;
. c1 _8 c6 Y/ K& m2 y5 ?0 y3 F else if( nLevel > 107 && nLevel < 120 )( b) ] z0 Y" B) o
dwTmpSkLevel = 5;
0 R4 P2 X) u, `+ v* F5 V for( int i = 0; i < MAX_SKILL_JOB; i++ )
( c# _7 h, `0 |/ U* R! @& ~ { W/ z4 ]) K" @* [6 L
LPSKILL lpSkill = &(m_aJobSkill);
' X+ c8 ~0 u% v- p; m$ D" ] if( lpSkill && lpSkill->dwSkill != NULL_ID )3 L* ]: z4 L) T; X2 i% m0 { [
{
& d+ `! S: `3 {7 H6 y0 a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); }; E+ C% x$ p4 | O* R
if( pSkillProp == NULL ): N2 x! O, {5 r5 Z
continue;5 c, U V# c! R0 x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). d7 }- K" t7 ]& l* Y- e8 o3 f
continue;
b( }$ Y- M1 S% P9 g j% @- A. T, e lpSkill->dwLevel = dwTmpSkLevel;% d, E8 x" N0 e3 o
}
" b& Q5 J8 y1 x" F& q* I }
; g: I; h8 @$ ]- W+ g4 e7 u& k: P }0 n0 T4 x7 g3 U
else if(IsHero()). Y4 N: |- N5 P/ r7 d# m1 ~
{! K, V% S8 |) @* F0 ~+ C
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 g; D Z7 u# g) t& Q4 s1 f {
]# p2 K! N$ i7 _% i LPSKILL lpSkill = &(m_aJobSkill);
' ]+ k7 k& H( C6 ^ r9 d if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 E; C( z. q% I4 W- [( f {
' \! k. o/ {! d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 m4 q+ a+ o- ~9 ^) N- A
if( pSkillProp == NULL ) x0 X$ u1 Y9 t0 ?6 Y7 Q* O6 B
continue;
3 K6 [5 l) {# _. Z/ M, n; @7 J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 @0 ^; V8 R# \8 u$ f% z: O
continue;
a; H, W+ n+ j& [ R: | lpSkill->dwLevel = 5;
$ ^/ \+ H. J; Q } k1 Q2 [' h N S- ?! y1 A5 J& E4 w
}4 S7 D( o2 w* X5 m) ?
}4 U7 ]: ~: l* y7 Q+ t
else if(IsLegendHero())
+ q2 N0 J& l, [5 s9 t$ X3 o% v; k+ f {6 z* s7 I6 i# e9 ~" r* }
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 r# W7 o4 g, i
{ $ q: E/ [8 k2 T- \8 W
LPSKILL lpSkill = &(m_aJobSkill);
7 F9 Y" K# l0 v7 g if( lpSkill && lpSkill->dwSkill != NULL_ID )- h; u. O' k$ i" j$ a
{
( D% t. e0 p8 z! a+ C+ i. } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! d. H1 J6 a6 @6 ?- ~' x if( pSkillProp == NULL )
2 n) s" ^( E9 i- b; a continue;' `" s, ?4 Y# V9 M( p: B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). D7 {$ N8 Z/ n0 a. S5 j
continue;; C$ x% `8 B3 X7 Z
lpSkill->dwLevel = 5; @1 A9 l* Q4 k" h
}
2 y6 p: ^5 T- B8 r# C+ ]5 d }- O' m0 {4 ?4 C
}
2 Y; Q$ ]3 ~. @8 T+ ~- r#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 s2 I# K# v2 R0 c
if( bGamma )
2 K5 M3 v3 i. \3 p; \ {2 s; E, }/ O8 E; d
m_nExp1 = 0;& F# ~1 J5 X3 q% W; J: C& k
}1 {' n6 D+ W- v) i' A3 l
$ b+ C) U" `2 m7 ~4 P5 T5 M ( (CUser*)this )->AddSetChangeJob( nJob );
* I$ F4 A# B+ x4 ~7 V1 `+ b g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 b% n7 F5 t2 ~: z6 ?* k9 W" A% d. |/ W5 z, a0 h
( K9 m- X8 j, H( S
#if __VER >= 11 // __SYS_PLAYER_DATA
( A4 Q* s; t8 w6 t/ x7 Q4 I& { g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ Y5 X6 b0 K6 C: C#else // __SYS_PLAYER_DATA# s! d2 p6 |; ~4 C' ?$ {
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
@$ B0 Y ?$ J4 r g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 R- y% n2 D4 } if( m_idGuild != 0 )
/ O( ^ ~+ f8 Z1 c g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 \# [2 |+ ? {
#endif // __SYS_PLAYER_DATA
1 b3 C- F. w6 N% X SetHitPoint( GetMaxHitPoint() );
: G6 B! b0 C9 e+ y2 S5 t SetManaPoint( GetMaxManaPoint() );
) A3 }2 q$ Z9 s# y SetFatiguePoint( GetMaxFatiguePoint() );; K7 Y. ~$ @; {8 K
if( nJob >= 1 && nJob <= 4 )0 t) B3 `& {% O! p' j# e8 r
{
' q: e7 Q4 T# { m_nStr = m_nSta = m_nDex = m_nInt = 15;' s1 [* S5 t- h% I3 B5 d4 ?. M2 n
m_nRemainGP = 28;
) n: H; c2 d- Q$ h6 \9 q' V2 [ }
& `0 P/ N' g" U! R+ h if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 E3 b1 q& ~: h \ {* u, \. ^0 ~' z4 f: C: O3 T! h
m_nRemainGP = 118;+ g+ v& {, e, {; ^
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
) E5 b0 f/ \, c; k- J- ` m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 T0 U) ]8 p$ T/ ^, g, d5 U }9 ?0 ~ O: C: x( U% m6 G
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* n" B4 t/ U9 C8 p8 _$ Y7 B
{0 @4 u5 V. h4 O
CItemElem itemelem;- m( R# S2 y8 z Z$ y: }* D- P
itemelem.m_nItemNum = 1;/ B) C$ o- J$ U, {# a, n
itemelem.m_bCharged = TRUE;: F# I! P0 k" u$ u$ ]$ s2 j
BYTE nID;: o( g! ~. I$ |3 E/ H' g& D/ \
3 y8 N w' m1 i, V9 c! d d* l if( nJob == JOB_MENTALIST_HERO )' ` F5 w: N7 l9 k
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ ^5 `1 T9 W& U" {5 d' ?! l- \ if( nJob == JOB_FORCEMASTER_HERO )9 a' X9 G* a( ^4 G- S9 U
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;9 b) u& B* u9 r/ V, L
: Z+ F- |$ B3 w& o3 m
( ( CUser*)this)->CreateItem( &itemelem, &nID );
- n6 _. p9 E( f2 p8 J }% B. N9 Q" t* M3 C
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 o: G0 D8 L/ H0 l" f+ } ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );) A/ O( g" T9 t
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );7 |, f! V k S
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 ~ k7 d! v/ e2 `
( (CUser*)this )->AddTaskBar();*/
. ?" d' N( F7 x2 S' E' z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* Z: d$ O% ?' D$ s: \#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& J9 M1 C$ ^# c _9 l ((CUser*)this)->CheckHonorStat(); s: P# S3 n3 f! y) y) A! _
((CUser*)this)->AddHonorListAck();! D6 p3 y+ F' e6 [0 k6 C1 r
g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ L* h3 W% R- J) Q6 S#endif // __HONORABLE_TITLE // ′Tà?
9 L. p( |' i2 i }
" S0 i5 G* R* d$ J* Z#endif // __WORLDSERVER1 ]/ w0 ]1 v% p# N% C4 ^+ R' B% m
} 4 [0 M% @& c/ V3 T- z, Q
) i9 r5 T1 I# K8 V$ d* @5 c
然后你进入functextcmd.cpp并添加以下
, j% c; L% k ?
; Z; a6 c0 u# S" B( W& S2 R4 Y代码:
" p7 B3 X) y7 q4 V5 h3 U$ Y* rON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ n7 S( a D$ x5 |9 u下面插入
% g1 ]$ Q) c% ~2 G1 @8 _' L$ uON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
( w0 w8 S x6 X' {
5 t$ `$ l$ U: V: \5 p2 d8 w- B4 R然后你去2 t! r, C, |8 ^- G) ^
H2 Q5 B9 D- h1 a- I5 B6 }
代码:; {( ]* \4 I1 [% q/ ~+ p9 [
代码
9 b; @ ~# }8 F% wBOOL TextCmd_ClearPropose( CScanner & s )" s/ h, F% b$ y( U8 X; b
{4 w; D( l3 n2 P
#ifdef __WORLDSERVER
) @( D# _$ {! _% g+ I, x8 h* [& O CUser* pUser = (CUser*)s.dwValue;
$ _5 U) J. |+ K0 H4 h g_dpDBClient.SendClearPropose();
; `* f. G& i! ]& \* [. A0 v#endif // __WORLDSERVER2 t/ s1 k a" a
return TRUE;
- [) M& S6 n" |" W! W0 U% s. B! f}
) L5 H, r; ~% m& T下面插入1 k$ [: o9 r7 ]6 |; o9 ?: n8 w
BOOL TextCmd_rebirth( CScanner& scanner )2 G* y& X! S7 S) M- v3 J& s
{3 B9 i& o+ c" X; ]" A0 I
#ifdef __WORLDSERVER I" A v0 m! S0 g
CUser *pUser;+ g+ [0 T. ~8 y# u* U' M6 D/ \8 s
pUser = (CUser*)scanner.dwValue;1 O( f( |4 I0 c
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); S/ H& M- D j
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; s! ^$ a& d, N* `8 H
else
2 h4 o9 j9 o ?" x( V0 kpUser->AddText("你还未达到重生条件!");
|$ |$ ?6 S6 x1 x#endif
, e% h: }0 r6 {6 T# [. Creturn TRUE;
6 E# R9 m* \8 ~# E- n+ c# g} # C) V; a0 d0 n: I$ \+ ^5 n
& _6 {# X8 P2 o/ X: ]8 S3 L; S4 d! `' k' `7 ?% S8 Y# A7 Q) S
" f3 t3 F" l4 B7 f4 x. R( k: c
8 ~4 Y& Y, O5 d: e- \ |
|