|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 0 ^/ F$ J$ G1 O/ X
I posted this because someone kinda posted a youtube thingy about it :O.
7 G& Y2 l3 b6 ^/ x% R. O* U' ^- \. x6 X* X
Find this in DPSrv.cpp @ worldserver
. k7 }- a, k! T" E" ? _) K `' U) A1 T4 q5 _* x" U
Code:
; A" e. {0 g6 O' ~7 V2 {6 R' B" uvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )( W' A1 t: ?9 q( x+ C" H4 x/ \
{1 i& \' p# ^& z1 A P: P
DWORD nId;# A4 Y+ P [! S' x# C& a. A" ~
int nPart;
" k4 m$ a2 A! s: K) |- c9 n, L! p' |8 K; g
ar >> nId;
2 @9 H7 l8 y# ? ar >> nPart;
1 t7 a3 T2 b& |# \; T. E ; G! g: \: G' L0 f5 w* ?
if( nPart >= MAX_HUMAN_PARTS ) ( w* E/ n: P! B6 r$ ]; J0 Y
return;; v% c. V$ b% \& s) I, }
$ A7 j$ o& k. W* C. V2 ^ CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
% ?+ D: h. [# U
6 S- f" }+ ~! a: ~$ J- h/ ~* l: k- w1 R0 o* O
Code:
7 [/ {/ b# O& X#ifdef __QUGET_SWAP_FIX
! W8 |1 j3 E/ D# c$ |" L
6 u8 M, k7 P7 ]9 K6 u! {* Y% X' s% `9 \ if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )* K0 R! @9 q/ n8 G, e/ i/ J
pUser->SetHitPoint( pUser->GetMaxHitPoint());
: D5 G2 V+ i4 L+ p
+ A7 H4 d$ w4 J. h( m if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
% Y2 O) X2 i# M' Z; l- K pUser->SetManaPoint( pUser->GetMaxManaPoint() );: H9 r' [2 D4 a
4 M# k5 O+ Q$ q. x+ p) C
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )8 s( J3 A: z7 g" W# }: d
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
6 G( x& {" R/ k* ? v9 P" [( x, B4 l% j- i1 i3 J) a
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
6 u4 |! k8 I _. y, Zand add under
/ l2 K" J: ~: a' M- X
' m- S7 C/ B2 p# QCode:* L# f5 w8 A- P
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
" r$ s' z9 n6 J C0 T% m& [ {9 ]) x. w- k! i$ s* I9 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 );
" h* n* r4 A v) c4 S }this4 ^ T& A1 s# }6 W9 \" N8 z. ^
" C7 K# T5 ?9 w8 `7 D
Code:
! |, n9 S0 W0 w3 z/ E. t#ifdef __QUGET_SWAP_FIX
% k& d) K! H% W) m9 d& z6 d" Z8 W" Z if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )! Y* N. c3 O/ @/ Z2 Z }# j1 z( j
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());/ R" v: \* I% n/ z# T) Y
: @- O6 W; s/ S) z& m6 j$ d if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
2 q. C% r7 c }6 w: E$ R: Y pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
" R$ i/ x; f) ^% A6 V! ~- {& w9 Z) C# g8 @, H; O+ S% W5 p1 `: P) l
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )9 d* v" }; f$ Q# t9 d
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
4 I' W. {/ y, o* v6 f; B5 Z% O9 z1 M5 u$ C
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver : j0 i5 F, O& r! @
& b- F* u' ]1 g( Q5 z& X- H N; U. v
, p* F! |6 g/ f$ O: c |
|