|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked & c5 x" G' r# y& \
I posted this because someone kinda posted a youtube thingy about it :O.5 E7 n4 Q: v0 @
7 n% ]) H- ^/ s. l: a$ a5 C) u
Find this in DPSrv.cpp @ worldserver
2 _, n( @9 I4 K: p' z# b1 M( D" g" j) q* w1 U* S. g2 @( d5 o
Code:
& y5 f# b @: T# e( U/ Qvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
2 H5 n# j8 q' k# i' g4 \, f$ M{" S2 c. U9 I, E2 k* P, y# J. M
DWORD nId;
; S" q* m5 i) o7 Y1 a int nPart;% n$ h- {0 }) T. X) t: Y* @$ s
. D7 W2 l( r: z0 D7 U
ar >> nId;
9 V: x$ v" K: J( h5 [, Z8 _ ar >> nPart;
# k, ^* R8 Q& K/ l
: p w6 M( t k; s" C9 K" l6 b0 d* ` if( nPart >= MAX_HUMAN_PARTS )
: Z4 J$ s- g7 n4 x+ H7 K return;3 M3 b2 b9 ^# S7 `
5 x5 ?, Y: ]* Q7 T: q
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
0 Z; H- Q$ g/ R9 D' K: m: R, F4 j. X, f$ _4 t! K8 x" b5 K( ]( M) ^: _
/ b) S1 [% j2 U0 U1 v
Code:$ A3 H3 n0 h. u: X) e) @
#ifdef __QUGET_SWAP_FIX8 `' y% [* M/ J9 Z3 s9 z" d& ]5 f
( _8 w- S8 T8 U% I5 a$ \; ^7 N( m6 f if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )/ Y) ^+ [2 @& G4 C" s3 I4 H6 T
pUser->SetHitPoint( pUser->GetMaxHitPoint());& i, H' ~4 e" P3 r5 X3 f: X
5 p/ G9 B6 J% c- C
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )% |; x3 A# h2 }& | z
pUser->SetManaPoint( pUser->GetMaxManaPoint() );( w1 J2 J! l# J* t/ l7 }
7 l5 W% }4 V( G' @. ?- X* }
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )& l' w. U' i' h+ X
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
# J( @4 y. I. r' D/ w9 d3 w6 G; R9 |' K3 B$ w7 [& x
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp5 S7 e& P- X5 y9 N6 h
and add under# c3 {2 G: J9 V% B$ D3 m- E
. H9 n' T8 H! q! [. oCode:9 `/ _+ C, t4 Q. | j$ C* o
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ); C* l! w' o6 N$ W
{; t' W8 T& B- r F4 L A
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 );
# G, ~; C% Z: e1 S# f" N8 P; Y }this
$ O6 z0 q; }) d3 T7 f. ~; p" x, M! A
8 w( v8 I3 a* A- J% bCode:
2 u& t% Y! L& v" F#ifdef __QUGET_SWAP_FIX- i4 b% j& d. m; y# f
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )# Q( b0 }/ ^, w( C0 Z3 S7 O% J5 x7 D
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
- t1 Y3 L+ e4 b) r
- L i S; Q* r. L if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
2 c) I4 \& \+ X% r; v& K9 b0 Y6 D1 ] pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
+ L( |4 I+ X; x- J) d
$ m: }9 w$ d" n! [& O7 z if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )1 {/ r$ U+ `, f* h& F
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );: i* @* Q0 I! U' q& r; q1 G% ?
3 I. F3 E$ r& i+ M8 W5 Y* L& g#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
6 V! b( Z9 s% j& M
" |& C- m0 b9 Z3 V& b6 m! ?" Z! l; `3 j
|
|