|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
) x6 d0 X9 g. ~6 `I posted this because someone kinda posted a youtube thingy about it :O.: h1 {4 f; ?# C2 A8 v8 ~$ W
: P X" z5 D+ v2 h. p# d
Find this in DPSrv.cpp @ worldserver
3 I* a1 C" a1 v& [- u0 z3 \$ i9 S
3 I: f6 m( p v7 h+ [: @" c+ bCode:
4 J1 {" B- v* \. g1 X7 Lvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )# _7 D0 F- s! Z# ]% e d/ z b% h
{+ Q) Z3 [- c" @ w# R! A/ V+ u
DWORD nId;
$ a0 U2 v7 |$ Q, W1 W4 L; J; [ int nPart;: `6 ]4 i6 H3 u# _& i
3 ?0 }6 E7 N( U j; y
ar >> nId;6 R0 b, r- p6 D* ?+ z
ar >> nPart;
# Z+ p) C8 _( f/ v$ _; d
: Q. E' `7 ^5 i if( nPart >= MAX_HUMAN_PARTS )
3 s# u# [: y0 Q$ S& Q/ a return;
3 ~; T* A, L$ t7 g- l6 t) V# u: T& m' J ?- A
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it2 y# `# c- \1 c K: D6 ?; [
8 {! {( K" W0 M. ]0 A& F
- |, B2 t4 @+ T" K0 B& T+ B4 {Code:" ]3 G+ e z8 C. ^( Y) M
#ifdef __QUGET_SWAP_FIX
3 S! i/ I2 K& g& l: y
9 H( ?' ]; I. P. O. ]1 Q. k0 V if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ) e& |& F7 k( v, M; j! q" j% g
pUser->SetHitPoint( pUser->GetMaxHitPoint());
8 }, r* L% a. v+ ^) ~6 U- g4 N2 p( I/ l
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )1 R; u r' _5 a& \ k2 ^
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
0 L$ q$ s$ r* X) Q+ V: f0 i/ E/ J# k# Q0 w9 }5 M
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
4 Q! G& l3 m4 X( B+ n% X. X5 G pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
1 R6 A; r* Q# g( }; U; }) ^/ z# \, W) t' G
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" T$ E. [+ x1 ^: a) }4 oand add under
- \2 W {+ R" W& Q, U, Z" E1 N8 [" B4 Z7 m. Q1 n" G) V p( c
Code:/ L) b7 U& m* c* V6 p8 L+ h* W; P
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )+ b3 n' S* ]8 B/ Z, u
{0 }: V9 n( I( Y, S9 N9 u
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 );
$ g7 g5 y7 G, Q: ^ }this' ]/ m" ~. \* F( u% y! X9 a+ O2 U, b7 p
' Y7 K" ]2 b+ A0 @5 Y
Code:2 h0 x+ e1 i! g) Z+ U s
#ifdef __QUGET_SWAP_FIX
- G2 ~2 k8 R7 z7 L |7 j if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )1 D# |. R3 r4 R6 d
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
* f4 X! G" r( H k9 D6 G' E' v1 L% W& q9 b- Y) N9 G
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )3 |4 n4 b$ K7 |( }9 ]3 x
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );) _- O4 M8 j/ Q+ m
8 s$ `: i: @, d* E if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ); h% s3 ^7 [4 t9 t
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
: x, L+ I U8 G/ v
% |3 ?& c+ q" C; ` A% x1 [% \) z#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver * N2 y) a; W5 m& ~' Y9 y. M
" {. z% h% @5 |9 Y$ \1 Z5 ]6 M6 \3 I1 C4 w% m# M6 {+ s5 b
|
|