|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
4 N+ m& ]- n4 c+ kI posted this because someone kinda posted a youtube thingy about it :O.
+ _! O! @/ W1 S. V/ ^: x9 J/ z$ V: f( K5 p2 i/ h
Find this in DPSrv.cpp @ worldserver d9 s3 c) m4 o, M( i. |" A
# P! n# e+ n1 `* r8 @3 p5 rCode:
$ q3 E; l C& @5 ^. r5 v# G4 cvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )8 t/ n! y, w F" F& e3 L
{0 B" n5 @; c% \8 C& K7 Q2 K
DWORD nId;
. g6 b' I4 S" ~ a! |& i6 {% v3 P int nPart;! |+ J( H4 L8 R6 V
: n' h* B+ l, z4 W ar >> nId;
; Q9 F3 q1 Y& Z& Q3 E ar >> nPart; - s7 Z5 l: E- ^) P2 P9 W
( R* ~2 F5 i$ T" ], p if( nPart >= MAX_HUMAN_PARTS )
% @! e1 D$ O$ I- x, C7 F9 K& l5 M1 z return;
' p2 Y9 t. O/ F" d+ g/ ?* _+ Q% O; m+ u( }
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it: i3 T2 S7 [/ h% H4 o$ p) Q
* |9 i( ]5 m$ j) `1 @# e
: B4 ?! @1 c) ECode:
; k/ L/ r8 b" E5 N4 x! W" o" D3 s#ifdef __QUGET_SWAP_FIX7 E: R# I9 \- a+ u2 Q# }0 c, C- k
5 s; L$ u: `; ^4 F" X h if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )& [) n! E) X |' u" }
pUser->SetHitPoint( pUser->GetMaxHitPoint());& W) h, m- M: ~7 V, v: J$ {
; h5 g2 w5 U- p" K0 `3 o2 l
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )4 R' U, @4 H& A2 Q- X% h
pUser->SetManaPoint( pUser->GetMaxManaPoint() );0 {3 ], a# W7 S; L% j
( h" h! j: p: [5 R2 N: Q8 f if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ): K4 v/ q1 D) {) h* s: Y& @
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
9 n: A$ y% h1 X: c3 d5 T
# \5 A1 K3 x: k0 y#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
+ S( D1 V7 C+ d$ J( _: E2 Nand add under" D O# ? ?# s( R4 E
- n: H: U9 j8 @) u+ l
Code:
' `/ M2 E0 f& G1 a; S3 W8 G. Tif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
5 @ l |- N) P5 L& u {
/ p0 Y' I, e2 a 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 p$ r! ]% A3 J Y U% ]
}this" `7 p2 J1 {% ]8 P
; i$ b5 \. [8 C3 vCode:
4 T D( |9 T% P* l#ifdef __QUGET_SWAP_FIX' I+ [! m' P* ~& ]& v
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
O2 k$ D. X) r7 R3 q4 H pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());- c" g! G9 M/ S2 e/ O
, U/ j# C6 c2 C" [ if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ): P6 T$ P7 f: Q Y: O& N
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );& _0 [, }/ f9 G& A4 h* o; D
6 x- U" T7 e8 s, Z: Z4 G if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
, l: R% E6 j' o pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 v9 d8 ~( B1 M. z8 \2 f
4 c$ x! p; f7 K2 T; U#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
, M; V; `8 C; h6 ?# p
! [ B$ z' e0 u+ H' l! u9 R2 h9 J4 t2 g# Y
|
|