|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
/ l0 y( j. l7 Q& \: l/ l8 aI posted this because someone kinda posted a youtube thingy about it :O.+ X- d4 A$ T% P' i4 c/ z( c5 C, q; C
" w/ Z: \7 ^' @. I6 a3 V/ X9 SFind this in DPSrv.cpp @ worldserver) M- P) h. |& t" W+ @
* c+ z* N- O$ V8 A) [, PCode:: h- x, |& `) G. `' M% ^
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ): i" y/ g' ~9 H4 D% }7 y* Y
{5 j8 ~- G; ?! H+ j5 o9 D' E
DWORD nId;3 [6 ^+ d$ S+ L; z q$ V1 i4 h
int nPart;. d1 K% W6 L' z! c5 q
$ e# n+ ^" V3 d' O- d1 ]
ar >> nId;
% _" z4 `7 E0 w5 L" R; U ar >> nPart;
/ R+ D( o% p- t
8 Y5 m7 W0 i9 ^9 T! f1 s if( nPart >= MAX_HUMAN_PARTS ) + O8 L; J- c6 b4 o ^! ]* n
return;
3 P2 W" o$ U5 U# Z8 o! M8 a9 p _ i5 X6 O& p* H: q$ Y
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
$ e) J1 B& Z( E3 k8 q t, }: Z
1 ]& v. h. T& c- {
6 ~1 l) a1 R$ H" mCode:) |- t9 t( e7 d% R. U$ @
#ifdef __QUGET_SWAP_FIX) D( @, Q: p0 n2 ?2 Q
F% R+ @# e! g3 q9 N
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ), ^* e% S' s/ j& z8 ~
pUser->SetHitPoint( pUser->GetMaxHitPoint());$ O* h! l5 m1 Z/ Z& R% p
, R0 x7 A- G! e if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
) A5 L1 n& g# S3 n1 x% b' j pUser->SetManaPoint( pUser->GetMaxManaPoint() ); `) t1 j. J6 E0 U( `! C0 i
7 j8 w- m1 l. X6 J( c" R: Q
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )' \2 k C9 V6 a) n* W6 d( o
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
% H9 j! M1 S$ S( x2 E! t- n+ R7 P' V. ~) \2 X; P% ^8 y
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp: r) l H& ]1 {6 V4 ]6 y
and add under* @" }% R$ |; C
! Z4 k+ q+ O; ^/ ~0 @7 Z" M( lCode:' X' s8 `; C X" q& m6 C: T
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )3 x2 e2 K& P4 o+ i' ^& j/ R
{: {5 l3 t- f4 j* G
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 );
: C u4 x$ ?0 N }this
" Q d, |! A" U( h/ c: _0 \8 U" F) G& _ }: C l6 g2 [
Code:" l9 C; O5 R2 e v8 e
#ifdef __QUGET_SWAP_FIX
: b& R/ W+ ~. p" N# f if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ). W" f w( ^3 A; {4 ^, Z2 }
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
1 d: \# d- V" a0 m0 ]5 }! S: j. c- _7 ?
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
" G2 D: u5 t" N pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
& {, ^5 X5 }3 m5 c; W3 f% v: T
7 Z b6 s! G+ F a1 y4 g if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )8 s: @, b9 o- \2 [' D1 J: X
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );! v0 J( a4 U* p% U8 ^# U2 x$ g4 O$ L
9 j8 S3 i6 U& z3 M, ~ Y" K
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
* F- N$ d+ y2 ?1 ^( e
8 {. `, Z8 I7 w8 l( c* \( l* E/ Z# h" q) v7 c% h, d
|
|