|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 9 Y9 L6 ?. g N( s5 a
I posted this because someone kinda posted a youtube thingy about it :O.
0 c: `( ^$ E8 X, a4 J5 k7 u& o
# n' M3 F! s- l! G$ Q4 QFind this in DPSrv.cpp @ worldserver
: Z! G c& t7 ], n" G/ A6 i2 ^+ W% @6 r# J0 i3 ~9 z
Code:
/ _. Y8 m' \' d, Bvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )+ z* j+ S% A( u; }
{* B2 h# b/ U F# s; x( H
DWORD nId;
& g" Y1 { p+ t4 c int nPart;9 p( l* _& G4 x" Z; I. {
* g g& }0 b% p0 H3 v! o- d ar >> nId;
7 ?; L) |& O2 F9 H/ ` ar >> nPart; ) u% X' Q9 F3 N
h2 I6 D) F4 D2 s1 z7 a+ a9 [5 F
if( nPart >= MAX_HUMAN_PARTS ) 4 A8 \5 t# F6 W" Y
return;- f7 A" v: t- N# y9 s0 F) B
/ a& F& _9 o s1 V% |, V
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it$ n% n3 |8 Q5 V0 A: }* I7 v
; Z; ]4 U5 o6 r$ [2 t( q2 M
9 `0 [- }& U; z m4 qCode:+ i1 k, d* N* h; ?
#ifdef __QUGET_SWAP_FIX
$ c$ T- Q* v1 A2 P. \
; C- U+ e0 t7 @7 V* H if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
2 i- Y* C, n- O) p pUser->SetHitPoint( pUser->GetMaxHitPoint());$ Y% f2 x# V- i3 q! d9 q
5 d: n; X' s) p( W: s
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
( E1 n' I6 K. A1 \) N/ ?, g pUser->SetManaPoint( pUser->GetMaxManaPoint() );
7 G$ ]4 A$ x- ^ W; u9 L7 J ]7 ? L3 Q' I
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )3 {1 J4 O2 |1 U
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); _( k# k' r9 `& S' q: _" [
z7 f& W" p. _& B#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp4 |! i& F. Z" e& A/ g3 _
and add under
) T. i! U6 D" t9 O- n- i3 T' r/ b3 C* h/ O j: j' `, s4 v0 |1 N
Code:
( s& |2 N, v' @7 R/ j9 f" Yif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ); t/ J# y+ Z* L
{
8 e7 i8 v/ d 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 );
: j( ]8 F+ a; u0 ^- v( b' T }this4 _: k) G. D& f8 d7 }
! o: J) e$ g. _' n. vCode:
* _$ E8 W9 @2 {0 G d2 ^, c* M#ifdef __QUGET_SWAP_FIX% U) n# c9 ^+ \) h( `6 `
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )+ D2 b$ B* N4 ~ T. q6 L6 }' a
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());. d. m/ ^- }& x$ L9 m: u% \
* K# ~+ a% r( r5 G if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
- z& f% L+ \. F$ G pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
& u3 ? [8 ^! Y0 `
1 l5 [ t& i9 L& Y if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )8 a& |' ^. b; @/ l+ L
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );6 |+ ]) q y3 M
+ Y% c) @" h, B2 b#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 4 X+ E8 q% ^! S2 u4 x* l
- t1 r& a4 I2 d& W, V" [- p1 u; |
X! \& F4 m6 f |
|