|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked $ U) a3 y8 {& t9 L$ X. E
I posted this because someone kinda posted a youtube thingy about it :O.
0 \1 L% b' S! q8 q, ^6 o% l, W- i7 S, M$ u# U
Find this in DPSrv.cpp @ worldserver
1 B! O+ H- U F; C+ Q4 C5 F4 W$ Q6 }1 L: t
Code:9 E8 }+ w4 v* M8 Z8 W- o2 h
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
6 V# Q! l# ]9 Z& S( Q{' m2 s7 H0 @ g9 Y$ i- }& o1 H
DWORD nId;( w$ _+ O. o6 Z7 c# c/ e
int nPart;
& x7 p1 u' }, \0 [$ }" ]6 ^8 Q, l
- G6 _% I' o. m7 D) q. S ar >> nId;: S6 b: p- u. h) T, S3 F9 x
ar >> nPart;
5 q; \" c/ Z. c ; D$ E8 u. R. l+ C+ j2 B9 c1 U
if( nPart >= MAX_HUMAN_PARTS )
9 o* j N. Q$ c3 Z( o return;3 x$ ?7 A2 r# Z; G l
0 u( ?6 \7 I& R% I/ w% O3 g( U# B
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
( O& ?5 i% I% i- I% |1 `/ c6 y
! B: d2 q6 a: ?2 D8 t3 N& f
3 W/ h$ u; T- P: ~2 h7 ~ {Code:0 R1 C" t, E% ]. m: r; c3 K
#ifdef __QUGET_SWAP_FIX% u# m1 O4 W. ?" a3 z! l2 J! o
o5 d& t% D9 L9 |+ |9 A
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )" g' W9 w6 ^0 X. I
pUser->SetHitPoint( pUser->GetMaxHitPoint());
4 F& O5 F& B1 d7 V: C W4 h' a1 ~5 a- n
( Z2 @7 ^% ?( T$ j- g& K if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
b7 Q7 U+ Z* `9 i pUser->SetManaPoint( pUser->GetMaxManaPoint() );6 H' v+ x" c/ W: t$ f# F, ]
% Z4 S* h7 y5 w3 L- v0 Z. {/ N( G: j if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
( R" ?' v; l' @: j$ n pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
+ i- Q! r0 u2 Q1 ~7 i0 K. b$ g! O% _/ ?& O. q
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
7 x+ a j' `% u2 [) ]and add under: }& N; Q! [4 e1 ` J' _
- n# u! @- }4 @' S5 t/ ~ LCode:
7 Y. b3 i" S4 j5 `% T! e/ @, Lif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )7 N: \ j8 h- s
{( J+ t) Z4 N! u" |+ D- |2 O0 f
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 );
/ f. q2 S+ R2 I3 ]6 p }this/ r X' l; f- e8 I; a; Z T% @
+ }" S& m# U. n1 c. G r6 a6 T+ n- {Code:
! T% }8 }9 t. C8 a#ifdef __QUGET_SWAP_FIX( E3 W+ h Q, ~* ^% T
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )0 P9 k7 ?4 f2 [+ I/ X
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
* k% m7 l3 Z$ U4 b4 x
1 e" _4 j6 I! I, p% `& i if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )- F; c6 b" P7 C6 u" P3 e' [
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );# Q1 F7 ^1 s' P/ U
}2 i: t3 C2 k' M2 m5 I! [" |
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ). E" ^! e9 {' A1 y5 |
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
. N" B4 E9 e, P6 I9 {& H
% Y) {2 X) K4 e2 p#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 7 g6 Y! G- M+ e+ M! G5 V( S8 | I$ g2 W
# e7 t Y& D0 n% u
, l/ i3 ^1 D6 z6 @6 H( S |
|