|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
1 F% m+ c8 D, n1 {) ~% iI posted this because someone kinda posted a youtube thingy about it :O.. s2 L) F7 j7 N& ]
& g( q1 D# j4 Q1 A# U6 F+ b
Find this in DPSrv.cpp @ worldserver
) \# A5 H( W7 s+ F9 g. Q- N$ d
0 N# o. f/ A7 C( F1 ^( W2 H3 pCode:
" t9 s* l# p$ d9 R3 s6 r n! Q! j2 Cvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )' N1 P# |3 R" O) r' e0 @1 a
{
' ], O+ Z. M4 U- K DWORD nId;1 H& H7 w3 V' i& T- {9 f
int nPart;
9 ^5 a3 H. k* D8 h- s1 [1 I" q. o+ |: A" Y
ar >> nId;
" l$ ]2 q$ h5 C; {7 }" e# b ar >> nPart;
. L4 x' |& E4 L3 t# y1 r& u' | V& }- p/ l- o2 E" c+ Z
if( nPart >= MAX_HUMAN_PARTS )
5 R7 V W3 C: u; U return;
0 }( V/ k. [1 p1 b7 T& N0 s7 T3 C! a2 { O; Y9 s
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
! b: Z- {' p7 [& k: A3 I8 _
+ j, ~; {, m, x# p( z2 o9 @5 v
3 k) `2 G* C4 b( j, Z8 KCode:1 Y1 r+ r' u. R6 v1 Z
#ifdef __QUGET_SWAP_FIX
8 k3 h; \& W0 n- ]4 P! n6 q. E& o- z; z, ~. T4 J+ | q
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ). o% u& }8 }" k$ v
pUser->SetHitPoint( pUser->GetMaxHitPoint());2 d9 y( t9 T% I9 s
5 v ?+ Y" v. a# j4 j
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ); E B- h* g; ~
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
6 M2 R7 e) C7 ]0 B
8 _6 S* r# u4 r& w N if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )& H7 @. n' h. H. ?: E; W; {4 A
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );2 l1 b t( z6 Q7 _8 V4 O
/ ~! A! v4 U& ~$ q! ^2 ]
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
& o# B( h: P; j! k% m2 o8 p! Wand add under3 m: M, ?2 [, }
" S0 P* X7 @( t: VCode:
. ^$ j% p& G; M4 \+ I/ _0 hif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
# i6 B3 }7 w! |9 I6 M! N, u {
; Q5 x6 H. J! u! `0 i* L 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 );
' v7 H% F7 c3 O$ r. b; R3 X& ^, k g }this+ c' Y9 w) ?0 b. F6 D9 u, M3 G
/ i7 ^8 z0 f) n0 t
Code:$ M. s& \' M1 q2 ^
#ifdef __QUGET_SWAP_FIX- ?! n( n H" P* u
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
8 @+ L, [( I5 d O! ]2 ]+ {# _7 Q1 { pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());$ O& \# h% d7 j
) T9 m! Z( G( v- S if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
$ ~" k- a. t" Q! a pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
1 O4 e4 _7 h/ H; V! X
4 x6 j9 ?6 |+ u6 ~( H7 B% X; h if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
7 j2 m' r" _" T' @) f: P6 F pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 g/ P1 }: T1 K3 ^1 T* f
) s! ]# L& d; }: I+ G#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
$ W* C8 _! r8 l% V* f: g9 i+ k3 }4 T: D3 n5 }( d
" X) C$ _4 H3 ~ Q |
|