|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ' M; O& q5 n3 y9 K7 Y' W) {6 J3 f
I posted this because someone kinda posted a youtube thingy about it :O.$ Q7 Z ^" Y; z- `& |! |
- I' h: G3 T& B3 Q5 W& vFind this in DPSrv.cpp @ worldserver p) c: [8 B; D) a+ u
/ D/ C4 o) a/ V
Code:
+ S6 H5 c- x$ a5 q; wvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )5 ]+ Y( S% ]1 Y8 s4 v: O8 W2 G8 D: T
{8 D5 a& d6 K& p% y
DWORD nId;
! @$ @/ i2 x7 P) \7 w int nPart;
# w# d+ z2 V1 k4 x; v
* r- r" ?0 U9 g# [: [0 @' A ar >> nId;
5 Z: H7 Z+ h* w& N, g6 Q ar >> nPart;
: C% p$ Z% o1 q }4 q) w" G 5 m& w) r& ]1 b
if( nPart >= MAX_HUMAN_PARTS ) $ p! H' A" r& Z! v4 ^
return;! R+ ? m1 |, a0 E
% k6 v/ p! e0 M- v1 z
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it& W/ A2 [' g2 P: C0 T' z" b3 T; p
- K( q" A# Z, t- N Z+ [
4 u+ u1 m# ] y j3 e' h& LCode:; s3 G c; n, o# l. K
#ifdef __QUGET_SWAP_FIX
2 A6 B# V) x7 q. c9 o8 _. [; E2 m& A# ^* y0 p; Y6 O
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )" O( p7 N) \1 f r7 i) _) _
pUser->SetHitPoint( pUser->GetMaxHitPoint());
! E R% |9 K8 z( q6 W) W
+ F3 n, ], v% Y- j `* O! i if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )) f; N1 \5 j, v$ h7 ]
pUser->SetManaPoint( pUser->GetMaxManaPoint() );- ]4 |9 _/ H1 S. E
& \2 [2 l/ ?/ E if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
D3 R' c" w8 g# a pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
6 W2 n2 G) l$ E3 Z9 W S. H! X( r) Q! N2 Z8 T0 z+ x
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp$ z8 |& B8 O( [" @+ | l
and add under
/ W; Z. B: V4 `
+ m. ~$ d0 F2 h; w% |7 kCode:
# h) J0 o- E+ y' C0 O1 e6 m/ l9 vif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )+ {' f! Q F3 p/ C
{
, N+ F% y+ q; a0 e a8 ^: K 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 );
j! M% C/ p, _: F }this, S9 o1 V& R2 e( |: d* l
& @/ w. o0 |% [1 j6 SCode:
) n4 l4 A V5 k; H#ifdef __QUGET_SWAP_FIX
+ g$ \# J n9 i# Y1 V if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
$ p6 Y2 m9 x4 A, B6 L: J pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());0 h' m) y$ T! M) N* G; Q
+ A: q. S0 ~# @, G1 z2 a0 O8 @ if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
! R3 W6 U2 Y8 Z- V8 `. m pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
p) Z* a. T2 p5 C5 q1 y$ ?
3 h" S C K. `' T if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )2 Y \1 E, a. _
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );1 ?$ N& l4 ]5 e* U
- O3 I O& \+ M
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 8 j9 G. F2 B( s' ?! M; x
, u* @) Q+ |" V( F; M% y
5 @9 I- [* H! {
|
|