|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked , O+ v. B" o" @" F% x
I posted this because someone kinda posted a youtube thingy about it :O.
' t$ b& P2 i5 D( s$ ]
- O, F c2 N" P: n4 }# bFind this in DPSrv.cpp @ worldserver( B( j5 j/ P7 {
) x3 R H( f5 Y8 _% jCode:) I3 i5 q6 x M! f* W- `4 A) n7 u
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
9 e' Z( v* F, I3 u{
4 t$ c2 |' v" }9 a) O DWORD nId;
& e1 _$ Z+ |& ^. a- ^7 M int nPart;$ @9 }: l# s, x+ f; R( Q4 K3 g
+ _8 v1 f$ U z* ~" S
ar >> nId;
& S- _' t+ q( l1 a ar >> nPart; 3 n, z* I( E2 z7 c
& z6 J$ {, h* z; ?& J; p# V
if( nPart >= MAX_HUMAN_PARTS )
) w: \: [6 s/ Y h K return;/ b. B8 F8 H# u" ~! t( z
- z: V! t! ?- F2 E CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it' R/ L9 e! n j; d+ S; Z
0 p* X& g% S9 q* L/ A; H
; {, t, [. G& h; L* s' bCode:9 y/ F5 w; E6 T6 u7 Z
#ifdef __QUGET_SWAP_FIX/ d: e2 G: i! p8 t/ A
7 f& t+ ?6 L5 g% k* V) i
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
7 |' j3 }7 _- n( S2 `+ G pUser->SetHitPoint( pUser->GetMaxHitPoint()); V' b( t( @( U7 Q5 Z1 e' B
0 Y7 q$ s5 N3 g4 B, p if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )- L, C$ P/ i C
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
) r" a+ |: _6 o+ E! P0 R3 w
& w8 \, ^! k! {* c9 k6 \, ~ if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )" m% ~! ^ s! t% J
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );4 F3 P/ v1 S. E6 p
3 }% [* l$ C" h* M/ `1 ~5 a
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp$ g0 a% P" P' H$ J H
and add under
& g( \, r) X& u) C n
' j. e8 V& D. ~5 N4 f0 s! GCode:9 i# e$ L$ k C, e" p8 w$ s
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )& }' H& z5 s: ]% P* A' \& s
{
4 y) l" {3 A) p- k/ t$ 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 );
* n2 b# ~1 @. n7 @0 { }this
. c9 l9 ?* L% \6 O+ m3 i. s: X3 e: Q4 y
Code:
9 l' z( t0 e# Z2 }#ifdef __QUGET_SWAP_FIX7 G/ w$ K) _ _, O$ Z
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ) Q) p; C7 A* `3 B' b
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
! G/ z5 ]- w( k }2 i0 ~6 q8 X/ w4 {! M$ l5 @- Y3 V9 i1 `
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
5 T1 m* x2 N9 L" w* C, i pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
7 K" I1 W" O% W! R
. ^; E1 h* p" f7 t if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
- b. o: l3 R( D& H, Y) q% P$ D" E+ H pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
- z# A% N+ G& z( d0 S4 Y# D7 F( S+ ~1 M+ I
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver " C% C) V6 N: D/ H
1 P& ]0 e9 D% K8 X9 g3 r- S9 ~+ {7 J- l" g+ i$ L" o
|
|