|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked / j, s5 T6 I! ]( ~
I posted this because someone kinda posted a youtube thingy about it :O.2 a v$ Q& x, ~ X# X
: u+ `% ?7 g# F
Find this in DPSrv.cpp @ worldserver
1 Q5 l/ T1 c( N! V- D* f* w/ I5 c/ T0 j# W0 G7 C/ f% N
Code:7 C; P1 J8 k3 H9 x7 o$ m8 B
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )4 }( {. P4 E' t- H8 D0 L1 l. A: o
{
; ^. W4 E" X8 e9 G2 ?8 {( J7 |' N DWORD nId;
* @# i: u2 w1 V% L8 H4 a int nPart;3 ?6 k( Z- Q7 J7 k9 d6 O: f. O+ i3 W$ w
3 C4 r% y) r- p4 x1 E ar >> nId;
0 X. q& W5 [+ G( p ar >> nPart; X& Y& u7 _$ G5 t
& w% b5 n( y9 A5 [1 C
if( nPart >= MAX_HUMAN_PARTS )
7 I- R( ]" n5 `! p3 }( `4 j return;5 o# `$ }/ x% `+ g9 v0 t( V* O
. {2 r9 a# V; g( P/ h8 P8 e
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it7 o/ O8 z" U6 A" C( V
# ?( t" \1 V1 @: R; I+ J
5 e6 X- i! O5 v H7 \) jCode:( R) _* b1 N% Z8 q+ ~7 G0 R4 l
#ifdef __QUGET_SWAP_FIX$ G% m1 T0 E. q6 J3 F( B
; \% A' k1 y9 G7 p
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ), D* Q7 Z+ O) [. `! d
pUser->SetHitPoint( pUser->GetMaxHitPoint());
( F% s# J- p( v3 t; E
* C7 r- O; h" s# G& U. t if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ). Z& \1 |+ V: t. o: T
pUser->SetManaPoint( pUser->GetMaxManaPoint() );( k9 W: ?" p' ^% g
+ f0 f( S! }4 S4 p
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )1 K! G' ?) E2 u% l- Y: L0 a
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );) t' p5 k' `+ T7 N3 o9 S+ {$ I8 K
A a n; q+ Y% Y. N
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
' q- S/ @9 l( m0 V) Zand add under" a4 r6 b/ L) W, N
( e9 U# G- N8 K8 z+ _: ]/ QCode:( V+ B) O/ r8 t: \
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )1 V/ R* g; b, w7 z0 y
{. ?& W1 z6 B, w7 Z/ ~) l3 S
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 );2 P* T/ f: ~/ F: \; U$ M
}this- d8 I* X- o/ y9 u( X- _
5 d" ` E. E$ ~Code:% H+ J V1 F9 E/ v
#ifdef __QUGET_SWAP_FIX
4 X8 ]3 ~$ Z/ s! Y$ c if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )1 A9 @5 Q1 l. \; i2 w
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
0 L: e# l; n1 m; f- f0 t0 k, {
7 M- |/ U# X j( {. H if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )3 g8 C9 _! h+ }3 M# r3 R
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );% m" M9 i! S7 O1 i
5 o0 x( |6 p7 C+ q& _! Y
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
% O8 S4 Z# ^2 u2 b" s pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );% A5 M. q6 D. o7 ?3 o2 G
+ ` u6 q& f* }% V+ O
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
9 S( V1 Z4 }2 w& o# m# h1 b, v& k
6 [& _3 ^! w5 p) a- G# X/ y" q( ]* G1 i) V
|
|