|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
* O; X K) g4 U+ V1 H/ v7 N8 mI posted this because someone kinda posted a youtube thingy about it :O.
8 a3 e% {! D- c% s5 ?) w4 o" e% R3 w7 R: {9 Y W* k6 w& t# J
Find this in DPSrv.cpp @ worldserver. F( N% F1 V9 p/ z% W: [
" b+ Q. J! W( ]5 D& e: X7 ?# b# k
Code:4 `6 M6 J* M: G; y2 Q* ^
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )/ A5 s& j6 b. J) P# I5 D2 W
{
) v% d2 I3 A/ M9 }! ^3 p$ J DWORD nId;( S3 T" x3 g! L% T0 @
int nPart;9 W. Q( c4 {6 \' Z
2 ^5 i6 F2 i i* ]- o- Z. a9 M ar >> nId;! D: C1 z/ _* P( t
ar >> nPart; ' E; f4 u6 O# @- G; @
* |6 g+ m8 o% ]# a6 s1 S9 m
if( nPart >= MAX_HUMAN_PARTS )
/ w' Z, l9 H- b$ _4 u return;
* G8 E' _* s7 h& o+ f( b5 }) w0 E% o. N6 H/ t- t5 q- X. B
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it0 D( {' g" G2 y& M4 |+ X
- f% U2 W; b( y* G$ j0 Y( l
. c; p7 O- O+ _ h, @! N: ~1 D
Code:
$ ]; s$ f. |" q/ f3 M#ifdef __QUGET_SWAP_FIX
0 B! d# [3 y# V H7 J4 N. p# e7 v4 S* s% b5 \3 v- D
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )# p' x* y: x# T( n( _0 m% C
pUser->SetHitPoint( pUser->GetMaxHitPoint());
0 g; f8 z) z# j* L4 `8 j+ e" H( d& m$ O9 E5 B! A5 q- {
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ). R: c$ H( z/ G+ u4 u& a8 |
pUser->SetManaPoint( pUser->GetMaxManaPoint() );! ~) O4 q6 `& i E9 f
/ s2 f# P& I* P5 z
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
% i6 q+ `! o' z7 b pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );: \1 E6 u4 g" T' Q+ L
6 m! p' G) F* T" ?3 J# Y
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp. E! Z7 X9 F8 {% }5 P7 o* K
and add under
; R; o$ t @7 R3 ~. S0 Q/ D l% T
! K. M/ F2 Z# _' O+ n, C/ iCode:
. |& M0 X& S1 u0 {( K$ C) [8 Xif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
; F7 z: _$ B) b% Q; \ {
. Q2 F( Z# d" i 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 );
/ w V: G& r0 U0 W }this4 Y7 h& H6 Y( W q, ?
: ?( v) m3 R, d1 N+ Q( xCode:( G. ^; A% w7 @5 m+ E: f
#ifdef __QUGET_SWAP_FIX
' ~5 Z2 y+ H7 @. p3 w/ q if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ); _" u+ Z. R/ x" {8 T) A
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());" q: G' g8 g ]" N
/ j0 R1 L4 M& ~ if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
8 F F$ F8 y4 J4 |9 s U5 J pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
' [, I/ \- }. z) [# Z& ^- L; ]7 d5 P4 s7 x* ~
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
) j7 q: y$ H6 t, ]# M7 Y pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );: ]/ i) ~- ~8 H; z
9 E. ?& p4 a" S( |9 \#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
9 d' |( Q: G1 S: S* h5 m0 f4 i
( F4 J" S6 Y9 h p' a: H, w8 `+ d( `
|
|