|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) p& i& Z+ }# t1 k0 g- v; j$ R4 {: {* d
Mover.h6 r4 v8 p: ?% {6 r
代码:/ K; p% E" e4 C9 e8 i2 m6 Q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( n4 U0 S& z+ L- N' a8 Y( l
- q c/ p6 Z5 K9 D& Q下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; / r) C- v" ]- p1 K8 V6 k
3 s9 Z* K | g2 {/ S" c) x
然后你去mover.cpp添加0 B+ G |- c' q; u. n$ X
3 D1 d0 h: F4 x% i
代码:4 p$ V# D# a& U$ ~
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )1 k: K! v0 @& ~& w% U- E
{
, M& [% q* S4 N, [) O#ifdef __WORLDSERVER
7 T, `7 n1 u# ?' w" F: | E // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 ^4 R: r, O# E: C2 C6 s1 y MoverProp* pProp = GetProp();
, J5 _$ d& T! N' v4 ] if( pProp )9 J$ B2 Z* C+ G" c) b* W% i
{
6 u' b$ \. _7 D' }4 \/ I- s if( nJob > 0 && nJob < MAX_LEGEND_HERO ): S+ E5 ^. w7 |, m. M& Y
{
5 e7 ~2 s1 s: P6 D AddChangeJob( nJob );
0 b d7 Q6 B6 A+ H* e, j }else{
a+ z- @, d1 E: j4 { return;2 k. d6 b+ o5 c1 P& D+ P' _6 n
}
' u% i0 Y# ~% R' S2 a int nPoint = 0;0 f; p7 c0 W8 H5 i5 ~
if( m_nJob == JOB_MERCENARY )
2 W! h1 {' F. w6 ~7 x# j0 i nPoint += 40;- j, `: i" S- d1 Y& u. w% I
else if( m_nJob == JOB_ACROBAT )7 X% ^8 p4 m) x& L5 `" Q' Z
nPoint += 50;# I5 i' M) A8 B0 L3 z1 h
else if( m_nJob == JOB_ASSIST )
5 c- R0 e3 \. B6 s, \; \0 d: ] nPoint += 60;2 o+ ^) U$ {5 F" k9 d$ |
else if( m_nJob == JOB_MAGICIAN )
5 l- c% ]1 [* E/ R3 E6 p' h: N nPoint += 90;! z' O' H0 e, R/ c9 a+ r* x
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 p$ P( B7 |- o, _
nPoint += 120;
9 j& S, f) }+ b0 b9 R; H$ t else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 w! d0 a6 T* ?7 @9 Y' Y! Z
nPoint += 150;- w. b5 `( {, K+ K2 k; {5 }! c) z
else if( m_nJob == JOB_RINGMASTER )
. [9 |- \; {3 Z- G) J3 ~8 ]; M nPoint += 160;
& d3 v, {, y) n. C% _( w else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) i/ m l% b. T; G* e
nPoint += 180;
/ P. K5 ?0 f& u8 @ else if( m_nJob == JOB_ELEMENTOR ): G8 j ~: p( E* r
nPoint += 390;
( R0 ~/ n) M% h( G# D else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- i; X; X: h$ P5 Z7 ? nPoint += 120;
# c/ Z; ]: M+ @% W else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
c& q; x4 j8 l& o8 [) a0 E nPoint += 150;% h3 I" l2 x! m1 O/ V7 S7 i$ f7 u& b
else if( nJob == JOB_FLORIST_HERO )6 W3 ~* n: K4 F- f
nPoint += 160;
9 T! `2 S; r: B7 a4 r% e6 T' i else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ Z: E9 P8 s2 V$ q; ? nPoint += 180;
& D0 l2 [+ E, m+ h else if( nJob == JOB_ELEMENTORLORD_HERO )5 F2 N7 J! u8 ?. f. y
nPoint += 390;
n7 u' y# {; x8 f0 O1 {
2 Y- }$ c8 a9 Y6 J4 L8 P! \ AddSkillPoint( nPoint );
+ H; `/ @; b7 ~3 f0 c m_nLevel = nLevel; S7 I& w6 Y! r2 S% p; K& ?' [
* o8 ~7 \% l- O" J
SetJobLevel( nLevel, nJob );! D3 U. Z9 [3 e W- `0 W+ N. K/ k
m_nDeathLevel = nLevel;8 O% I+ g' }6 D: O
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 e9 U: S8 B3 R+ p if(IsMaster())# J" Z6 o/ I3 I- @6 u( A% s
{' u2 H. B( V- }) y$ j
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: b" @% D0 e4 p G- a7 O
if( nLevel > 59 && nLevel < 72 )3 I Q) O E7 B& K7 X$ m
dwTmpSkLevel = 1;+ V8 I) u( P8 L( `6 U
else if( nLevel > 71 && nLevel < 84 )
, G( l& w& W0 F/ X' n8 ` dwTmpSkLevel = 2;4 z; [2 Y* S0 h! M5 G' o7 K
else if( nLevel > 83 && nLevel < 96 )( e- W4 @6 h- _
dwTmpSkLevel = 3;
! A o7 ]5 l- e3 U% D/ Y/ m else if( nLevel > 95 && nLevel < 108 )5 H2 J* s- e0 h" o0 a, j* H
dwTmpSkLevel = 4;
$ O% x+ f& R$ Q0 a: C5 X j. z4 U else if( nLevel > 107 && nLevel < 120 )# A# g0 I- B+ t y
dwTmpSkLevel = 5;$ x; g9 s, j9 @- U& A; f' {! P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; p4 F3 O1 V7 H. _$ t# c
{ , G0 F3 \; |/ e6 ]
LPSKILL lpSkill = &(m_aJobSkill);
# V) c; A) M( P6 X if( lpSkill && lpSkill->dwSkill != NULL_ID )& n5 C/ `" r; z7 `# C) M
{
" J: {' A5 c4 U0 U7 ?* m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. L0 u2 B" v4 V t) Z1 a* r, g if( pSkillProp == NULL )
- U9 ?6 k& u7 Q/ B9 p! s continue;
% x: n: }& X& L3 I X& c' o# N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' E) {; b6 s# y
continue;% Y3 B8 _5 d, |; l: N7 S/ D
lpSkill->dwLevel = dwTmpSkLevel;
' \- M7 F5 Q7 z0 H8 e }
0 p. I" S4 {/ ]& l* ~5 W }
, P7 ?# D h6 o }
9 L0 |. N1 Q" q) I9 [$ _9 d else if(IsHero()). G( H$ M9 l4 Z- R" P4 k# n
{* b5 t; B3 i* H+ w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , u! r6 j1 h9 p- x
{
8 ^2 ~8 S% B* n& D/ N LPSKILL lpSkill = &(m_aJobSkill);, Z% k& Y7 x4 S5 z) f/ n3 L1 ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )" H" A+ w" d5 A* h6 R' W% J5 U. s2 ?
{
# Z2 f9 \# `9 ^& g+ j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; E% V1 {# L! H. |! G
if( pSkillProp == NULL )
c0 c( w7 p3 c$ g continue;; J. X/ M% O9 F2 i3 q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 k4 @! P$ U( m7 {; [ continue;+ E' _& n( |$ P, K6 P
lpSkill->dwLevel = 5;/ g8 Q# A3 c" z6 K8 a; ^$ D: x5 y; r
}
1 s1 N1 r4 e5 @' R. p! r$ S b( z }" n" O1 L4 \2 d. ]0 v8 R+ [
}9 \% J2 x2 ~& y# ` l2 }
else if(IsLegendHero())
6 |9 v1 M5 R/ ]5 | {" ^- S; @/ U* o3 O' n# P6 y0 g K
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 l: `0 ~. Z7 ~# ^
{
5 p! h+ o& m2 {" i LPSKILL lpSkill = &(m_aJobSkill);
) @! v6 b# L' H, C/ `! ^& E if( lpSkill && lpSkill->dwSkill != NULL_ID ); ] }: \6 }0 h& s; g
{
$ c; H5 V5 v4 B; B% c- C6 X0 L. Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " S: | r+ R6 r4 i( W8 F {
if( pSkillProp == NULL )
$ c5 B: z/ }% t" { ] continue;
5 `4 J; n0 g) h+ A* p6 Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" z- X6 n& ?9 v+ s
continue;; D$ I e r3 V- T# p' W
lpSkill->dwLevel = 5;; A0 H9 _4 c. W# M) [
}
: _+ b& _# s1 L# N6 |( A }
# K" F/ H5 r; g; n0 ?$ a5 p3 O }
8 f( v. c9 d) M* F+ k ]8 F/ b#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ ^+ H. [& G9 m/ g' }
if( bGamma )
8 Y1 k! ~( ? g {, _8 Q2 u( C) n+ i% v( B3 m
m_nExp1 = 0;6 f8 p. F' U( M
}
/ f* H6 H; g7 J7 R$ N2 F, O: f- }
( (CUser*)this )->AddSetChangeJob( nJob );( L& J0 J1 Z( g( l
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, Z! I3 J+ Z6 Y7 Q% ?% {( T8 @) D7 }8 N9 M, [3 a7 j: E7 Q
; t B8 Q) q" ~) F1 T8 E4 ?
#if __VER >= 11 // __SYS_PLAYER_DATA. A; ~6 O' F2 T+ I1 x
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( \1 R4 b2 m" ?: f7 f! i4 x' G0 H#else // __SYS_PLAYER_DATA3 Y) i, ]3 i5 b' H& X
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. U) T! Q; \- a4 {, h g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 h; e1 y) Q8 I% ? if( m_idGuild != 0 )- b. f+ n) k5 c1 A) K k& z
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* w- a% i5 K1 m# T% i# O#endif // __SYS_PLAYER_DATA
% r) _" C& X% w$ U SetHitPoint( GetMaxHitPoint() ); {2 `: e" o8 j' u& S) }0 I
SetManaPoint( GetMaxManaPoint() );
- I4 a3 h: x4 `) ~& |0 ^5 m0 q. ` SetFatiguePoint( GetMaxFatiguePoint() );5 ~- J% u% M$ v+ }4 C
if( nJob >= 1 && nJob <= 4 )# D2 w5 d8 h& j8 B3 z
{3 T2 b: C% p' b: H) J. M& Z# R
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ B# Z$ N/ X% S% | m_nRemainGP = 28;
2 l$ R, _- b% C }8 s+ |3 Q) g4 N' Q; I, m) h
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ). G9 w, e1 d& O! x( M- F! `% F
{
& C6 D) t8 t( F1 S m_nRemainGP = 118;
7 Q* N6 x/ t) c! }5 \, ~ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: T0 T+ x/ o" B$ N
m_nStr = m_nSta = m_nDex = m_nInt = 15;3 S I8 z, t. E
}
6 {8 O2 E0 {2 m4 N+ K- y& Z3 Z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
2 V& V3 P; d) k: d5 O3 d: l* _ {
# \; C; X) a* M& C+ R. u$ B( e5 s CItemElem itemelem;
% |9 K; n" h/ F itemelem.m_nItemNum = 1;
; r0 k: I3 J- T) p/ P$ @ F itemelem.m_bCharged = TRUE;# U X" H" f, |# ^+ M2 N
BYTE nID;
! ]) q N* H% A0 A+ y. W( G8 t# R7 v6 x; [7 U
if( nJob == JOB_MENTALIST_HERO )
2 k- e5 q+ t+ k$ n- R itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;# n$ t5 L6 n$ u
if( nJob == JOB_FORCEMASTER_HERO )$ _% _4 u& A) _
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! W) o2 ]/ I# }; |
* z! Z5 ?+ d9 L" w ( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 ~8 u' A% }4 d' G3 k, G }, p" r4 w: Q8 N/ L( ~/ V* p2 P
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. p' N5 d# h1 X- r2 h b( z ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
`( P6 m, C/ A6 u& q$ O ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );/ w* @( s3 H7 k: A9 e/ i. o, {
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
2 P7 h, l- m' \3 ^" N; d* x8 r$ u+ L ( (CUser*)this )->AddTaskBar();*/. D6 B/ J: r4 J4 @* w3 R& M
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );7 U" U1 S# u; |/ A9 s
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
6 D: W% M: ^: q. B' a6 ~ ((CUser*)this)->CheckHonorStat();1 P0 \# z( u1 {3 `* x) e) J! L, l
((CUser*)this)->AddHonorListAck();- c0 G) Q8 D, u# y5 g, A, y4 K. z8 c
g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ ]+ I* h: i2 b#endif // __HONORABLE_TITLE // ′Tà?
" e7 }2 @- }" i/ [7 P }* ~! P1 C, x2 U
#endif // __WORLDSERVER- V$ g- J% x- u8 \3 [' e' T R: R) r
} ; f5 o3 j9 {5 E1 J
" R& g) M3 `7 D6 c" X1 J+ r7 `) d
然后你进入functextcmd.cpp并添加以下9 p, v5 I+ n9 @# c4 }
. r! J& ?' h) a* _( D9 `+ U
代码:
# s4 T! ^" `, r2 kON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )' v% Y/ n) X( |# Y% D% R
下面插入
7 B. ~0 \- T4 a5 C! A: k. q) jON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
& h7 A0 P) n$ L& `& ?+ E/ g& P# X( Z+ N; T+ v
然后你去# H6 m- R' v- @9 h( @0 j
' @9 v+ h* i$ Z
代码:
! [8 C2 s" D- d, |代码5 ?$ I- h; @% P; e, s
BOOL TextCmd_ClearPropose( CScanner & s ) x& M% o% z+ T v+ [% j/ B" X! I7 H7 D
{% [ R, |6 |% Z6 r( R: ]
#ifdef __WORLDSERVER
% Z! H, R5 X! @4 ^ Y CUser* pUser = (CUser*)s.dwValue;
5 ]" @! N. R9 k) [* F/ V* G g_dpDBClient.SendClearPropose();+ }7 e0 P6 q- D5 O: ]$ j
#endif // __WORLDSERVER3 h7 J1 @% |5 O! {$ Y j& S
return TRUE;
. w) p4 u5 b. q( {1 O. M5 w" m}
! ~3 S3 c+ L5 }% `下面插入
) y: d; t6 b; vBOOL TextCmd_rebirth( CScanner& scanner )
7 K, E# A* `2 J{ X; e! U: \1 w* P( v
#ifdef __WORLDSERVER
3 I# z4 y$ x: v- t. UCUser *pUser;
* v/ ~; r. E" \3 I* s6 U" \& npUser = (CUser*)scanner.dwValue;
8 P! S- }, t `5 Z5 Bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) J; X3 ]# C; L* npUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 I! F+ p/ o* R
else1 U, F9 p$ T8 J# F( x% s1 b* F
pUser->AddText("你还未达到重生条件!");
! {1 p j; ]2 F, Y# u#endif" c) Q9 m9 Q8 w% g; s& [+ V, l8 f
return TRUE;& C# {3 e& C$ k9 _
} * K( ~' M6 m1 U& [$ }
+ D9 R( z# t* [) N! a" U( e/ s. x, I. [7 Z# S. ~2 A
' W- o6 G' v1 s( ?8 H# \! W8 }
h f( u$ f4 x2 t |
|