|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
0 x y! t3 r3 U- jI posted this because someone kinda posted a youtube thingy about it :O.1 }# w: W# Q; z. \
: |' z2 ?2 ?% O* R; _8 ~4 _' s
Find this in DPSrv.cpp @ worldserver
$ d* @8 D! c% c
, `/ G, w/ r$ B. YCode:
+ s# f2 u ~4 U( hvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )+ t/ p& {2 K" L6 Y
{9 e) A) V/ {6 U
DWORD nId;1 ~. W! }3 n. W' x3 E1 M3 f
int nPart;
/ y; _1 l+ V3 }: M( g$ K9 S9 b* ?
ar >> nId;
) X) Q+ }/ \4 i) t% w4 h; p5 |, h ar >> nPart; " F. v O2 F$ P* |- ?5 p* a7 C
3 A) m9 N. P- h f* x/ G if( nPart >= MAX_HUMAN_PARTS ) # m, L/ x5 Z; o1 j
return;
O6 ]2 r- m7 L$ q& j. K2 O1 m S6 y: M- W! x
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
# @1 d' K, T- V. ~$ L$ L
, K D- |3 A5 j; Z6 g% R0 j. Z7 b/ N: @
Code:& W4 o3 n k8 P. E
#ifdef __QUGET_SWAP_FIX
% V4 G; o& p6 v0 p9 {4 t
' Q# T9 u6 r' m' F9 q2 I if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )9 e7 }0 @# a Q
pUser->SetHitPoint( pUser->GetMaxHitPoint());
) l& i9 D v; E, p4 z5 m+ Q, |
5 f/ `! n; @, b) v& F7 ` if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )% @( _, t0 O5 |4 O3 O3 Q) b
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
& G) e- K8 Y4 c# I2 p' Y& O% c+ i6 o4 g* i9 o; D
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )) U) x9 A9 T, g4 H2 y- V4 p
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
9 _, t( W, Y" q* B8 q
/ L. J- _! h' e6 @#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
/ U. ?4 l+ d+ Z( T* X4 K! ?/ Qand add under6 ]8 I7 B2 C# g/ b j7 \) G( c L$ E
/ C8 m* \( E7 K/ r4 M. s ^
Code:
1 s) U2 A; |- n( D, w+ u8 l( eif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )" C( ~0 ]# ~ r' N
{4 E+ L7 e; m' Z
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 );. q! D1 I; P4 I
}this
Z6 _' n! q4 p& l% w, T" P& O# F6 V7 H. H& ^$ a# A8 e
Code:
) ?% x! B: u+ i) L( I& j. H5 P#ifdef __QUGET_SWAP_FIX
3 j; F# D, b* N& u if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ); _; x: |' v; Q$ F: [
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
0 T6 t; c8 o! ^! \" Z- U
- P$ p) i! h% g! |7 F' N% ?: ~ if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
# y# c$ l8 K1 r9 P6 W6 u pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );* s1 g4 l6 b+ i) [
- Y0 u$ t' A, G; N4 ]5 U if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
* Q: f$ k" t* p9 K4 j pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
- C$ G0 }* V& ?6 U) X/ O6 N5 `! H( }) E, X( h% P3 b
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver * m) d; V, b# ~4 v3 v9 P
$ p" w) X* I. l- y- {
1 D( N$ L6 @. ] |
|