|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 8 U B% R% B+ Q D# D$ o
I posted this because someone kinda posted a youtube thingy about it :O.8 }' n, u$ H$ ~
# \- I, {/ s: C' l& Y& D$ Y1 bFind this in DPSrv.cpp @ worldserver/ O5 g. l/ `% O! @1 V* J$ B
& j1 G# L: i' E' W& w
Code:
; E" F& s* Z: ]0 Uvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
; H$ m8 H1 F: {( n{$ `- C/ g+ s- g2 l
DWORD nId;
+ |2 p+ p2 q4 O8 b4 `4 R int nPart;' v. P% n7 @+ ]
, }8 ?% |3 X, [
ar >> nId;" D' G, n7 {+ |
ar >> nPart; " @( h2 c! M: W
4 W+ N7 S& p; M% F6 W6 }
if( nPart >= MAX_HUMAN_PARTS )
& ?+ Z6 u( l. s return;
: g& W5 b4 k( O' P
8 o6 Q6 w5 E/ ]( g: ~/ V5 T/ X; L CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
/ J' u" r# j- y. b' n \2 r9 g
5 r+ _, h, l: ~" x- y% R' i8 [1 [' K+ ~: _7 q( F3 p
Code:
+ A+ I/ i& r2 B/ h#ifdef __QUGET_SWAP_FIX3 v2 |3 g% j! x7 X+ z
$ u3 c4 G+ w0 c& N5 z6 O4 V4 R if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )# r" l& a2 ~4 C: p- F, z* r
pUser->SetHitPoint( pUser->GetMaxHitPoint());/ t: |* |6 ]# z. k6 A
' |% B0 i; h1 V1 _' q# j8 l
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
y: K) b' J& C% V pUser->SetManaPoint( pUser->GetMaxManaPoint() );
6 R/ r( p$ d! S3 {
$ Y; V3 Q) i% c2 O- n if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )# L& ^: D, _( R0 O( m
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );* s6 A' ^- T+ Y8 C
* M3 U7 Y8 G8 G: l# j3 S#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
0 N) _" L; W# |5 `. z$ N4 J# C: \0 Mand add under
. i9 c& S. v3 ~0 D& Y
7 d* e: A$ }4 _ w: LCode:$ L+ i" Q$ \: @+ R B
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )( j c( W. _5 L
{/ q" t4 M* X I& a9 H
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 );
& A# l9 z- _# ` }this
" f5 ?1 \; ~: u6 N; i$ Z! n0 u
& C* m* T) I- V: @Code:$ u7 C3 J7 ^" x2 C" y; K7 N
#ifdef __QUGET_SWAP_FIX: ]0 y4 |/ \. x) U8 Q, u1 N
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )9 O- B8 A/ y3 \
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
0 [) q6 d. s X% y, \6 g$ Y
7 I8 e2 k! C: A9 P7 r! J if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )# j8 v p" ^* p( U: S1 L; }
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );, Q8 M# ~4 o r, e7 T0 f$ @
5 p3 ]* c( V4 Y1 x% v, e. Z) Z
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )( H4 F8 _$ W7 o6 i$ M
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );3 ^# M3 Y0 X9 ~* S
4 Q1 j, |# d" j. I. N Q
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
5 G' L. x: W9 N/ l; e
: u/ e! x4 H, {" ?3 z) T" ^: d+ {2 C P) f
|
|