|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
" a/ A3 B" N- ~* `. D3 Y4 A7 \. r) pI posted this because someone kinda posted a youtube thingy about it :O.4 n! ?1 f, g9 o: I# T
+ y5 y: z* N, H6 x; Z5 L
Find this in DPSrv.cpp @ worldserver" N0 B) e* o- C3 d# r& L4 |: f
& b) _& v; G& ECode:, I8 Y4 C4 Y4 B! T1 ~
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )2 L( ?7 ]( [ X) D- M+ J. f
{
6 P) m9 c7 a7 H DWORD nId;/ D& M, s1 _) e& k M
int nPart;
) |0 z8 A6 |) N2 |; Q/ B5 f, T6 l6 `1 s
ar >> nId;
( x$ K; t7 O8 H. p, }9 M ar >> nPart;
: o4 o3 Y8 Q* ?2 Y% ~. A3 p/ R
* @! \" ]2 v4 R if( nPart >= MAX_HUMAN_PARTS ) ! E; e. `1 w" [3 n4 \
return;
- ^ R1 V/ v$ A+ d, I4 H4 |; A
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it. e3 `! V' A3 Q9 }! A
! [, ?, }7 I% p( N& k; i3 s m7 Q% s
2 y/ S b+ `, O+ z
Code:/ u2 b9 h8 B# C8 Z+ i+ n+ y
#ifdef __QUGET_SWAP_FIX
! V$ K/ l/ n, p9 C/ r' V9 a9 ]4 {) t. G: d( I0 D! Y
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
6 a2 d5 B5 I' t! P! h8 n pUser->SetHitPoint( pUser->GetMaxHitPoint());
7 e( c$ |' W! K7 A# }1 C9 Z4 ?0 P
5 v0 c4 e: ]( Z1 G if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
& k: s7 N( V4 J$ ~" _$ [ pUser->SetManaPoint( pUser->GetMaxManaPoint() );: ^) C8 E8 y, @% z0 H
7 Z# G8 n e9 T6 m( X( H
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
1 \* U6 S! I9 `2 y9 x pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );& ?# H2 ~& J& q$ n2 A5 f5 C2 p
% T4 |* C, ]" a- P" s
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
+ D0 _) l3 I& @and add under
) L( F ]; b' T4 g, R {, H& G7 I9 S! Z9 K- v& ]
Code:/ E# t2 b, x* b. A
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
4 G) K0 S, ~' d7 h {& E% l6 G y5 Y: T2 Y/ q) j
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 );2 P. T+ A& x& u
}this
7 e8 q6 u4 G" t! ~
; l C9 t( K! @1 aCode:& {, g: l9 P8 S g/ V# w" F" N
#ifdef __QUGET_SWAP_FIX9 e4 `. f% P/ t/ O/ Z% p9 [4 S
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )# P5 m) N- @& R
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());: [0 q2 ]$ S" m, `! v# z
, d+ y1 O2 T& W e9 @, r
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
- Y" B8 Q/ K1 ]+ S# V pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );1 Y# Z7 ^- Q: [1 A3 m. s
( h7 p v ^8 ^" w/ q8 V& ~ if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )8 N( s$ I4 E' @' Z5 z
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
/ m& u# I7 y5 G2 T' o
, W! L' _& _) E2 O& p% E, a# r#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
+ F- M" {& m5 Z0 _5 x/ _ e7 q4 E8 ^. p) S2 R
. q/ p/ F% b- ?
|
|