标题: 修复交换错误 [打印本页] 作者: 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 D7 w& W) y$ o" |+ R y; xI posted this because someone kinda posted a youtube thingy about it :O., v, m# | L$ ~; z! C$ J$ z
' ~0 S7 b6 z" f. M. A) wFind this in DPSrv.cpp @ worldserver ( n; w; X1 t- \3 V$ E! l+ t+ l/ T0 D
Code:* p8 e' v% K3 g+ `
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )3 y" z6 n( l2 ]# _. `( ?1 [
{, `# {" x5 g5 b) Y
DWORD nId; ' a8 e! [9 R) P: d int nPart; 9 G j0 j% H4 f4 H' n( [6 v, z% K 9 T9 x# ?' i6 K ar >> nId; l% ?0 M8 \, m
ar >> nPart; 3 `' n$ ^2 r J' k6 L; Y 1 r* t9 s, C1 g ]* r( r* c if( nPart >= MAX_HUMAN_PARTS ) 9 b; E2 u+ X5 Z" U2 m
return; : y$ F3 X$ P6 i1 j/ [! _ l( ]$ I5 v2 K: l% w+ m
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it7 ]+ E" I5 K, L2 {
6 k8 p3 H3 E4 ]4 R* J6 Y$ w5 \$ J0 g d' B. ]$ S- ?- f: h- N
Code:7 l" j0 D& A/ _
#ifdef __QUGET_SWAP_FIX4 ]$ P6 h) c3 D$ T5 n
6 t7 o/ C5 R$ w6 t d! R if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ) - g& H% B9 k% w+ c& \3 L pUser->SetHitPoint( pUser->GetMaxHitPoint()); 5 Q0 a$ Y3 k' x9 O- F' v 8 W6 H1 n* f$ H% O. f0 b: C if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )" s8 Z( @% |/ _- s
pUser->SetManaPoint( pUser->GetMaxManaPoint() ); 7 }1 T# r% r* M0 h: B6 W; x0 U( i! S. h: _ U: {/ A8 [) C# i
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ). m$ E7 M% _7 l% o( E
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); $ h4 h6 U) B, I8 W& A; t# E) W6 ]9 M4 p e
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp. f7 J# s2 l L1 X; K7 z$ @. u6 T
and add under9 }) P6 M9 d; r8 [
9 v: x& I8 k7 t6 I
Code: 2 {2 J, i% u, Y% u oif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )& O1 o! D) U! R( k6 @! b9 E
{ 7 g I( N8 w( d, d& D4 ?" H 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 );1 e, g T; V U T- Y' _, n
}this ! w5 K' @; f4 v5 q* P/ ?0 ~6 t+ w% ?6 [- J: y
Code:5 Q: H1 k/ m! H5 e7 X
#ifdef __QUGET_SWAP_FIX( O" X7 ^: b* U8 O' G- {; D
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ) ; s% k/ r$ _( { pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint()); 6 g! t( r9 ~# y9 I, v ; D# l$ l3 a7 [4 a( X if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )4 |/ f8 P! R. @* y8 u
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); % J, f7 @8 ` e F0 _4 g1 O8 n$ z2 n8 L; p; |0 q if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ) 3 F H+ ^1 v4 _ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() ); ( t( W X: i( N) T9 t# o% r+ C5 c( ~3 [5 F
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver % i% N% r* ]3 l. M+ b7 N& |( N- u2 _7 U4 u+ f0 o
8 h5 c% `' B* [3 _* r' ?; Q- ^$ E( j