|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
1 \* s7 j1 k3 I+ I9 ~I posted this because someone kinda posted a youtube thingy about it :O.
8 _# k# x! W6 x5 Q3 ?* T$ b
9 H3 m8 |! {: X* }+ mFind this in DPSrv.cpp @ worldserver+ I0 v \. k5 X' O/ c* @4 }, b+ {. e
7 d5 o. _5 V8 S- c. ~& y" M& YCode:
9 ^: \$ t) F; X+ Rvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
) j3 F6 i. q- Y* r) s4 t{
% n7 i5 L6 }; ]& u6 o7 W8 [8 ^ DWORD nId;
- l& b* W# M" D! I- L4 {1 [* ] int nPart;8 P5 p$ E) {: {
, Q" c4 [- T x( V
ar >> nId;) |; a- _5 c1 m: X0 n2 y- [
ar >> nPart;
% W1 R; A! h% J2 g) e W( W% I: N& |4 R2 E3 _
if( nPart >= MAX_HUMAN_PARTS )
1 i2 q% R" S) b3 g" f return;) J" J- `7 V% F
' U* v2 e t. f+ m CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it8 `) s$ l) f0 z9 x
# `6 _2 l: D$ ]
# Q" Z8 I4 n3 p
Code:! d' W+ X* k$ U6 w+ d' U
#ifdef __QUGET_SWAP_FIX3 i( g, }5 i2 ^/ y9 B7 `
6 g7 N6 ]7 s; A# m/ j q
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
0 ?# K, T8 ^ _& B; K; s3 f3 l2 x1 ] pUser->SetHitPoint( pUser->GetMaxHitPoint());; m+ g! k( J( K. F: f+ T3 b
4 v. P7 W( i; W1 ~( m
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )7 S0 ]% ^( z5 i; a) x9 x
pUser->SetManaPoint( pUser->GetMaxManaPoint() );2 i! {5 q: u' N$ C* K
9 Z: n" E4 V: u' e F0 x if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )6 C% B' l1 R( c" O
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
5 D8 v3 r/ i" R6 S, R' n
T& Y9 Z8 z( r1 t, S#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
# J, A) ]7 @, `' I9 [* Rand add under, q$ A% e4 N0 q0 i3 q1 i g1 W5 v
) G5 E& V+ b j' M# J) b) eCode:
! s7 z1 x) \% b2 g+ I5 o1 L7 Z* u4 }. j1 wif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )& }/ Y" B+ x/ }; X& A5 t- v
{
& C' a# ~& X( s' Q& w4 h: E 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 );1 {1 n* T: H. l7 J0 `8 ?# A& p
}this# A6 T. O# p; s
# y# g: t* E% }! k
Code:" C" H6 e ~0 L a4 k
#ifdef __QUGET_SWAP_FIX
1 K( Y& a' L" D. I2 S if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )& ?( Q# G" K7 E. W) k
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());7 E4 ^( Y* ~3 V4 W
; ^* L/ y$ L3 p3 ?, E4 h
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )- T( K( O+ F% }# n2 s/ U
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
6 u8 q: K o" k3 @" X( b% ]' o! C" d
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
4 F9 }3 c9 W' E. K; g! |& F% _ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );' f1 U! K; t4 C* h' n2 A
9 r. z5 B# t/ z1 B1 Z+ Z#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
: Z) Q/ x% X0 n$ M' b" `( }
& L1 ^' F" I( E7 D. E" U Q3 }( }1 h; t u. T. \+ V
|
|