|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked , c( _, G0 i, I% z6 w4 \" q. i
I posted this because someone kinda posted a youtube thingy about it :O.
+ K, Y7 F! N- D/ M; W3 z. J% Q6 v( D% w. g2 d: ~
Find this in DPSrv.cpp @ worldserver
' U1 Q' _/ r- D( C! y
& r. M7 D6 T0 n# h- J e X8 zCode:( f7 Q. L% J" k2 u* J' z
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
, l( p% H: @ Z{
6 M# Y$ N; C. i0 U- T DWORD nId;) r( j6 K/ e* A k' Y
int nPart;
' ^, m6 C+ h6 k, h9 k. Z4 ~ P
" m# g. t3 P# H* e [& x' N ar >> nId;
- ~- o- E" ]5 z ar >> nPart; . {% p3 P; o! Q
+ m- }& o+ f1 a( J# @8 R, D. i: w
if( nPart >= MAX_HUMAN_PARTS ) 4 q" _ i5 S- q# Y6 D
return;
+ a7 E' i& @, E, v t
3 q% T) Z' K8 w0 _; o- D CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it5 p# C3 D1 ?8 W5 F0 x+ c
. S, e/ a# b1 X; ]1 Z* \
8 Q3 f0 q9 S0 LCode:& a* j9 f: J( o5 {. \6 ?( r o: M
#ifdef __QUGET_SWAP_FIX
+ |6 S! u0 x/ ]' \3 a
! u3 b% A6 J: G. H, \& d if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
" U9 f7 J5 _2 W3 j& o pUser->SetHitPoint( pUser->GetMaxHitPoint());
" W: u& N! g5 C% V1 }/ b* l4 Z5 V( P/ U
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
7 X; K' ]; F+ j$ x" {' m; q$ W pUser->SetManaPoint( pUser->GetMaxManaPoint() );
_, n# w9 }- o: ` V2 T6 E" V3 F- e
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
: C# X8 n. g+ B$ \% W pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );8 u$ g7 e8 O U% D% o1 P
7 d/ x' }$ `$ K( q) J0 K( A6 l; K#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp" V5 S( j3 K7 n1 A* r
and add under9 g2 u# d" U o
0 P% K! Z& G) |9 A8 ~Code:" |8 l. D/ N2 [) h
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )7 f$ m! O. T: l1 m: r
{
5 J6 |$ U$ A. J* c' n) Y' J 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 );
/ S6 N% _8 b8 u }this
7 Z5 C* y+ N- u' a: K( a6 v/ G, L- S9 a+ ?' a! \
Code:
! z7 Q3 _ P8 v" Y) R#ifdef __QUGET_SWAP_FIX: a# K( g: g1 O$ G+ L: E2 o7 u4 C6 P
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
9 p8 L) }- o$ q8 ? pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
J* K; b5 T: J# _9 o
) z& h% [2 ?8 f' j; ^. p if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
% h) D7 D: s, [8 z" t9 C0 a pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );( ^0 o/ [; @: j, n1 c
. ~# @. G" d2 ]) y$ N8 J: a# K" j if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )8 a3 L; x* w* x8 `1 b' V
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
. n+ A: t2 I0 |& s7 V8 J. Q$ N
( W# s" K2 ?* D$ K# e& V& ]#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver , k$ n J. {+ q5 j7 v
: ?9 l, X7 n9 m& h! G( K
! e7 g; u& Z/ a, I$ D3 r
|
|