|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
% b8 K' S) q- q+ y% OI posted this because someone kinda posted a youtube thingy about it :O.
* d# u7 B* P6 f" {7 ]* L5 W# a: w. M) }7 _
Find this in DPSrv.cpp @ worldserver3 |% \8 u- C& k# w: _0 K
2 {' l5 R5 h* m. V/ ]Code:- \/ e3 e0 W s
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ). ?9 r% B; r( F2 B$ n
{( x: d0 T# g* V5 T0 G7 [
DWORD nId;
- |6 u0 T4 c; Q int nPart;& A/ ?3 H% o* t5 d* V( v; S
% X% G8 m* J- q) b; c ar >> nId;7 T. P, K$ ~+ n8 I9 u
ar >> nPart; 5 m5 c3 Y* B" E$ Z- h
0 }' ^2 B4 G: p( d( U
if( nPart >= MAX_HUMAN_PARTS )
?2 Y0 i' q1 P& I. {) r return;
* w) p6 I2 X3 A |- I3 [" m, ~4 `" k# N" x
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it$ V& ?, ~$ A0 u( ]
- j5 [) l6 E% m9 z: _# v# i3 C% z3 F
Code:* ?- m3 \, C. Y4 x/ {6 `
#ifdef __QUGET_SWAP_FIX% g, T6 O% a/ f; {
# i! H+ g' N: Y: A if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
9 G0 \) r/ g6 A8 q9 Y/ u% l7 F/ f pUser->SetHitPoint( pUser->GetMaxHitPoint());" M6 C( h) p" T
' O* ~9 m( s" [/ J. U' B) G* F' x/ n5 d if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )0 e/ Z" Z/ J v5 }
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
1 b' N" q5 u( L' h: u
" ~% M$ d, L+ Q. A* c) ] if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )$ x) |' d" i+ e. O& T7 x! V1 ^
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
# r V; b" p' Q: s9 i% e/ Y
; j; g# C/ n6 W8 A2 s+ f#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
. D. v5 B5 \' L& z4 v" q( r& i8 uand add under. Q3 m* h) I, i* a" u
. f, k |; ]. e& G7 ~) o7 _; ^; x4 rCode:
) |. l! u2 a& q: P5 \5 `8 \+ Vif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
+ J. N7 Z- D3 O0 V v, \ {7 M2 Z! b) s5 u3 Y, R# Y4 `+ 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 );4 |" x P" z( g/ w- w0 O! A
}this5 Q5 n, Z5 q* c K. }, D/ B
$ n6 @" t2 ]! P. X8 HCode:
7 x% f9 h% e$ S4 G* `) f#ifdef __QUGET_SWAP_FIX
0 B/ P% I) ?2 @2 Z if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
: O0 }+ z5 N, C- O/ l; J pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
, k* f7 Q2 D; ^9 g2 ?7 G4 l
& e. W: {# o' N- E* l$ Y" C3 j if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
0 |9 E1 ?( A* P) h# z pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );6 s3 e) _% z" h1 U) g0 M6 f! W
$ L9 C _ h; w: ^8 R: u# b if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
( y0 O# Y0 Q. K pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );* l" c4 G, J ~: n5 `' J
( e. `: l+ h& X( r#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 3 [ @! z; e+ i. [3 l( r
3 r* o7 i. a3 N, Z1 B; `
+ K& C8 I v* u$ W( c |
|