|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
7 i* Y2 i$ T* Z* k/ l6 A4 RI posted this because someone kinda posted a youtube thingy about it :O.
8 q5 w/ C; Y- a% w+ _2 @1 t% K% p3 x
0 V# Y2 G: _! w/ bFind this in DPSrv.cpp @ worldserver/ ]' c$ U+ X8 ?- M0 n
3 u. V" K& \# Z' z
Code:; D1 ^7 C+ M6 v$ K7 u0 ~ I
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )8 F# X E, L9 ^6 Z) Z2 z
{" P s" ~2 v; D" @- m9 z
DWORD nId;
/ @4 {) Z( d I0 x' |/ m2 @ int nPart;
: d2 j, W1 P$ x) S4 a6 _* ^' F2 E" z2 J
ar >> nId;
- b5 l9 G; O' w% r1 u ar >> nPart;
Q i5 c/ l6 L; O, s . E9 T) J0 K1 N! P
if( nPart >= MAX_HUMAN_PARTS )
6 y. Q8 c! q9 D& t$ d return;$ g# W. o" R4 d1 h4 C: o) P' r
' Y: n) ^* O' s* q4 i( c* V
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it+ X1 ^0 y, U$ ~2 H& _* @, E
+ K& `& s, w' x; O) R* Y- ^+ y
2 ?( |4 f3 z+ u! Q; }# PCode:
! q0 o4 }! @+ c7 J4 K% {# V1 T#ifdef __QUGET_SWAP_FIX
9 a3 {* x- B- g$ z8 @8 ~
- V. v& u6 ^. U4 q if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
0 y% j: n9 V' h pUser->SetHitPoint( pUser->GetMaxHitPoint());9 j6 E5 G* s- q" I/ I4 P
' y7 _- V9 v2 o* [& D: `7 P X if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
- ]9 i3 \0 |1 i# ` pUser->SetManaPoint( pUser->GetMaxManaPoint() );: t% o4 I( Y2 H: z
/ t8 e1 M# q: @9 W' {
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )/ U+ T! i4 j1 y* W% m
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );5 |# |* G/ D1 D! M5 c
7 @. F& V9 ?) ]3 @0 `#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp4 k5 J q. l: T4 m
and add under0 g. V- J3 e" r' W0 d
: I1 E% a6 `+ O4 G4 A
Code:
& t+ S6 q0 `; `2 l! a; X! ^if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
. t- P& b4 s9 a% x {( E* y4 \: N3 P* j% b G" O
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 );9 f2 D9 ^1 x: V/ d3 |! T/ O( L
}this; c& a( V- u8 @4 D
8 c+ @# z- T; A- @0 KCode:
6 o4 `: Z- g; l0 B#ifdef __QUGET_SWAP_FIX0 Y( }! L' R' @
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )! R# j( X; l+ _- I0 k! m
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
7 {* Q! z4 ?0 S8 P: F U, q5 c) b$ m; P
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
0 j- \$ c1 c/ k% f ~! Y$ n! e pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
. d2 N, x. ]- G" G K0 y+ B3 r5 q/ q# i$ s# g
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )2 Z0 z4 B' f# l6 E
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
0 s/ F% r8 J, A% f
, }- r) J$ W! M. F#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
( X4 L5 v% l0 l0 j! x0 q) H2 \/ ?/ ^6 ]- Q. O# e0 P
, z* q* g' _" j# t9 F
|
|