|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ' H% |0 `- C2 R4 F# i
I posted this because someone kinda posted a youtube thingy about it :O.
: |6 S0 E- W$ U, i' N" V
. N& C- a" F) X7 V# ^; }) D1 I6 `Find this in DPSrv.cpp @ worldserver
% x7 C0 ~, G, O0 T9 B# T6 Z4 Z) \: Q/ C, M) s9 _1 p: F
Code:
4 J& n9 R' J% \! q5 a1 avoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
6 ~1 T* ~3 T4 z{
/ R5 n% |5 {- P8 y% Z1 X DWORD nId;5 i0 r# T5 \6 {2 {
int nPart;( c7 X, e5 n) R+ u- P
* Q/ R& n t8 g( | G/ o# R ar >> nId;
) t. x) M! o4 X9 }6 f, p5 F* K" G ar >> nPart; . s/ g! ]) N% v$ g5 j' C3 N' b- E
+ ~/ Y3 D1 J% }% B: j% {- s
if( nPart >= MAX_HUMAN_PARTS ) 3 B$ A3 a/ N( ]; Y: x
return;
v, T4 A$ r2 J* L" H5 d6 j
- J- B1 D5 C$ S( I U2 O6 A CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it' Z" c2 G) Q2 u$ ]* l m3 `5 C; C7 i
3 g. Q1 C) Q7 p# ~
: W8 m2 r, ^; WCode:
. G& K6 c3 w; Z#ifdef __QUGET_SWAP_FIX
$ R3 w$ B6 G) q0 v, A/ z0 z! l5 z y, \9 F& O
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
- H3 ^3 i: q! ]* d* _ pUser->SetHitPoint( pUser->GetMaxHitPoint());1 `/ G* n" w7 e& A; a
) e" }( o/ \' |: o" N
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )+ t! R3 \2 ]9 d# G+ x
pUser->SetManaPoint( pUser->GetMaxManaPoint() ); s5 S! O# U L# l7 A5 R
R9 O3 f! O/ x3 T* u8 l
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
) e0 r0 y$ W! J) v* J2 m pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
/ B4 Z3 P$ I( Y
0 z5 D& |7 j9 l V4 K#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
( o0 I) a. _, G- J$ @# Eand add under
- {: q5 Y- L" E8 `: u+ E( c$ _4 X7 p* N( U) }9 H
Code:
& [+ }3 X4 Z2 K& l1 V x5 C Y% o5 Oif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )1 P3 g+ N1 Q/ r( H+ [
{
( ~2 `2 c7 q: S, x: d0 s& l 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 );
H2 z, M% T+ u9 D' V0 U# C9 E }this
1 o2 v2 U- r, ~% Y C* i) k# H: `1 w# N" S2 j3 x
Code:( ]8 F: N( W$ C: c' X4 B$ k* X6 T
#ifdef __QUGET_SWAP_FIX2 V+ }% E$ Z# b8 |* P: ^7 W
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
" Z( L( o l% k0 s' y pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
1 K2 |0 I# E3 K( f" N: K8 u4 e: n9 j4 b) b/ [# E
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
# `+ Y M* o; X1 c: `# [9 S- y$ U' l pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
4 F" ^1 d3 h( w# j2 r
: ~4 u2 Z7 I. Q- J' }# V if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
& n" ]" {, Y3 \# c$ E5 H pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
! y" F i, c8 |6 T
! @$ q/ ?: T% _$ i#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 2 o2 Y* L. K: X
: Y0 \8 E- M' R8 }; z* K5 ]9 p
5 }9 h) P' y1 N. k& ]/ W. t. t |
|