|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
1 z& f" _+ E0 w5 M8 JI posted this because someone kinda posted a youtube thingy about it :O.- e( k/ ~7 k% L) x( {* T
) T0 E2 l+ q% E, b" ?7 Y( {
Find this in DPSrv.cpp @ worldserver0 S, F( l' f2 A3 d, u: f
0 ~7 p( W6 E, j2 _9 kCode:
& S6 q$ {1 _( V: @+ n1 cvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
$ A; ~& u( ?% |9 ]4 t{2 `/ _ P& j3 u! I
DWORD nId;+ H# d8 Z( ?% E( w, ~
int nPart;9 J2 e7 Y' ]$ y( x
& x# z8 n2 T! h2 B& f
ar >> nId;- L4 Z+ M' O! ]6 ^ v
ar >> nPart;
9 W; ~: q0 B1 F1 g8 m2 }3 O, P ; I+ x/ V3 I/ O3 a
if( nPart >= MAX_HUMAN_PARTS ) 5 H4 _1 F* h K* l# A0 R: E+ J
return;
4 V1 X+ M$ \ R: W2 }- Q1 J6 p
' Y9 v- J& I2 B3 Q' i: Q* L CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
. I5 D9 P9 J- d# e- t* ~; U( E; e. L- j1 H4 A+ G2 k" ?3 d) {" X
" J' A* B/ f; S9 A6 @Code:4 b1 z) c# H( v. u
#ifdef __QUGET_SWAP_FIX
' z7 s C" c* K# q+ M& x8 C/ u3 T V4 \9 d! f
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )( Q( h% T- b8 E
pUser->SetHitPoint( pUser->GetMaxHitPoint());
! I" X7 v2 l5 F! H w
: v4 R5 n( Y) ~$ Z8 L if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
3 ^' y( z) }. F4 y pUser->SetManaPoint( pUser->GetMaxManaPoint() );* j5 P3 _( f! D
4 R. o. s& M- T. o! i+ f
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
3 @% }# F. o0 { pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );" c0 Z7 y8 O7 j' ~
( z& f. R5 P5 g3 s$ Q. n- [
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
7 g G, H1 P6 c- S/ D: ~; zand add under0 H% q: H& k4 s! M
) K% a- Y+ |3 fCode:
T; v; {7 Z' P& @6 i4 @if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ). W# C. Y' b$ j* E3 y
{
0 s. G6 p2 L$ T7 u K 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 r& {, {- Y1 |/ \9 n7 U
}this
: P8 D t% E2 n- a) L
# v0 I: @. ~0 N5 q" ]) ] C' xCode:
8 i9 ^- X, u6 V" M! C" {#ifdef __QUGET_SWAP_FIX
Y* Y& h; ?/ z2 j if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )# b. H3 g: r4 a0 ?6 @7 m& m
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
, `& F8 ^" f, m$ B# R% J2 c% w2 `8 M& v' ?, e
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )+ o4 n) F; a& A. S0 G3 l
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );& Z# U) |. U# N
& }& k4 }5 q1 T! p7 P
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )# ~$ B; s$ q y8 [- [. P
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );# ]5 C' P5 F& A
J: X" g9 w4 b! T#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
' _% e$ i2 b4 {& y. R$ z/ q5 e) X4 A2 z5 p, W
@: Z* _+ o- k# b: S8 H1 N |
|