|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
- C2 R" G; M+ ]I posted this because someone kinda posted a youtube thingy about it :O.
/ D. a/ U* J! s- ~( Z2 w c) u: ~( y- {# d8 _
Find this in DPSrv.cpp @ worldserver3 `1 N/ t8 E4 c* A% `/ Q
6 k" L! I; E0 x% h; yCode:$ m$ ^6 i* \" N5 E/ L
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
" D. q/ n y% X$ S" _5 i# n{
" G- L. N8 @& z! b0 p/ p( _/ W DWORD nId;! P1 n: T4 h, n2 L/ k0 U
int nPart;# h6 l: W2 m- O: o
9 k& J z+ G! r# h9 [$ N
ar >> nId;
7 A2 x. q( U3 H ar >> nPart; " L# A* X! o- ~: [/ Y9 k3 \( }
: z, q3 W3 K3 p6 u! L if( nPart >= MAX_HUMAN_PARTS ) $ ~5 j/ `; M/ I; _/ u7 }
return;
" i) M0 V3 l3 M( B& v, v! j8 F3 k5 R6 a# b! Z
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
" b& l1 k4 Z# p4 X+ @& r3 E& J7 {8 j+ K Z8 h% a
# @: j% q& f+ B/ y. L9 Y/ i2 ~+ B
Code:
0 J, S: X2 }! e4 {! g; b" S. K#ifdef __QUGET_SWAP_FIX
# n: q- M/ r( V$ ?2 Y& u
/ n# q. e- a8 C8 E1 ~/ d1 [ if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )/ i* V2 e. m, E+ y/ E$ Z$ v
pUser->SetHitPoint( pUser->GetMaxHitPoint());# a" i$ X) a/ B; _4 c: C* l
+ ~8 q W8 P8 B: c if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )% B! n. u N6 V+ I- s1 {8 d- J
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
5 S/ ?9 U1 ?* I) f1 ^: ]/ O; n
& r( U) V* A8 N. t8 Q) a, k# z if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
) v- e2 q+ m }3 i9 l) e pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );, c* ^# S5 Y3 A# y- l, G B
3 C, W( b8 @4 @4 W
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp" m4 E8 w( P! o& i
and add under' g& L+ z3 Z5 ?% R& }# K6 v8 r: ~3 g
9 O+ [5 D$ f8 y& lCode:& i: N7 g# J* v0 b5 K9 |$ @. k
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
) x: j, |8 u% w$ E# ^8 \ {0 o5 h* ?" M! T: `0 b
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 );
+ z" z- m& T. W$ S' x6 a }this4 Y& Y1 V$ \) f
( q( Z7 i4 [( a+ q
Code:
$ a0 v/ F( J' z) {6 F#ifdef __QUGET_SWAP_FIX9 `( L+ K2 ?& ]9 I
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
) W9 ~% M$ D* {* S6 B F- g. N pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());% y' O6 s1 N Z. H
/ y2 {6 D. x/ z4 o# m- q2 X; k* w4 p5 R
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
: ^; k; H. N+ c, K pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );/ w. G3 \& |2 }* d5 ~
+ E& C( }" n6 _1 k$ |# } if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )" A. K6 W4 Y. f+ C2 e3 S
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
. G, J/ @( D+ \) {( f7 m9 ~* {4 {9 n3 K8 u
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
8 @5 ]. ~$ f3 r1 u9 x# X) B" R1 k1 ~5 {' K1 N
6 j) Q" ?" B3 t8 y! y. y0 H |
|