|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
' l, b9 V' c# Q3 }6 k9 `" X0 NI posted this because someone kinda posted a youtube thingy about it :O.
8 y2 q: Z, {( v9 Q2 D3 _4 R0 k. P6 n7 c" `
Find this in DPSrv.cpp @ worldserver
- Y7 M; U: V0 W h
" P1 F. B7 I( P/ C. ^Code:2 k% A8 f2 l2 |$ V$ n$ w
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )6 a4 F* I6 k% \7 G% i0 c
{. | i& W0 G$ p9 v" W4 b( g9 {
DWORD nId;
4 H: x' K, C* E. r9 z2 Q int nPart;
n# v* }6 Y* ~5 A2 \# n1 u+ w" p' _6 Z' a* q" L
ar >> nId;
{" k7 B7 x5 v1 }5 p" B w ar >> nPart;
' k o) n! E+ l# U* k' o n" T" d* t3 u6 L% |- I% ]; }
if( nPart >= MAX_HUMAN_PARTS )
4 p& A2 r( l. w return; k4 e+ M5 C% w: w/ b
. _; g; l% R+ b+ x0 S) o$ d0 {
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it0 J3 j" _/ u9 W8 i7 |
4 @; H9 J. ~$ `' ~* B) i: k5 F) {
( C) V% ? I b% C' n5 h9 {) ^/ u( MCode:
. ^' X% e0 W" h' i#ifdef __QUGET_SWAP_FIX. w# p; a% E6 c+ F2 K9 |7 e- e7 l. z
: o6 s4 B L! i$ z% x5 s4 b if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )3 B: N) T- q7 x3 [2 K
pUser->SetHitPoint( pUser->GetMaxHitPoint());) E8 r3 U( h6 K' G4 ^
' j( f; w2 Z4 |
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
! X2 X9 h& e+ i6 m. W* ` pUser->SetManaPoint( pUser->GetMaxManaPoint() );! ~8 v, [6 X: b6 F, G1 q
! K" S7 ~4 p3 O if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
: X' _3 o8 i* I# `6 @8 G pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );9 N9 s w+ _$ b! m9 D. Z: I
4 o, B5 L( X, p- s5 l#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp W) [1 w3 d: I% `, H4 B8 e
and add under8 i+ M9 Z/ ?* Z' N+ A" M2 s; Q
2 f, w: f L& O8 l R* e5 m9 s
Code:5 L4 g' N8 ? j
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
6 I: y3 c# Z0 @2 [0 x3 q9 U: M {
; N6 Y7 C" \3 B! u 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 );
) @# U e4 O+ v, {9 H }this
3 G. o2 {/ X; @: Z! y
( Q! U# b$ v: T& C1 ^( H, lCode:
) E) m3 U% Y$ e6 ^/ ~+ x) d/ f#ifdef __QUGET_SWAP_FIX7 k- U5 Z" F3 h, ~( B; [
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )) F$ X7 e6 W& x3 z, B- O) P/ d) N1 P
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
5 |/ c& X) I$ a7 V2 e+ r j7 O! M3 F, |8 S7 l' {& f9 U1 m) y& j
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )1 j$ o! v% }: S( \9 N* [
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
! D) O2 b3 W1 r6 N$ \) w9 ^
, S0 |+ j& B/ F if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
[- a+ X. {3 Q* w pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
+ w C. D! J, l
% L4 Z7 q* X" H* i#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
" m+ M; l- G4 ?+ n0 X$ r9 Z
. i8 i/ T/ @; x- t; Z) D% ?
8 G5 Q9 j, ^+ o6 N5 A8 T |
|