|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
c$ v7 C& i5 H/ o) n' t* ~2 RI posted this because someone kinda posted a youtube thingy about it :O.1 L0 d/ u5 R7 E1 W) M
7 V7 L" M0 X) VFind this in DPSrv.cpp @ worldserver* T$ ~- a8 r, U7 O) c9 K* N5 }0 W
( F+ Z0 W0 i' o! q, y: d; G _Code:
7 {1 e/ ~" ]5 D) ~. V8 `( V$ nvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
& i9 [- B3 Y8 |+ n8 t. x( R{% A" p }7 s2 s# S
DWORD nId;
; T0 O |! I$ u$ l int nPart;2 f, [" ]. @# Y
o6 U' v' c# K5 m8 d: H+ N
ar >> nId;
: d1 S+ u$ M$ s1 @! P ar >> nPart;
( Z0 x0 I% w$ F
6 _6 R. @5 @1 J( z% L if( nPart >= MAX_HUMAN_PARTS )
$ y% ?& s9 x2 y. X, b! o: x# w; i return;
/ ?" B5 I3 l& _" v' w. O. V+ [! N, H% ^$ b# ?0 ]
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
9 {6 `0 N/ b9 `: ~" D; B' \% N
5 z! Y. a: C' i; n- a# s
3 \, V4 H& S8 T) FCode:% J: z: C9 a/ H( ?
#ifdef __QUGET_SWAP_FIX% [& c( t% b4 T& {( G9 @
' j/ g' p0 z P, j& c4 C5 \
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ) Z D2 P. |3 Q- Z) u4 K; f
pUser->SetHitPoint( pUser->GetMaxHitPoint());$ W2 l3 `9 n+ q# t% g
* d& R, Q8 w& ^ if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
) Z$ ~+ s; }: C5 x4 i pUser->SetManaPoint( pUser->GetMaxManaPoint() );
) D% ]' N4 `8 b' t' P9 j
& A% E0 e1 A. w0 |# Z4 V! v! a if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ) a* u& Z/ U9 @9 m8 ]) v* H" G
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );0 u5 |5 W) @9 U }1 K; q
, Z( h. C9 i. n# h5 ]% b#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp) B/ X9 b; T6 m3 S% f9 N; v9 z
and add under
5 {" Z) S# h5 w+ W8 b- q5 c' V: c0 k* \
Code:
# [) b' q7 ]0 i+ K4 ?if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
& q" D+ T, R3 c2 i9 J) g, _; M {
! m9 S4 F" w$ z$ }* v# W' F 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 );
7 V2 _7 n" D. f, p" X2 @ }this$ O# f2 J$ z' d: _4 t% z( @
, J( S {% i1 y( |. cCode:
4 S; h7 u8 ?0 i#ifdef __QUGET_SWAP_FIX7 K: b: S& p6 a% [) C" A
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )/ h7 M* Y. k' y; F' O A% @
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());- Y/ p6 z- `, Q, ^0 \
! s- E7 D% ?2 Y7 U h0 X2 | if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )+ _$ H [9 y% v$ o
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
8 I3 }4 ~8 l: g/ _ C! e! X/ @3 v# b( Y' b8 w+ q
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
& v5 S( _- v. a- R5 I; [ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );5 g( b# K3 A& B
9 l/ v4 V1 y- n' y! P#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
& i$ G) z1 W$ S3 G) q) ]0 g6 j- W; k
$ o! n$ B8 |( G! u9 u N, t! }; R
& G1 @4 r! F$ A! v# P, {4 t |
|