|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
# N3 j9 h- W" @I posted this because someone kinda posted a youtube thingy about it :O.
" b1 D! w4 w$ ^3 ~2 D7 S2 S- P# l# o1 l1 {' e5 e. K& R
Find this in DPSrv.cpp @ worldserver5 g' ]) [; h" T/ l& Q
$ x6 i( _7 |. g) s3 T" q
Code:
, [3 M6 Z7 q$ i: k) ivoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )5 a, l7 ~2 {( H' b9 `& ^
{+ J% Q3 H( T9 J2 W5 R4 y
DWORD nId;( J. Y% _. `: @# Z* ^" Z* p
int nPart;" `' a& o) @, N) w- K8 Y% q; q
6 E) B: n; d$ W6 u" @ ar >> nId;! U: `* G0 a8 f- T6 ~* V5 D
ar >> nPart;
3 J6 m/ K7 ^, r. S7 W
( w8 \. \0 C7 J if( nPart >= MAX_HUMAN_PARTS )
( j# |1 q8 g/ e! C% B, N return;
4 Q, H5 I A7 X% |" m: K/ `6 h# I: c! c% x
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
! ?: @% _4 e8 Z0 k& u& X- N% N) M& D' O2 Z
+ X* ^8 A9 Z! {+ t8 E) N2 [; zCode:. j' ?5 c0 A& z7 ]* u4 `, t
#ifdef __QUGET_SWAP_FIX- D9 j2 P# N* \5 ?' i% L
4 M% V" J1 j2 G. ~0 _0 L if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )' g4 h& Z" |" \# ^$ u, h; R& _, d
pUser->SetHitPoint( pUser->GetMaxHitPoint());
' y! T1 ?6 C! ]2 L2 t7 b* Z+ o' B# m, w6 v' D
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
. b4 W' G7 W0 ~' \7 r, S# U! `/ K pUser->SetManaPoint( pUser->GetMaxManaPoint() );( v5 s2 L3 j$ q" \
9 c8 U3 l6 I; L- @ if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ). U. ^) F9 r+ U- b2 O) Y; w9 \ n
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );1 L1 w; ~. Q" l8 \* h* Z+ P
* z& d2 S+ @/ F/ @# y$ G7 M#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
& h* f) N8 d+ H$ Sand add under
& ?- c- W0 N& z/ F9 v: Z
% z$ d6 \$ E9 K* o5 L8 wCode:
$ m1 F5 w3 _# u9 Bif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ): m; \( J1 w v t$ l; v$ l
{
5 C/ N( n; _3 j, \1 |5 s 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 );
O& O) Y0 O( D- t2 S }this
( Q5 V/ N6 q1 C: G+ \
' i( }6 M+ M2 a; Q0 \Code:' J5 `5 `8 s; d% q
#ifdef __QUGET_SWAP_FIX
) ?/ O: d/ U. w. d( w, w if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )8 I7 k9 N: X7 ], s3 z5 z& y5 A
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
* q; |+ C M0 h& t. g3 l8 U+ w5 m
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )6 m3 i2 X" x& q
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );/ S. \0 D3 ?" P+ i" \& ?: p% M8 M
) D: G" O7 J- [9 [. o' b4 `
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )# L. k. v: P! i" D1 s0 A$ a
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
: u+ u" L# U# X* u
9 Z& u1 K& K0 q#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver & B6 A! C$ z4 @7 _2 X. M, e: k
1 I2 j' B& H, j! K2 P) U9 H2 N1 Y
9 H [- ]( B9 [" \/ H0 U; X |
|