|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
$ C/ p5 ^1 ~! |/ @7 Z; b& ?I posted this because someone kinda posted a youtube thingy about it :O.
, z) ^9 e+ G7 `$ x4 @! W0 ^4 n
. d7 @ k% p6 J3 d, X4 ~4 }Find this in DPSrv.cpp @ worldserver1 Z1 M$ p4 Z V- y& ^
8 Z4 _. C% O& q! dCode:. Z e1 k ^2 p+ J# q
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )% M X2 f. c6 X3 i. y$ x- h
{, l& s( u" @- p$ T6 i4 F; z0 y9 W
DWORD nId;
8 g% t1 E7 f7 H- Q5 C5 g" F int nPart;
5 Q, {5 {' ~2 M( ^: V1 m% `- ]* s+ X( T: @% f0 S
ar >> nId;8 v. ^3 S2 U2 b6 i! ~0 h& A! x
ar >> nPart;
; Y6 i& |/ u, l9 Y+ R+ X* c 8 [- V7 ]7 z. |# l: ?- i# f
if( nPart >= MAX_HUMAN_PARTS )
% Y b3 V8 ^( O. N. D$ O, m' [ return;, A5 U7 b; o& m4 F6 |! q( b$ k, }
! G9 k5 A# B _ CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
# ~9 _$ `& z2 S" H/ v) H
8 G. @8 D# v) ]& O. V2 U5 \7 B+ M) z' m$ k
Code:
' \- d3 e) x/ d5 ^# y#ifdef __QUGET_SWAP_FIX, r: v) F) ?0 ?1 X( L4 |
* D& c) q! h+ m9 o( O7 x
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )" q7 y8 u# m+ _! ]$ j* c
pUser->SetHitPoint( pUser->GetMaxHitPoint());6 b3 d& R) o _0 w H) l4 G
, \+ k2 r& B |6 w0 }2 D
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )& u$ E Y2 {8 {. h5 O7 B/ A
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
7 X2 V H8 Q o) h$ p4 W5 L
9 x$ L) I+ R2 A0 z if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
" |' F* m2 |4 e: _) d pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
8 \, N. x# N% I* E: F' A7 v! \/ r: W( Q3 `. e1 A
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
) B+ {# e- T$ _/ @and add under$ f- e- G: C/ Y
* [1 \8 H% G7 s$ g& ~$ ]# W8 w/ P
Code:1 t+ m3 z: o- g K8 Z
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
2 D& E; T" G% Z) H/ l" i {( y6 p' {8 \% w+ ^. A
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 );5 s: f8 o9 ]6 H+ K' C
}this
- d3 M% N) Q& o5 }( c7 Y$ N( g6 A1 W; h/ y( E9 `* C* Y
Code:5 \9 m8 ]* h# i& Q" R6 B2 x
#ifdef __QUGET_SWAP_FIX& y( I# o) j2 n( g' V0 Z( W
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
, C# c& l% g0 t7 I) e% a pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());) L6 h, h! f# `9 L
; e4 |5 |3 X% V( [6 p3 [: W! p
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )' b1 _5 j$ n% z/ d v: o
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );5 S6 w) P/ |3 B- q; T, s
3 h; X6 [! G/ [7 `
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
# c9 \+ [+ N. Y; H pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
' c! E7 c6 k7 _5 x2 N$ j! U: a+ i" g7 |% F4 r5 u( T& p6 B: r- h
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ' k& Q( a1 f g3 m Q
% A3 q N/ \2 M, y0 O6 e
$ y% o/ a3 ~% P) b. ? |
|