标题: 修复交换错误 [打印本页] 作者: admin 时间: 2016-1-10 03:43 标题: 修复交换错误 Hi I fixed the swap bug a long time ago it got tested on my server and it worked 0 E4 ]% ^& H$ k1 H% t1 d+ P7 ~
I posted this because someone kinda posted a youtube thingy about it :O.9 ?, ?: B3 L7 X& X
( K: n, d) p$ P
Find this in DPSrv.cpp @ worldserver1 Q: j" h; C- z R7 X
6 j4 `- z! L" t) G/ ZCode:% A) @9 q0 w% g, F0 L+ d* l7 K
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )8 v. O! B/ v9 N6 F% ^1 A1 ?& s8 b' m
{( @( f" w1 t& T' P
DWORD nId;# U6 G) t( Y4 I* j3 g' }7 Z
int nPart; ) M; \( l% S0 n! N- T9 ?8 |( _+ m& F. R* g5 i
ar >> nId;0 M! o# |/ z9 ^; `& @4 S4 D u
ar >> nPart; ' x5 F) X( v4 I# _
+ V/ A$ x) ^6 z1 N+ r( U8 K if( nPart >= MAX_HUMAN_PARTS ) / L0 y: Z4 _1 s6 A return; * X- X$ b; z! e; I% u 2 j7 S8 Y9 g. K" C. t CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it$ r$ R3 @" t7 e0 |( w$ L
9 F' U0 V {$ I3 r# w$ t
6 [% H2 x; d# Q5 T9 u" o0 p# k# k0 V
Code: . i, Q- O- u+ |/ t# b#ifdef __QUGET_SWAP_FIX$ ?, h( O, c$ z0 N
( S' c+ t7 k" F' @5 m: |; p if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )' U6 {0 g' B0 {" J
pUser->SetHitPoint( pUser->GetMaxHitPoint());# }; [ v* q' A9 }. _
% l3 |) I6 ]+ q) X/ `7 }
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )7 \/ q# O$ ~' ~
pUser->SetManaPoint( pUser->GetMaxManaPoint() );! d0 D7 z& k3 Q" F8 V* Y
9 ~" H/ X {( ^$ Y+ x2 c( T
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )5 X! n2 \2 a0 j( f7 l
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); + p* c- i4 h2 _; Y P , _/ V2 p9 f( b, U9 X0 h#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp " ? z( A# s( E! f! k e2 t2 Kand add under9 e2 l% P; F1 W5 p
/ N4 z1 J& i* i( c2 @1 `' ^- t
Code:) R; m5 K" s) k b1 Q# I8 I
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )- K2 L( ]: b) l% a7 n, b
{ 1 s6 |+ g1 v$ C" v% Z: A# J CMover::UpdateParts( pPlayer->GetSex(), pPlayer->m_dwSkinSet, pPlayer->m_dwFace, pPlayer->m_dwHairMesh, pPlayer->m_dwHeadMesh, pPlayer->m_aEquipInfo, g_WndMng.m_pWndBeautyShop->m_pModel, &pPlayer->m_Inventory );- V' ~ N0 ?2 U8 q8 P4 n ]8 v
}this ! B' b D d0 y. O$ H3 s7 |- N; V6 R% p8 J/ K ?( _
Code: * [' n7 D2 Z' q( j U! K; F#ifdef __QUGET_SWAP_FIX# b: m" w! [9 |# r4 ?2 x+ F" Q6 s! e
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )2 D: m; t& g( l) b( X
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint()); 0 b$ [4 e6 p3 y. z9 c) Y . O1 A, V8 L* h3 H) L5 D( S if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )& r. P2 I/ R3 C" \
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); 4 o" v9 Y/ g# k4 @+ X2 i1 K+ {( T) }2 O( _! T
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )4 [9 X; |3 |( m) E7 K4 E3 O
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() ); ) s, t) j( ^2 ]+ Z / J, w5 g- x6 }' m#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 2 L6 Y7 m0 O- x& V& c
* S2 Y0 t7 Q D+ b1 T
3 h `4 U4 f. x; _& {# X+ `# P