|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked " S! _* Q8 y# O) @
I posted this because someone kinda posted a youtube thingy about it :O.
3 H9 c$ K: o: m
1 x g/ R( i/ \3 F" ]Find this in DPSrv.cpp @ worldserver
. a" a8 n9 d! ]$ x3 k$ G. I. x9 n0 b/ k2 h6 A- q6 f' T. v. e- M
Code:% p) S& O, Z4 ~2 h1 ^6 s
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
0 e9 Z7 J2 l2 D3 `3 ^5 @{
; w% Q/ i, _( T+ [ DWORD nId;
* E, B& N' c( e; s; l6 K, \2 V* J int nPart;
$ B q: A! @! Z \2 q5 _. `( y
0 a, m& O: v. l4 n( v ar >> nId;
0 F# J7 t+ m" ~$ T+ K4 w ar >> nPart;
: y+ q* s4 m$ ]/ r
1 c; C# I% H" p$ { if( nPart >= MAX_HUMAN_PARTS )
, _& f$ c* w. B+ ?! E' c return;
3 `9 S$ f# s. Y8 ?( \' r3 q
' l- I" P0 V! z+ M0 c2 G CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
) a! Z7 L: g. f8 E P6 ?9 x- ~' H% N* s @5 T
$ Y9 q, Z' n( H, ~! S; s6 lCode:7 H) @8 O7 y+ V; }: {% @
#ifdef __QUGET_SWAP_FIX
# B5 m( K* t+ U) Z, t9 c; V" G% g; h' b! e
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )' B+ N5 X. G. m5 n$ Y. j8 Q5 [
pUser->SetHitPoint( pUser->GetMaxHitPoint());
% N8 J! [: Z% g0 K+ n% X
2 I1 T% }7 h" x& k if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
/ r! l; f; }2 w$ d: ` pUser->SetManaPoint( pUser->GetMaxManaPoint() );% {6 N: A5 I U
8 V. i% W/ A5 N. n$ y+ ~ if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
/ s2 n# W3 S4 {: O2 N! e$ R, B pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );) S/ a" }8 v# m% w
6 r4 V: z5 ^4 F+ a4 Y0 z$ K- K* R* q
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp# J; `7 s2 t4 l3 P$ T6 U T
and add under
( W+ ^# O! O' T* ]1 `/ @, @
3 {$ Q b5 N3 Z1 X9 {, lCode:' l+ e6 ^8 l+ a5 c* p: D: p
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )+ o* v/ \8 _. g
{
; X6 h, O4 T8 R6 c) I 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 );0 Z& R1 ^! [/ x6 ]: ?
}this
/ F0 S! a+ t/ Z6 S8 O3 E
D2 _1 }8 r: R% Y2 n3 S3 M- O5 M4 @Code:
) y7 |, J: l7 z$ Y8 N) N+ [/ r1 M: J#ifdef __QUGET_SWAP_FIX
. D* U& p2 z- `# t" h if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )- r& a& C3 n* L0 P0 v5 t0 i
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
/ ~ Y8 O, Y/ H/ z: G2 `
6 J" V2 c0 c1 m; k* N1 ^$ T if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
7 M; T( L# [: R0 D0 k% y pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );0 E6 I( p/ W) j2 T
% V$ Q8 g1 I( J- ] if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
1 B4 N# Z1 C' H. O pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
# S7 g& Z" V s$ \+ T3 B& {, q% ]3 h0 i/ J2 m- S
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 3 V/ U1 S5 d$ @$ U( d! J4 H
! N+ }4 R0 `) g4 t- W+ J
4 Y1 [/ X2 f% a _! i1 a |
|