|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
N" j+ x! _: JI posted this because someone kinda posted a youtube thingy about it :O.% p& i- c% [/ A+ O
0 Z. N& ^, h& j" @, oFind this in DPSrv.cpp @ worldserver5 |0 T5 O& G* G7 v
; G; y: K2 b, K9 y5 Z. ^
Code:
. j" G6 n' d, g8 kvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
/ P2 W4 m0 F' F. _{) I; z- O& a' s% a& m/ c- R" J
DWORD nId;
0 l1 t% v+ [$ ?9 c: g" I1 U int nPart;2 I! w. {; c+ z% G; G
. f& V" }% Y4 Z& ]& B ar >> nId;
1 a% C4 j( u' H/ o6 \ ar >> nPart; 1 O% }9 A7 g5 ~! V1 P1 h0 g
7 _+ h' M5 U3 D+ w& Z- R% {
if( nPart >= MAX_HUMAN_PARTS ) 6 ` ~9 Q- o) M" u, O2 y
return;. b4 }+ V6 A0 F
! C9 s4 U( O: p$ y" Y, n' _
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it& y* D( x/ w$ H0 p
, @7 z1 d1 J7 ?- S9 m/ X0 f
' M! a) [/ [* qCode:
- H7 X4 @6 W! n$ [7 h8 N#ifdef __QUGET_SWAP_FIX
+ R( Y* t# R" i
& O5 W! [8 u( O# I/ ~ if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
4 ~7 i- _- Y) p: f% N& J7 C pUser->SetHitPoint( pUser->GetMaxHitPoint());' _: N! T4 z, ^% a
' _! f P( _0 j8 {" C, S9 I if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
5 }7 r% x [" P( j4 _. x pUser->SetManaPoint( pUser->GetMaxManaPoint() );' X X3 D' [" f7 ~0 U/ X$ x" Z
4 `# p2 i* `. U" E0 l if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )- G3 j! N- E( f, _* y9 Z7 s* N: N' [
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );' G. t5 ?+ _9 \+ x- h
0 v: U0 V) C ^6 M8 ]#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
- S" u8 I9 m5 w3 E3 J4 N+ Q, Nand add under
. A3 F- U# L, t8 l& n, x: u
$ ^# K/ o8 E( mCode:
# `/ J7 c% @# Oif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
/ V4 s) \/ m2 U# N$ \ {" _: W' C6 t, h+ k p/ C; ~
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 );& i+ a( @: Z+ V
}this
9 Z/ L1 x- F) M# `
) v. z( `& R7 b3 Q; y, M3 {Code:
, S j6 T0 R4 T4 ], {- A#ifdef __QUGET_SWAP_FIX S5 ]3 y3 R* G& ?2 S! m4 I' a; | X
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
j+ q3 q! E6 o- H pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
5 b/ M) h0 }/ x% L1 C {1 g6 ^* [/ q1 V( P' w5 I ]; ~
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
' F& s( @+ Y) D0 [$ Z* j. W pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
2 C5 F' V2 a6 G/ c: O5 J. o% }+ f
2 L/ i2 {3 {' V0 O. w, D5 V if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
, z$ v6 s8 R2 M# e% d pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 ~% @" w& N5 S4 t& g6 f$ w8 W
- a+ Z' y: L; h( ~$ P#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver * }6 H. \3 [- b0 @+ T2 P2 _
5 x* P+ ^# X9 {7 E
7 N3 w: X7 x' e* S; o
|
|