|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 8 E2 o) N5 y# O/ U6 r
I posted this because someone kinda posted a youtube thingy about it :O.
) p2 A8 g5 o% P- c+ G1 m# Z _( D$ Q0 }# A3 ]6 O. ]
Find this in DPSrv.cpp @ worldserver
0 ]* ?( T& D+ ]: E' x& |3 f0 r9 K
4 _* I1 N `: D. ]* c/ @Code:
& S$ \: h" N8 s( d: s: svoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )% U3 T1 ~6 W" i8 f% |
{
; v& e4 U1 D" g: @$ W6 f: l DWORD nId;
% y; K" ?& }, W0 N int nPart;; [$ [7 t) l$ b, z7 m& w( q, G* E* f3 ?
# P z2 l [+ p* I ar >> nId;6 S. g9 P! T& {7 t* O) [. }0 ]4 [
ar >> nPart;
$ x- }) Y3 r; I/ {4 i
# g, u6 E, @9 U8 l+ X; a if( nPart >= MAX_HUMAN_PARTS )
3 g% n& @4 Y7 y3 D. o Z& U+ |- }! R return;8 H: R) [1 |# z% h4 \8 J$ q
4 [' c" r& ?: f! S3 x; p
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
, p: x" }' O0 l' M _
/ i: z" |7 Y) a: |, v9 t0 z% x7 Z: {0 U" d1 F: ^+ Q# C
Code:0 P8 ~& R* D6 a+ S" C1 V5 S
#ifdef __QUGET_SWAP_FIX
2 J2 y; H* e K* Z% s P! r: Y0 K! _' |' r- _- ?
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )4 G |+ u6 B, v. }
pUser->SetHitPoint( pUser->GetMaxHitPoint());
8 ?( }, @* o1 }! x& ^5 S- _" G8 b. P! O, p. Y9 ?8 Q. H
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ): h5 T* o# X( }, M. j
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
9 B* D* E5 ]% E& L0 f
9 V* w# k/ _2 y3 ` if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
5 [1 T% M2 `, O8 B9 V( D5 r4 U pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
1 Q* H5 X6 k7 C# a/ R2 M! V \3 W* q4 ^7 F, u! R! F% Q' y4 q5 E8 [
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp1 R; k5 \6 r4 V1 @5 W4 p& W6 b2 L
and add under6 ~% R; O( C5 Z6 V( V5 e) Q3 V# l0 l0 n
: x( R0 q- ?- z* R- {Code:
( r; P( q9 x7 I. Q" M' X* Sif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
, H2 }" [/ J, {& d {
& \% R; k @7 N 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 c6 g% w4 o. n& c }this9 @/ ~+ d: P8 I6 T# U3 ?1 H1 [
6 w$ y/ Z# l$ W U) L
Code:
% O- P/ n4 b* G( [7 n" e#ifdef __QUGET_SWAP_FIX* R9 p8 c/ s3 X. ~8 ]! C
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )4 \" Q; d6 l; Q* P; _6 g5 s
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
# `8 \1 y4 i$ L# A6 A7 C. ^5 K8 ~- x* _4 U
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
0 L7 g! A+ l% t7 Z pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
- ~5 s9 w* D7 W( [: n
9 o; V& U1 r/ S* _ if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
0 _; Q) ]* N0 H- ?8 U2 M pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
& G# ~% F" ~) S% {2 I
6 N' X& W: a+ t2 J+ w4 Q& b- C6 R7 u#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver & R7 k0 E ]& J3 E$ I2 G2 Z1 c
! Y( y* w( k& M* ^- l: t
6 o, T" D% z: I8 ^$ @( r |
|