|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
6 b: ~! n0 g9 T9 F7 OI posted this because someone kinda posted a youtube thingy about it :O.. u; \2 G5 b' w; d7 B3 n* v# Y& N/ T+ \
) \5 P# S5 c+ N* ]: W% `Find this in DPSrv.cpp @ worldserver/ A0 S4 ^0 n* F
/ n9 C$ r& x/ }, X! O2 s h1 r+ S4 Q9 xCode:
3 n% K" J, F8 L: b% \- Mvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% V5 F0 y+ A% M3 m% X/ ~$ W1 f{
, t- p& u4 u8 e9 @( `1 e% @$ |0 l4 [, V DWORD nId;+ w8 l( v O- f3 |
int nPart;
; E( |6 {9 |$ w8 S1 B d0 R4 `+ C. w1 @% V" O: `+ S5 ?; S G7 ^
ar >> nId;
& X8 R* o1 J+ X; k+ B) s8 t ar >> nPart; 1 I4 G5 i) `0 ?9 k* D- E/ |
0 m3 @' b1 D3 h! L$ Q if( nPart >= MAX_HUMAN_PARTS ) - c! v* X+ S0 x% t" v- H2 A
return;% |/ e- M& I# i
# Y+ h+ y5 }, ]5 D2 h0 e. D4 K b( k CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
/ ~: R, t" B) v
6 [- A% n* w7 `0 G& X: r- q' m) d1 l v4 P
Code:
1 X1 R# j! f, u8 U: u#ifdef __QUGET_SWAP_FIX/ t4 Y/ V2 O+ Q
# i* M% Y! \- B; H+ E' w, b' W if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
& X3 G) j u R9 y a9 j, F, [& a4 H9 P pUser->SetHitPoint( pUser->GetMaxHitPoint());
; v5 d* S* k& ]1 [: L, u- K4 X: K% Q1 Q* @
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ), z; ~$ d1 a2 K1 ?* A
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
. q. M+ @8 C \1 l. \& Y
! m; y5 D2 z q1 X* G3 I0 j& u# B if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )9 ]0 [" l+ Q6 t V0 x/ P6 Z
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
6 b' V+ h' D9 P. ^; E4 t6 u1 L; `; O6 x2 r8 k8 K
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp7 h) V' k n! a; y
and add under6 E% {; k: u* b3 r( b
2 W; @* y8 \% n) z0 R5 y- lCode:
. E: l1 }7 i5 X( fif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
+ [! e1 L) ?& v8 d7 e$ z/ q% u( W# ? {8 z% p8 d, _4 n; p9 y6 G( |5 }
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 );3 c( `; N5 v* C. G
}this8 ]% q8 v) F4 v
; z% ~( T) ?/ O5 x2 xCode:
0 k7 q% i! q% O+ ?: m0 ^) k#ifdef __QUGET_SWAP_FIX
3 m8 S E5 |9 z% F" ] if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
- J3 ?; ]; B6 {- L- | pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());4 X9 _9 G% t1 R, x/ O
z6 H6 k$ R8 M
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )0 v3 k- F% d9 s
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
( m' x+ f2 t4 H' P' A. |1 N9 [
8 i$ X. f/ U- d. }: K if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
6 B* u) l; {4 r, E+ c6 Q" A4 {9 ] pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
2 G: H% r9 H$ [& x7 r/ f; Q5 w9 H) N& V2 w
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver $ y- o9 F1 L) a; D* o r% Y. s
( U3 O/ x) H! F* _
3 [; O- g0 R' B6 x8 I2 o |
|