|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 2 H& P# z. x5 [: O/ y
I posted this because someone kinda posted a youtube thingy about it :O., t% `" m! e4 n7 B
* ?4 d5 n) Y8 xFind this in DPSrv.cpp @ worldserver
; h5 \# J! m4 T
& i7 G! [/ Z3 H j) X% y; w8 L& WCode:
8 j1 j- g2 N2 Z9 j+ V. V& c$ l, F! Lvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
, @* z& J( p8 ~. [" I B{1 B4 D, C$ j) ~3 C$ I) C4 z/ A
DWORD nId;9 Y0 n1 B5 s+ ]0 f3 x4 n0 V
int nPart;
$ S- Y$ y+ H: y4 p" m3 A2 c
2 B- z- G% Q8 u- o& g' C ar >> nId;
1 u" l, }: R! I* } ar >> nPart; ' ] t8 u2 W& G5 e+ e: P
& E7 E: ~6 e0 i1 N4 x if( nPart >= MAX_HUMAN_PARTS )
4 R! M4 T& G0 @3 L return;
5 H% ?1 }6 H# t' N2 L
1 Q9 M8 l6 N0 S# Q* f CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it/ E4 t4 K5 t S- r5 s. U* j! m
* q! }2 N; r7 |5 ^! ]
/ m: A/ n9 K# L0 Y% e) @9 z0 FCode:
; o' q$ F. v, m c: a) d( o#ifdef __QUGET_SWAP_FIX
9 {9 @$ J1 C6 V5 t7 a H8 J* s2 O) X, ~
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )' g- D% H; \; Q% ]* V
pUser->SetHitPoint( pUser->GetMaxHitPoint());; T+ M+ Q0 d* P7 Z# \2 @
. }/ p5 E* Q& e* S) t if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
9 q( n+ ]8 f0 c, P6 _! N pUser->SetManaPoint( pUser->GetMaxManaPoint() );0 T* g6 s) L5 u, e- U# [
0 o* `: P7 j8 K2 b5 n( P if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )2 s7 _$ D1 I+ x1 O9 [9 i) j
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
' ]& \" U `2 r0 e7 G7 a3 z/ [
; a: a- F/ g' i. |+ P' G" S1 E1 M#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
! G6 S( U& n3 \ g, zand add under0 Y: L$ {! M4 f! r7 [. P
% a; t* j- r! V4 Q' O" H7 U5 t
Code:
, ~6 A2 i, \8 o, Z; F* e9 k) W; v/ Pif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )4 j3 |% w- |4 c+ t: P
{
# I, L6 Z3 [$ V0 a" _( f 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 );
+ t4 `1 k/ V2 V% a: k }this
' v9 y+ X$ v1 u; r* ^$ }$ h6 d! |) k: E7 F U0 m) T( C6 n
Code:
$ T$ D. j" ]! I2 k# ~4 A' x" ^3 ^#ifdef __QUGET_SWAP_FIX
* S4 b/ ~: R; o% T if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
% }3 J& l5 }+ S! F* H pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint()); `4 ~2 N: C1 }& b3 C& @
4 r- o+ U. `3 _' ~# y' H4 S( s4 M if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )8 s+ V6 J" f7 I: @: A+ H) P6 r7 T" d
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
. Z# n3 G8 _. H/ \9 V) M8 r
/ D0 r6 @9 `# s if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
3 K2 C4 H* L- H) E7 m5 }+ h pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );1 c3 A/ P* n, O w m3 A' U
* u% n, g; r% ~6 G" L9 Z) x8 m#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ; d! \- S5 E4 _/ J( F
. [2 \" i6 @& u+ @
r3 o; n* o8 T; N2 y: I" e |
|