|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
; `4 i+ `. a; sI posted this because someone kinda posted a youtube thingy about it :O.
/ p% o- z s& P( z
( x9 f" P2 n9 e" c* E! q& h5 m" h1 Z. zFind this in DPSrv.cpp @ worldserver* G; d% w7 Q; d: X
2 t: M1 P8 r, Y! U' O
Code:, u/ g: E- x2 {$ J+ l2 p O. D
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
) u4 D: E. q' f" o" h: h h3 x{
& s3 d: C) _9 J8 Y7 X- O8 U DWORD nId; T; O# L! s( J2 J0 f
int nPart;
; F1 l' g& C: N9 g% P; \2 c! k8 O5 D- ~; U4 W, @4 ^2 H3 W% H. G
ar >> nId;% l9 V( d- L1 M& Z! Y- k/ t" K
ar >> nPart; " h# i+ ?% [+ s6 z9 U
& _6 f) D5 p% Y if( nPart >= MAX_HUMAN_PARTS ) 8 N3 B) i- f* J; B3 B' S6 O7 [- [: K0 _
return;
" B* x H# N, ~" ?4 k7 M; W* y8 @+ u6 W5 Q7 C) D, L: J- h. k
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it% T0 f3 X7 Z2 H, G& K8 X! W' I' |( q6 D
* {% W# N' b; s z
" @8 ?2 s- i' LCode:
4 D9 t, N/ r. ]. B3 Q, c" E% T3 i#ifdef __QUGET_SWAP_FIX. `4 z5 G7 P/ f" d& U" u
& d$ |8 P; m: \
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )! Y" f( G6 v* r& Q3 X
pUser->SetHitPoint( pUser->GetMaxHitPoint());
7 o, D e- C2 L* R
" E1 w. ? E' t6 ?3 w if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )# b( u7 c& N0 A/ P0 A2 {1 t0 z
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
' w8 @7 t% h' B$ `. l" G2 p. f& L9 T
2 F& b6 R9 j1 {3 G' E if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
2 t3 x7 `- f; ~ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
5 j! N2 |5 s$ v5 k
9 f! K; X) ~ F# W#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
! d9 B% \9 J6 r1 X* f0 oand add under# K, W, W" ~" ^6 o. s1 E5 V
" l+ t$ k4 }* J6 qCode:; ~3 y7 o$ L! H( s- T. m: h) Z4 M
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
; O M$ N, `- c6 c( { J {& w; Y. u; i5 l: p. n5 ?" w* w
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 );
$ b1 l9 V k5 I5 @( t" t }this. q1 b1 m: r, O
# F! P5 P0 f& c$ I+ s8 GCode:7 t: v# U6 _3 r Y$ \/ S
#ifdef __QUGET_SWAP_FIX
8 P( V1 E, M8 s if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
$ @1 |3 ~+ i- o. \' J6 U e$ W6 i pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());7 i6 q: ^6 G! i3 s
; A% x: U+ i7 o- R, M1 v
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )5 ^$ i+ A' c) }
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
1 v7 j( e" B2 b; u0 X. k& {8 C3 O4 K! H; [9 E/ Y2 L0 }2 k
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )# _7 Z1 ?% H! P4 G4 Q
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
( J) |4 f6 i% {) E
$ ]# j( L' x$ E, I#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
0 `% o0 D0 o& f
9 c2 p$ |/ W& X( a. m+ c
3 V; K9 `+ y6 D* o7 p |
|