|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked / \/ l8 r6 E& u
I posted this because someone kinda posted a youtube thingy about it :O.
1 ]+ h2 n. B7 N/ g0 C& i
9 B0 U0 `( q5 J2 J- }5 P* ~Find this in DPSrv.cpp @ worldserver# i( ?: R* Q/ |0 L$ r4 d
% O' O# U& f9 ^; j7 `
Code:
3 c( q1 f" n3 y9 P1 Ivoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
! m! @8 }. d* N' l7 t; Y% m$ f{) r) h7 u5 m8 p1 B
DWORD nId;
7 Y0 M" o u& @& Y( X8 z int nPart; |& y5 C; d1 |$ p$ w$ i, P' k
6 t: J# y4 q: s* ~ ar >> nId;
: L' c Q' E1 Q/ ?& Q ar >> nPart;
! P A, S& b( r1 |2 j, i6 J- U
- l; s& M( w$ O% K! K+ U if( nPart >= MAX_HUMAN_PARTS ) 1 }- o! n0 m2 s
return;& g" d' ?& _. c, b3 {" f8 M3 g5 f) \
$ c) T' f2 ^) |+ W/ K. b9 K: s CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
: t) f2 v7 _8 X' n% O
' E/ Q% a7 F& I u8 `' v7 q V, ]' a) `3 ?5 \9 x: M/ k" b% K
Code:
4 m* d- m* S: \0 y, y#ifdef __QUGET_SWAP_FIX8 \1 d1 s) s; |9 W9 |
5 T8 f) _# K+ l1 _; G. N' C if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )6 @: K! u1 G- x
pUser->SetHitPoint( pUser->GetMaxHitPoint());
f+ O V: q E# l6 ]: L8 J
% F {" w/ \+ ~; Y if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )6 e1 o$ }7 r+ K3 `) |5 V
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
/ p& V1 _; [$ E- X% P! M3 a) E) D: b3 e ^! }0 }8 r
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )4 |2 F' }9 R8 P# s& o! |+ A
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );. Y% D/ X I% \9 F4 D7 H
" ^: o9 u/ P5 A#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
1 S& i; R& k7 z$ F9 W: nand add under
1 N* R! g, Z+ J0 l2 `. G" k
( Q' q# A; d/ P% L/ GCode:9 b: X2 ~( |; a4 e- ?
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ); f$ R- ~5 ~9 o( j8 x6 f( F
{
4 z7 k6 _5 \: A( N' J4 z5 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 );- d% V( O x" L. G( L) x5 U
}this
1 R. B1 |1 T+ o9 u6 G. t& X8 `, _6 ]$ e6 c2 D" O" s4 U5 _
Code:
0 o7 V& M. Z$ y6 Z6 @: ^: f#ifdef __QUGET_SWAP_FIX$ Y, x) u- f0 s/ w& M! T# e4 L
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )3 P' y0 O- ^6 ?. v. c
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());1 r# N; P; z6 x" N( h& U
; S7 d% T4 F$ X
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
0 @ v6 K! D1 F pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
/ }% _# \( Z" c3 e' `# W" L" X8 ^- |0 _4 y, |' F, I$ }
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
1 b% d) r! f8 t' s% X( a pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
4 h3 o6 ?/ Y N8 k. }; G6 P q' }) c
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
1 _! I! Z! T& j% p+ K8 Z M. J- a7 \1 e; V7 D1 V
/ i! a, x4 G2 d. x- \: Z |
|