标题: 修复交换错误 [打印本页] 作者: 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 ) ]$ y3 a5 I1 O
I posted this because someone kinda posted a youtube thingy about it :O. 4 |5 t: N) f% j2 F- x4 q, U. ]4 w% A5 s8 ?, m+ f3 k
Find this in DPSrv.cpp @ worldserver ; O# \1 m8 G3 N {- Q) W) {& p! F2 s+ h5 q9 b o" R' {# ^
Code:5 T2 s0 u8 d+ t0 f
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )0 W: C r9 u4 S. ^; t! X: G. @5 e
{8 ^8 g8 C3 R. O& t
DWORD nId; / D9 `( o# E0 [4 Z- y1 d; W: r3 j int nPart;3 i% u5 N( o4 @* }! l
) |( h$ b- k0 ?+ e ar >> nId; + S6 }4 v# i7 a ar >> nPart; 3 j5 O# z. v5 q) F" L V
p# i/ `) E1 ^
if( nPart >= MAX_HUMAN_PARTS ) 3 m6 a( b. d' p3 Q' h- M5 R+ P" c0 e9 J return;; M; H# _1 a: z+ a# C
" {; X( |" E) u2 o+ A, b+ L CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it , N+ @3 u9 b% z3 v& A4 R* C0 J, b* U
. U! S! h/ i. m$ L: p/ p9 ]
Code:1 ]: E( Z2 H3 g# ~) \' R
#ifdef __QUGET_SWAP_FIX! C) @. F, ?! e6 v# C9 a* @* D
) ]: @, y9 u; j
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )" i( r. R- a7 j+ R5 L- N% `5 Z
pUser->SetHitPoint( pUser->GetMaxHitPoint()); 4 H" j+ B G- P1 P# m S$ L6 j& r3 O% U! A/ x6 q7 o
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )2 ^6 A) F2 ?. P: l6 U
pUser->SetManaPoint( pUser->GetMaxManaPoint() ); C( O7 \) X) G$ ]6 _7 z
% |. E( F6 ]+ J1 z
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ) 5 e* E8 O* _5 K$ t1 e- ^ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); * T6 E& L& ]9 n & r2 J7 ^" G+ E1 Y& \. o#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp % M2 F# v. z9 t5 P' Jand add under% y5 d- u1 ?9 w& N
, c/ ^" f$ |$ l/ y9 x5 c7 n6 g
Code:: s6 |) d$ X- D B5 {1 S# Y
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ) " Q% F: Q/ M, V {! A( x$ p/ c/ [8 T1 ~; ~$ Z2 B
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 );: A: A! v8 q- Z0 }
}this ) c B% C R6 o* k " R/ x1 D" q0 N" z* I3 X; z! \Code: # j C& I; p/ W4 Q! u#ifdef __QUGET_SWAP_FIX ( ?% v: m8 A( f/ s$ J9 a if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ). @+ w: q7 Z$ o6 f
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint()); ( l3 `6 i: y9 Q1 y# ^) u& I) B' N1 ]( W' b
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )' _! \& U5 d+ n: {
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); 5 L+ Z5 s/ `: r% o+ l/ {+ V5 f4 e+ N7 d" t2 S, z
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ) g" D% k% D6 B2 M! D
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );9 _1 Q' @) Z( v9 ~& W
5 b3 g% ?0 A' |) @+ s9 `* Q/ W. k#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver - B: T; Q, E/ @. x