|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked : m) ~& E$ g" n6 P6 X& [+ m. N& ?
I posted this because someone kinda posted a youtube thingy about it :O." M& K% a2 j S2 e# e; W
+ i$ `6 t3 I3 wFind this in DPSrv.cpp @ worldserver9 x3 R5 ^/ f. \+ v: H" ]9 }, f
+ m; w& Y: N; Q4 f x3 b6 D& s5 o6 a. U
Code:% \4 a/ Z( O) _
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
! U- h$ q9 T) V% h/ Y{8 M/ X+ C% z/ {8 d6 b% d. q
DWORD nId;
# r- O3 W: G& H8 |$ J; v4 T int nPart;3 e0 U- S+ a2 [5 v
( T" v7 k9 S5 @$ K ar >> nId;5 e9 |/ t9 E6 m6 o1 ]! |2 f$ c
ar >> nPart; 7 H R! b2 m# R& G* \
4 H+ m! Z% v( Y3 f9 w. S% ]
if( nPart >= MAX_HUMAN_PARTS ) ' `- @, j. E1 p/ q
return;
9 m. C0 n9 ]! j$ B }3 B; |$ u" l& i& l
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it k6 p3 q: n9 B0 w. i
6 g% M O: @% ?1 `. f n
# ~$ a2 H4 D7 d2 O! jCode:
: _2 r( x$ z- p" b/ n#ifdef __QUGET_SWAP_FIX3 J+ k" n; b6 ]% `$ \3 h" N) J
$ M# L# L" P1 b: D+ I4 ^* j- G if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
+ O6 H9 @2 F& E- F% j' [4 c pUser->SetHitPoint( pUser->GetMaxHitPoint());
: E) R" E R' A& r/ l
, C Z: Q' X3 N: `/ L+ x8 O if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )7 x9 O9 T5 j R3 H2 L* m, O
pUser->SetManaPoint( pUser->GetMaxManaPoint() );( ]" J7 q1 K2 h/ N
3 Z" p1 [) i5 r6 Y9 C
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
4 u+ ]" k- G7 C7 I& [ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
* J/ H( \/ G8 Z7 x2 V; W* z1 h
0 A7 W6 m& B2 a5 U, g8 F#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp* a& E+ v; L6 y( t Q* d
and add under
7 G3 a- T/ P" e; C7 |3 m4 L9 \4 _, S! L2 E2 K
Code:! R/ _4 Y9 C3 g7 N: ~/ T y+ Z
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )7 ?' B" q, J: `6 b( A1 H m& _
{# ^; L& P* f7 R; D: |) K+ t! 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 );
. t8 s5 S! m# s: F }this
+ F. \* @& i- ~3 r2 p- s4 J* ]: J5 b. z# }% c7 ]+ U9 o; d
Code:
' w) l5 U7 a( Y#ifdef __QUGET_SWAP_FIX, M/ U0 [. K- }7 ?6 z- L
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )& [, S/ |$ K( o
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
: R1 [/ }! |8 e" Y Z
/ @" ?) [0 k3 H/ m' v if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
) z* A% L) [! Q2 @) Q% }/ l pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );3 F6 e# V2 O- O3 V. F+ P* Y$ q
/ ^, l( Z e2 m8 F/ x; c if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
$ v/ }5 @& x7 ]2 l: \2 S, G- K1 w pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );" O: D3 ]( W; J( g; s( i! L2 ^8 k' \
0 `5 F0 @2 r' w0 y& S#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
! L2 ?8 X& ]7 N7 z) ^ q* Y9 M& @* n) N* i& h/ t- f4 ]
7 q3 C8 A) g& e* G1 D3 I* ^" }) C |
|