|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
4 S, g. E# `4 {0 I( x. {I posted this because someone kinda posted a youtube thingy about it :O.
5 m, G" j3 T Y1 I0 r) ]9 v
% F( ~; Q$ I) q. N* wFind this in DPSrv.cpp @ worldserver. A% ^ @6 ]) h4 ?* W" [, L
) P# b1 r J( tCode:
/ z7 M7 m6 n6 _" b, [void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% i- H0 j8 [5 p{
, t$ A, r% w: n1 J3 C' s0 W DWORD nId;4 |! p) R9 [4 r5 K) ~! k. C A
int nPart;
/ L0 O; {4 ~. g- I; m9 H0 P8 ]2 m3 F: n3 B
ar >> nId;7 I$ z3 q5 Z1 V
ar >> nPart;
) ^: a, T7 x( j* v( W
/ }3 o! A: w$ C5 N if( nPart >= MAX_HUMAN_PARTS ) % Q9 H' Q; T0 j" @. J
return;
$ q% n' _; u9 |% C O/ e' f( ?' G, h9 |8 z3 F
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
% O4 ?6 a- I( P" L# T( v ?
! m* {, F+ t h5 Z, {; n
; I8 l; j8 F) m) SCode:* N o$ E! w, N# a2 A
#ifdef __QUGET_SWAP_FIX
) o) C& C2 W( T# K/ J6 D9 E& ^( H% t/ O
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
W; j" E, ^" ?3 E6 E. [1 b pUser->SetHitPoint( pUser->GetMaxHitPoint());% j" x; ?2 `6 P" S: G+ ?' Y
. G- R6 f$ R) m5 o# k
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )4 @7 T8 b. p( n: i+ J% r0 I/ y
pUser->SetManaPoint( pUser->GetMaxManaPoint() );/ k% s. z" N% _" u) r& u' m% i
" o6 [# p% H6 I# [& x" W8 x% ~: C0 b
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
5 g- j% e8 ~3 I4 }, d pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );0 K. K# a# \" R1 ~/ K% h
& I! {( v3 o. V3 V+ d9 M) F
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp$ l$ q) c3 L5 S
and add under/ E" w. P( |" U" }, _0 d3 r
" Y( u8 i7 i7 R3 d
Code:
, O6 x6 Y& C7 D( E3 ]if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
) h$ K- s) q4 I {2 s7 s: D* P* ?! |/ ~
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 );7 i8 n4 H3 L4 ]8 T1 U
}this
/ ~7 y4 E5 `. `: Y6 `
: O2 z2 F' k) E# x6 q2 g& j5 l; y9 {Code:
! K! X. Z5 O) ]#ifdef __QUGET_SWAP_FIX
: O9 z9 L. I: j `- b* s$ f6 N if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
/ y2 W8 _4 o5 |: N j' o+ ? W pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
: Z2 O/ @( n# p' w7 x6 y' I- X7 l6 q$ Z6 t7 K; ]6 g" c
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )+ O: |* \9 j& d7 e
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
, s4 r/ _& _& B% x2 L! c. g
% e, @0 [. }; f2 e1 e6 C4 O if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )( Y( {- ^, D6 \/ I6 O, B, P
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
% o' d% T/ W5 O# d" }: M+ B2 R7 L4 Z6 ~, v
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 3 @3 v h; _* U% H
% L' D* r$ D% g K0 }9 }' O3 W7 W- p
; d7 K+ p5 V: h2 S |
|