|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 3 g8 h) R" p3 N3 [
I posted this because someone kinda posted a youtube thingy about it :O.
' r3 W4 m& w X
1 E* G0 O' n$ }4 l2 AFind this in DPSrv.cpp @ worldserver
9 S* i; d g- M/ T) ^% q5 ^/ l4 B- t# F6 k5 ^2 ~7 G
Code:
N) R/ _0 U! n' gvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )6 i: c8 J5 m4 h# C2 M$ i
{
4 E0 S2 T( v. _) S; ?4 }9 i$ c# P DWORD nId;
! ~; A8 J, I' J$ G int nPart;
0 Z. [' \6 }# u' S" o! K8 X
# f9 I# Y8 a- d! n2 [4 [; F ar >> nId;4 K6 X" e" V/ p
ar >> nPart; & \" a, B% u4 S$ D0 T1 A9 D4 T
& w8 ~/ O+ t( g9 P if( nPart >= MAX_HUMAN_PARTS )
& E2 v' m8 i. V% c s. X# ] return;
) \# G% e( V8 B! Z+ a* c! C& O5 a0 r2 D
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it! A m8 o2 I6 B0 a3 N- i6 v, }
' X& p8 G! I4 r. X* S0 l8 c4 l9 R- R7 r O5 j$ n
Code:
' V7 {8 M6 \( L#ifdef __QUGET_SWAP_FIX, d' F; W0 a1 x( @/ H' G
0 P0 q5 H1 ]$ J) ?4 @3 u
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )6 R: |) }: q/ r/ O) Z0 X' @
pUser->SetHitPoint( pUser->GetMaxHitPoint());6 z0 j2 J9 E1 X" z5 i, T6 R% S
( W/ i& Q7 o, M3 _
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
2 _3 j7 m6 M$ O3 w2 g* K pUser->SetManaPoint( pUser->GetMaxManaPoint() );- l: _) r: _9 W! p$ w1 o6 q
" c& F4 `$ E' `$ b4 e if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
6 j+ Y3 l- q4 X4 f4 h+ N pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );/ Q3 A- v2 b) R9 L% e. P
8 @9 b* V2 Y: I. ]" o
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
* ^+ R$ T. }& X( j4 N; @3 H7 M2 _7 y, fand add under
. a5 N% l- p; h
8 |; T# d+ n) o% D1 P9 S# Z" }- \Code:
: O2 J! W/ D1 D) U9 E! iif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )& `+ M+ W) R1 j7 l4 }: n
{
7 T" K! |" m0 E7 p; u2 }) }% } 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 );
0 Y+ n( e: ^+ Z& y& O& d: T' E }this
8 R" [+ e, K; ^+ i1 t
2 J0 q) U$ H1 l1 \5 ^# {2 |Code:5 h7 T8 m0 w. \! g: M
#ifdef __QUGET_SWAP_FIX; I& A; p" e( z8 \8 Q1 X
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )0 u5 C: Z4 j# L
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
# I0 X1 c3 ]2 ?2 n1 M$ ^) W7 q! o/ f0 G+ ?
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ): M' o6 r0 G$ H1 U
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
9 E* ?; {* o/ N. K* U k
& j$ x/ b. Q2 d" A, m if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )2 u" @) g! x0 Z1 k2 M3 c
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
6 p* _# s2 u7 h4 Q" d1 u. T& S4 o& }% d# ]
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 3 Z3 I* z- x9 `, S9 z7 i* P7 s. g3 x' \
% \. W/ ^9 p2 `0 G/ F$ ]: T3 h
, P" d# ?3 @: _ ^: z( k |
|