|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 4 h& ]! D! h1 v2 h+ P* t
I posted this because someone kinda posted a youtube thingy about it :O.
) }' E; u$ P# u- ?2 \& E+ k6 N. J3 m7 {' v1 }4 M3 E. J
Find this in DPSrv.cpp @ worldserver7 t- D: ~3 n$ o. C6 ], D
# V8 \8 E8 l/ N6 w2 N: P
Code:
T! R0 Y% e6 Uvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )- Z/ J3 H. L- B/ L2 P$ K' p. ?
{1 k3 ]: [. a, m
DWORD nId;7 l1 t: Z" S) T3 h4 G
int nPart;
* p7 X3 p8 h7 _; z
% |8 s" t4 `: z+ P6 ^ a* W ar >> nId;% A- u5 O- _2 B
ar >> nPart;
) k7 I& W% ^% p* }+ z
% x! y7 e2 k: Y9 A3 k- _9 { if( nPart >= MAX_HUMAN_PARTS ) q$ G6 {( W6 j @
return;! X0 f9 {0 R( f+ \8 v* g
) k$ |! d% x/ p+ y
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
# t# q, @2 b9 u
: F; V _- m; X1 A. U
$ C" V! }9 M. k( n1 n- uCode:" g) C, y% i$ ]7 q( x; H9 a. ~
#ifdef __QUGET_SWAP_FIX% u% Z) t$ v$ P9 s R) L$ G
9 B: F# Q3 f+ `% y2 J7 q, w8 } if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )+ c+ ~/ d6 c; a# _8 _$ z( t- H9 P
pUser->SetHitPoint( pUser->GetMaxHitPoint());
/ ^; a. K7 T+ w: {# o5 e- X3 a' r
8 L# w6 W9 |/ b2 k0 b) S if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
, M; q! u# Y8 s) z6 U m pUser->SetManaPoint( pUser->GetMaxManaPoint() );
$ Z0 ]# \0 c( V# _/ C6 [3 N) z# T2 y. n5 L$ S
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )# D, [. X3 u# q
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
% A9 @) t% \. e. Z/ ^' g+ y; p" c- X, [6 r
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
, c4 B' b9 t: E- Q4 \+ V8 ?and add under! `$ }, H- o) ?6 r! `
0 |+ a W* U# \6 s8 E; F
Code:
+ B, Y/ o. U1 Z4 c0 Eif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
7 m5 N% ]+ g" ?; Y0 J* t {% i9 x' U9 F; m* X0 c; j! z
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 );) V! A5 x1 K; c1 z' t3 G
}this
: {, T* ^9 S1 `6 w' ^
7 \$ d# G5 ^# K1 E! rCode:
- ]7 G" z# Y$ k# |#ifdef __QUGET_SWAP_FIX
8 o- g% r, f0 M6 S( _ if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )/ u1 @1 H9 x! Q! R3 ]
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
2 t$ K3 y1 }( F$ ]. `( Y) a4 R7 K- l1 h$ @
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )7 g; v9 b- c$ N
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );5 ^" ?+ z2 W+ b/ c' }: d4 D
" ~' u: @; B( B( Q$ i( ^ if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )8 G Z0 P1 f3 F Y+ ^
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );; a/ P* l: _' }6 G0 V+ q; n
4 _$ \3 U3 m, _( I' ]; _
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
0 _' _5 F, e2 f2 S5 Q# n
) K! H$ {/ ]; x/ {
5 k9 q: b& ^. Z" _7 K |
|