|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' W* ?+ |; K: I6 F9 j9 m
4 F5 T: C |) U8 Z5 h1 g2 e3 ?
Mover.h
4 Y. L* q% A0 K- n# L代码:
- c+ r% o/ f8 {3 H找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% K6 A+ j9 k* v# S( I$ U8 S. J( Q
! o7 ^7 p, x( t$ U下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 ]8 d( ^& u) {! U5 y. N
1 q1 M% B2 _; N2 G) `
然后你去mover.cpp添加
' C' n/ Y. l0 t2 P* F& W! `$ h t2 R# F5 w Z' f' k$ z& J
代码:9 z' k$ a- Z$ \: Z. w# V2 r
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 O, T# [0 V" k{4 l/ n" }. x, b6 u& [9 m& T2 v& W
#ifdef __WORLDSERVER
2 K2 y0 R# r! p // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ C! E, T- h3 q( S7 z
MoverProp* pProp = GetProp();
) L2 |/ Q8 z3 {& R* [ if( pProp )
" d3 S8 a! ?1 ^8 k% F1 `; S& L {
; u' u5 |/ g1 ?/ H( V# k if( nJob > 0 && nJob < MAX_LEGEND_HERO )& f4 _, v+ d2 a% X! X+ ^4 B
{
8 b! U* `+ V7 R+ [: [& z; a AddChangeJob( nJob );
9 P: q( G: x" P0 W0 n! N }else{" K- g7 n3 m8 {
return;
8 H/ s* i; `& u! c7 o6 g+ B$ k }
; M6 x& [4 N6 a9 G# B* }9 }8 F int nPoint = 0;
7 v, @- h" i# z# ~' R) M& d, m' n if( m_nJob == JOB_MERCENARY )1 Q, G% G: y$ T
nPoint += 40;
+ a& F1 n8 p/ Q else if( m_nJob == JOB_ACROBAT )/ p8 s9 F9 _) F0 K3 M$ j
nPoint += 50;1 n8 w t# q' {7 o1 T# N# q7 A6 i
else if( m_nJob == JOB_ASSIST )
5 D3 L$ x) N; m% c- o" O: g! p$ K nPoint += 60; q) U( U7 A; v+ k" P. H/ C( S
else if( m_nJob == JOB_MAGICIAN )
/ L2 z) }6 M2 \- o; d V nPoint += 90;1 q+ y/ T3 Y% |0 w b
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. d, {8 y) ^) A! L& R* p nPoint += 120;. ~0 U- Q K5 J; `* p4 n
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 n. R+ m" X! [/ @' I6 g
nPoint += 150;
7 p& T# ?. v9 l1 K' b3 z0 B- | else if( m_nJob == JOB_RINGMASTER )8 g+ d! V4 [/ X$ _
nPoint += 160;
3 e% Q q% Q" w else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )& b" r# `7 U9 K' y" B o
nPoint += 180;
6 `' m, l. c* [$ r6 z else if( m_nJob == JOB_ELEMENTOR )& T; u. K- a, R" Z
nPoint += 390;
& n& u* c7 T Y' M5 X6 ?+ u else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" |4 T! W) R0 H# f! M/ Q
nPoint += 120;* ^# j, }6 [) ~, |' w8 Q7 f/ ?
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* [8 o( ~2 X7 _
nPoint += 150;
) A4 |. Z" Y1 d; T3 _0 a else if( nJob == JOB_FLORIST_HERO )( F1 u+ t. u4 |. _
nPoint += 160;- K; k `: T0 I
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! [* U/ d$ V6 y9 @0 D* y7 r nPoint += 180;+ b5 v0 L3 a" a$ ?0 m; I5 m
else if( nJob == JOB_ELEMENTORLORD_HERO ); g% f- k _/ D# ]% j
nPoint += 390;
# W* |" e B2 o) N
3 U4 |+ [8 X+ Y* y" B' l AddSkillPoint( nPoint );; T# }; L; X4 O" T/ ^
m_nLevel = nLevel;
- r6 P9 L( n/ f' ?5 M: |' a) p: G" F9 \4 n& i
SetJobLevel( nLevel, nJob );9 c9 I: ~4 a& Z" d! R0 I5 `
m_nDeathLevel = nLevel;
9 \3 l" s2 G. c5 S$ c#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, W, q7 X( r* i if(IsMaster())9 j; ?1 w8 E1 ^, s! l
{4 v$ [( d, G6 i6 B8 T
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 F2 h% o7 F3 `7 i0 f) k N if( nLevel > 59 && nLevel < 72 )
! J# c8 a' Z" |6 u" e- I/ M3 r1 G dwTmpSkLevel = 1;( W9 p$ E7 K0 p( r$ I5 D8 U, d# p
else if( nLevel > 71 && nLevel < 84 )
: i+ Z: Y3 `' ]( w! j ~* [: P4 g dwTmpSkLevel = 2;( R- @) V- d. j0 {
else if( nLevel > 83 && nLevel < 96 )# O' Y9 J u& ~' i1 e. W
dwTmpSkLevel = 3;, f2 e5 h2 C3 @# K; w
else if( nLevel > 95 && nLevel < 108 )
5 H9 `, G# S) z' `! C dwTmpSkLevel = 4;- m4 S$ M( x7 O y/ x) ?
else if( nLevel > 107 && nLevel < 120 )
2 g, H7 v, i6 b# c1 k$ {& a$ ~ dwTmpSkLevel = 5;
. G0 W: Y' ]6 C3 j for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 ~7 J& P: P& d$ S. c& O& }
{ " w( h8 s2 N7 e) R! \2 |/ V
LPSKILL lpSkill = &(m_aJobSkill);# P9 y! _; `0 v% t* V8 |/ ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )& L8 M( V9 f* g1 j: D$ x
{, L2 e1 v" k Y% Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& X+ I# \# p+ Z$ l9 l: A* ~$ r if( pSkillProp == NULL ), ?* P& s T1 }: F+ @
continue;. G2 ~- x7 O$ L* ~' q* K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 w9 W, p0 H& s6 `( I* |7 h continue;/ t" B& `1 |; t4 w& @
lpSkill->dwLevel = dwTmpSkLevel;
) ]3 E8 |+ M9 |& @3 }! `4 a4 l }
" t) Q4 t; r. w/ `# y' s, l/ S- U }$ I9 L: X! V9 P+ s7 m; }
}8 _6 ], C( R5 G5 L3 Q2 R4 u
else if(IsHero())+ K, y3 O, R% o8 T1 O7 _# A
{
% W3 T' d0 J! a) ] for( int i = 0; i < MAX_SKILL_JOB; i++ )
d, o8 Z8 d0 G {
9 w) m* R3 E5 X. S2 ?, F/ u2 U LPSKILL lpSkill = &(m_aJobSkill);( ]: c* J. ] l5 g. s2 ? g. Y Q9 s1 N, H
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 J7 n* x1 h5 J {
; V) y0 @# [ K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & q, y9 {' |1 j. T5 O0 q
if( pSkillProp == NULL )
9 q; {& k2 j, l- w- Q/ g3 X continue;8 z) w; `1 F. A; x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 Q4 \% C3 y+ y1 w% A2 J! K, d continue;
+ s3 L# Y1 }6 }+ }9 U8 | lpSkill->dwLevel = 5;
" X p% ~6 y& |% _3 k9 o }! z {: @( a6 Y
}
; U* `3 X4 {1 I$ }# b1 Z& Q }
$ L5 |1 }5 c' j: w% s* y" ?* s3 H else if(IsLegendHero())! Z% L/ x* j# G/ K
{
7 F+ b1 t6 O! R for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 _) `' g+ f8 V! R, v0 N/ ^, u
{ $ {! C! f( ~7 q1 j, g/ b1 c
LPSKILL lpSkill = &(m_aJobSkill);
4 Z; M) f5 F( {7 [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 i+ ~$ J. q7 {6 U |2 S1 o- o {+ Y0 H4 |+ W' o) C; O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' t# Y9 @4 @5 @" r( u* R. E! k
if( pSkillProp == NULL )
" ?3 b# }% G/ P+ y! }# J continue;
8 K7 i2 v4 G! N: R% A; P3 ^8 T if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
|: g, w; t" D8 ]( z3 e6 q continue;
R# U6 {. o) }3 u lpSkill->dwLevel = 5;! w9 y% x% o# t- H; D
}
2 c8 L; i) G* B" V9 M" W }3 @6 f+ _, f1 i. @" t
}6 N: J5 R0 i/ r$ j
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' C( r5 t% E7 \ if( bGamma )
$ y6 c7 V' L1 M {5 v5 t" [5 v! o4 N8 z1 I
m_nExp1 = 0;/ S5 F6 p$ S% P2 c5 P+ l' F$ W# @: |
}2 [0 w2 d0 r) x
* D6 l# }; I" Z% I$ J/ Z; B
( (CUser*)this )->AddSetChangeJob( nJob );7 h [6 i4 v9 ]* @6 A8 @2 J8 y% I6 l
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 ]3 ?3 l# [! @( d$ e; D
6 l3 b9 U5 S, K* W z3 e( W5 w, O+ g! a) V/ k# A# `3 C
#if __VER >= 11 // __SYS_PLAYER_DATA* a7 d1 |4 L7 g: G1 O
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& y' q4 G7 }4 L% I+ {5 c5 I( F: s, R#else // __SYS_PLAYER_DATA
9 V! q* u: _) k' o0 e; ?+ E6 ]7 J' N g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( t ?- Y2 b/ S' {9 h g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 T/ Q) M, n/ G5 l6 F; X9 N if( m_idGuild != 0 )1 Z& U1 G V3 M
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( W/ i5 Z9 [$ K* }% F0 I#endif // __SYS_PLAYER_DATA
" z7 Z: J" `; }0 X7 W SetHitPoint( GetMaxHitPoint() );
% `; H" S' L. t7 c* p SetManaPoint( GetMaxManaPoint() );6 @+ `: `7 U& Y: U) O* I6 Y
SetFatiguePoint( GetMaxFatiguePoint() );% ^/ n( g3 M* Q& v7 r- h) q
if( nJob >= 1 && nJob <= 4 )+ V$ {, @2 ~, H' O* @+ M4 x2 G
{
! s( |, T' ^/ }6 [- Z6 x8 g m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 V5 Y7 y3 T7 q u) Q m_nRemainGP = 28;
( @0 O$ z; ~* V& z }+ [. k, M; L8 q \% n1 p; B; m
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ). `: v6 q& k c _# L; G* O
{2 s' f" G ~& O+ N
m_nRemainGP = 118;: ^7 j, M( f. f
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
0 H- H! l4 a# g m_nStr = m_nSta = m_nDex = m_nInt = 15;; k: Z6 M, m, {* R$ C1 j4 e& b
}
7 q$ x9 b* ~6 e; j if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 {! y: c3 [/ w3 ^
{
9 {4 P7 A+ I6 V4 [4 ^ CItemElem itemelem;, j3 W3 s5 O, a7 Y
itemelem.m_nItemNum = 1;
. c* }! K, c; q' _( t itemelem.m_bCharged = TRUE;' a8 I3 R; G G+ f4 t6 i+ E
BYTE nID;3 k" a, [4 Q) b1 e( D0 L
( a% |3 Y0 o3 A5 t if( nJob == JOB_MENTALIST_HERO )
7 r. x$ b1 u! s/ H9 C itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;5 k( J) G8 ~9 E" L" m4 n
if( nJob == JOB_FORCEMASTER_HERO )! x- S3 C/ x' V: e& \9 N
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& W- u8 @+ l& j. Y+ q b3 f' y) e9 F
0 F; ~8 P- j4 i( _+ i ( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 ^, F1 }& w [; W }, y2 Q+ D% r) h& n- W$ z d
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
- [; l. s6 | i# o ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. r0 n; O: ^0 T) h p' y- |0 Q& W ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 s& g# t, ?: ?( h8 j
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 s3 e2 E5 U' x ( (CUser*)this )->AddTaskBar();*/
8 c$ _+ c- z' c ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. c0 y) [9 T$ O0 Z#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?0 o' w5 q# a& ]$ ~& k
((CUser*)this)->CheckHonorStat();! }2 O. C' L- b2 R; F5 {8 @# M
((CUser*)this)->AddHonorListAck();
3 t7 H; o, j7 B+ B g_UserMng.AddHonorTitleChange( this, m_nHonor);
, ` @! Y [) @) x#endif // __HONORABLE_TITLE // ′Tà?) }1 r" H# J, Z" O; w3 _1 N' [
}
4 w4 l) u+ ?4 T) [% @: T3 }- m* h7 F5 u#endif // __WORLDSERVER2 P* P1 a- K2 Q
}
1 C7 t6 p- a& M5 t
2 a6 U% h* A4 m5 R: c然后你进入functextcmd.cpp并添加以下
- M k( {' ?+ T& w
2 ?! N* H( v$ H% a/ _! x0 w5 ?代码:$ \0 h4 `( Q Q" A: W& Z
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 C' g8 S) |' A/ f' G/ J下面插入
/ Q, O- O" @, R j% ^. fON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ F) }/ Y* I7 Y' S; o) g1 ^
1 W5 E7 x8 |0 B1 c# s! [( R然后你去/ |; n& q6 h9 h% c
+ ?9 S: Y9 F- g0 L
代码:
5 S) `' W: F0 ?; M5 q B7 J% M n代码- v' G9 I# }3 n1 a- A; h
BOOL TextCmd_ClearPropose( CScanner & s )
. P% {; n3 `8 Y: f3 J% x. w( X{7 m4 |, q2 P8 e4 d$ D
#ifdef __WORLDSERVER' K! c7 B: B9 A: r& @$ B: @
CUser* pUser = (CUser*)s.dwValue;
; j" @, x- b C: Y& N# i g_dpDBClient.SendClearPropose();
2 Z1 ?; \) v6 e& P% H* ]#endif // __WORLDSERVER! w0 k7 ^! R2 A2 Q
return TRUE;
. G0 X, ~( n! h3 u}
1 I$ w# w) M6 o7 m下面插入1 f# z1 @# _% r# N- G+ q6 z: Q
BOOL TextCmd_rebirth( CScanner& scanner )
! K/ \- b8 Q7 l6 m{
' A& R6 z& ?) v, h& H#ifdef __WORLDSERVER
- T$ e+ B7 _' h& rCUser *pUser;& z% ~. z% N: ]9 }
pUser = (CUser*)scanner.dwValue;
8 ~* @6 N* s! ?if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())# B7 W1 q2 `6 v4 _
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& }: Q% U% s( a: i2 i' delse
' Y& O0 C( ?5 y" w4 ppUser->AddText("你还未达到重生条件!");5 ?6 B7 V* ]. S
#endif
; r* ]' \/ F1 V; u$ G9 Greturn TRUE;
2 _) x7 u( B: U( Y7 @}
& {2 r" c* s2 h" E! K1 @
3 t6 O% u. Q" ]) { T0 \$ T2 x/ }1 \, W) ~5 h9 U' L1 e) F
- C' H! _* {8 a+ p) s& j
2 T0 v4 }5 }+ G) q6 H" `
|
|