|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 4 ]7 w! P8 M' \2 \
I posted this because someone kinda posted a youtube thingy about it :O.. J$ [( b- P2 f2 Z9 r
; V5 w3 t) P( S1 @. rFind this in DPSrv.cpp @ worldserver& J* d4 c; `' L# p( k/ K
: Z" @6 W6 m# B$ i9 c' d
Code:6 C' m/ u8 C9 [" v6 a5 |
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )3 W2 v1 q& E3 Q7 g+ @" z
{
2 A6 m7 |0 y: E& B9 a1 r; i DWORD nId;' ^* z+ }: A" L+ \. F
int nPart;; y4 G" z# A4 K2 ]( u
9 s9 F0 s, k8 p( l ar >> nId;! J$ o2 D0 f3 d2 G
ar >> nPart; / h* i9 f- J: N4 j7 m' h* T
1 C. X2 `+ L1 l8 |% h# z" m
if( nPart >= MAX_HUMAN_PARTS )
/ o7 x% W& G- @& O( l3 u5 d return;
& Y" `4 j8 s; M, s: _6 d8 q/ K; m' D( Z7 l! L# e' y
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it3 P4 E* }" j" `9 m
% ~( o$ f' }% Y" h% s! y- u* d! J' K- J4 s% ?# P
Code: U& o, T7 c9 S
#ifdef __QUGET_SWAP_FIX
) _+ z! y) s; J" A; p1 z1 L' b I3 T2 C. j' g( `
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
. [6 F" K: h4 P9 b' d! g$ f* I pUser->SetHitPoint( pUser->GetMaxHitPoint());
/ Z3 q& h$ }" O1 q% L7 M: i( Q* `$ l! Z7 [3 y
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ). I4 |5 D7 X4 u. E' f
pUser->SetManaPoint( pUser->GetMaxManaPoint() );2 H+ r5 D* l0 a
0 ?& v2 k4 b9 r8 e
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
; @2 A+ U) v+ u0 @ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
& {4 ^6 m/ X* Q- k1 J/ k( W2 R
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
- l' ?% p: d# ?" r6 P' W; Tand add under( J* w8 J' h, e/ G4 G8 Y$ j
4 Q2 G8 l0 w: {$ x9 @Code:4 o! }& A3 a/ y1 j& y- X$ o
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
8 J! `7 x6 W( K- y0 u {
e# L( @6 U. J( |+ q 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# U- ^4 f, h, F/ X }this. Q4 D7 j3 N! \% t% {& X8 j' t6 K$ i# c$ v
: v5 H5 i1 U( |# ~. m+ v$ ]Code:4 u7 ]5 d! t8 y7 v2 H8 \9 b, }
#ifdef __QUGET_SWAP_FIX' {! b! L2 r& W w6 f' m
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
/ l7 o9 ^5 r) t( s( |9 F& K! x/ ? pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
, L v' k0 p( u2 U( j" U5 n5 V B& s# D; x/ i4 X) x
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )' i' K# }" O$ \; q$ O# s8 k& G
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 L& A9 R2 B S. @. D% f/ X6 ~
4 E3 q$ C) R0 S+ D: r if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )& H/ j* u9 y: X+ J( W
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
: \8 n3 Q! A# |, B/ x5 g3 p) J% O( a0 p& {3 i
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver L" C' P A0 D3 o& A6 O
& k2 z3 d" q/ I( K
6 \6 S- n2 \' q K. p |
|