标题: 修复交换错误 [打印本页] 作者: 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 3 z5 Z' v9 d2 U) yI posted this because someone kinda posted a youtube thingy about it :O. , h$ f. i- H p9 U) g. k; M) c1 {6 t/ l7 g$ e* j6 F P
Find this in DPSrv.cpp @ worldserver: f/ Z9 w2 {3 d' v
: j. w; |1 l! F4 X K/ W8 }# A
Code:; t5 M: @4 [1 E
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )/ n5 R& ~/ W& v/ y( E* `* x b i
{ 6 r' }9 W$ `( J6 |2 C+ R4 } DWORD nId; 8 n# t7 p/ }% `2 L: R: X int nPart; 0 G% X0 J6 `/ Q( [$ ?1 Y% o7 K( r: ]# v: I1 R3 y9 ]; O5 p {, s4 a. q
ar >> nId;! w/ T. L) m8 c8 K
ar >> nPart; . a' T* t0 b7 v! b% S8 f' t) P7 |
, P5 n7 q- O7 K- k5 ^$ z" m if( nPart >= MAX_HUMAN_PARTS ) 0 k' h4 w5 I5 Y, q* U0 ~) ?2 n return; , @6 v; F2 o+ V1 h& S2 F, m; G6 ~* ?! e8 H* S/ x8 i
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it; D- y0 @0 D/ S' y4 u( P2 s+ R
- U: b) X; a8 z0 p7 @" A+ F : B3 L, X$ w$ n+ G7 o1 p, J/ hCode:9 F) v) A* I6 v. {' w
#ifdef __QUGET_SWAP_FIX % f! A, }7 P; U# \3 e1 u; i5 K5 I/ u& [6 \! v% p
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )* i$ o1 H6 w) f4 O( n _) H
pUser->SetHitPoint( pUser->GetMaxHitPoint());( _0 q; n4 s" m L
6 u+ k3 f- W) ?* \: x7 ^ if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ) T! U! D8 S1 a pUser->SetManaPoint( pUser->GetMaxManaPoint() );' e+ F8 i+ t$ ]6 B# a$ I3 ]( d
! W" j* S8 S1 N: V( K) p% u
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ) / H$ C, B+ |0 R. m, F9 ]$ B; A. Z, m pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); 9 m+ y) o7 p+ t+ j1 I! _4 ] 8 f! F) P6 L* C7 K+ q#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp3 `2 d% Y" X. f8 g6 n/ K( a' D5 |
and add under) ~( F! ?! O% c Q' ~. B- z2 X
! _4 h7 c! i, b# ?. S1 t
Code: $ q, [* U# `1 }4 M( G* k# H( N! lif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )% u1 }3 `, E# p& T& {
{ ! h& R9 t `9 I0 L0 }4 X 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 );- `! b' @3 N# a
}this & B* s7 d5 t/ E% F6 b! {8 m 6 Z! ~: S0 @' _5 ?. ?Code: . Y3 k3 q6 W) a5 E* P#ifdef __QUGET_SWAP_FIX 5 n! h+ S7 p& R' {; e( s. t if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ) ; G; v4 V/ d( I, P0 h' }7 g pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());0 o. C; k$ k" e/ w
" b7 y K# n. D6 y1 E( @. l if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )- Z3 f( W7 f# ?" y8 {+ d
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 ]. h2 x( E, o) [3 S' O
/ O" m B* f! M2 l( I" i& Q2 q if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ) + Y: b9 w5 n3 j; t$ }# p' S/ D g pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() ); 9 O) R$ U; d3 p; F! ]+ s# ~% U" u$ Z
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver % ?" L$ V+ v% o7 s P& w3 _3 O# |; r) v' C4 D
6 x9 R M8 Z( S2 ^