|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ; b, {3 a% u2 C4 v/ w( A: l
I posted this because someone kinda posted a youtube thingy about it :O.. N$ S1 n1 n! K" Q3 K7 Y1 k$ W u- n
5 F9 D' ^1 n; B
Find this in DPSrv.cpp @ worldserver2 ^0 E3 O0 J& @
4 C- q& [8 R4 _+ o' w; u6 j9 zCode:! O: }5 s ?% T% s7 I" x
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )9 O( X3 q$ a* \) c
{9 |5 Z5 x1 L" b% `7 p$ o; v
DWORD nId;$ c! _! m9 {; k
int nPart;( E" x# ~# J$ W1 Q; d
: L" q. Z' ^( f F
ar >> nId;6 K/ W6 M' J. x4 e& y
ar >> nPart;
4 h& y0 s) ?4 R K* v: m% w% L0 j $ B0 F. G# v' @: |2 r% {/ ]: |+ V1 i
if( nPart >= MAX_HUMAN_PARTS ) ( c6 @8 u/ ]/ z# N, X2 H, G
return;6 b% x0 a# K# Z2 `0 G0 ?
; \% a u: @" ?0 R8 l/ v
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it# y# N* f- x' Q8 E* z+ M; V
$ `# A$ D: ]* }2 [6 F( W2 G* P3 ~; K p. e+ e0 ]( B5 U
Code:
8 Z. B3 y1 P$ F5 Z1 w. H3 p) \#ifdef __QUGET_SWAP_FIX& c- ~8 K5 H+ x7 z5 t* i" ]- ]
4 |4 R+ c. o# B( a if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
5 A4 I4 b Q4 ?" |6 `! p2 x pUser->SetHitPoint( pUser->GetMaxHitPoint());- t0 B4 q0 a/ J: l7 v3 G% Z8 F
& }. ?/ K) [1 h' b. p- Y; }) t
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
. f# s% Z# i8 {( {4 R/ i1 g Z pUser->SetManaPoint( pUser->GetMaxManaPoint() );% s+ O- ^9 q/ e8 Z$ k6 ]
! I$ `& R$ D/ o a
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )0 f# ~6 {" o6 t4 D
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );8 |9 o) K0 r8 L5 p! m# V
: A- L2 a+ E+ Q" w0 s- L#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
; }2 q: O/ j1 o, t1 R& kand add under: H) C9 {' M$ ~' q9 @
7 U; x8 ^1 J: d) ACode:. d/ k8 D4 ]8 k
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
6 y- j# W: `" @' Z/ s& l. A& F {% n, R. |( \: Q+ h% s
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 );
6 N; i' D3 b9 `* L0 v. x }this
/ P5 G$ _4 j r' c/ h4 O* b- `- D" `: M
Code:' R, U* ] {6 S9 D
#ifdef __QUGET_SWAP_FIX
+ }* ]$ f) u) J( g' j if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
: n# e, p4 L/ V0 r& }6 f* y pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());3 _9 ~9 }6 H' n
0 o _. q8 s' ?, A if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
' T+ }2 {1 n) z8 S& X8 E pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );: r, M' z9 p7 K9 w9 a, J
. G) ? ~0 r5 V: t7 p$ A% j3 C
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )& F, e6 K7 w7 `* c" d$ A
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
9 x+ Z7 ]* u) S$ D. G8 p Q% H+ U6 f5 N0 ~: w( H
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ' T& M: J1 q9 X0 U7 M' Q
. } }# n! c' }7 W/ y
, I5 s& D/ I; F# F- }7 O* x$ {7 N |
|