|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 6 N3 N; {6 Q5 z9 c& d. C
I posted this because someone kinda posted a youtube thingy about it :O.% f9 i( b8 f5 F9 `; O
/ X* t& r4 D5 K) P* w+ d3 o' W
Find this in DPSrv.cpp @ worldserver
! I+ {% d! C& {$ I
& O, w' n+ |7 R7 n& s& {5 NCode:" p3 r! r+ d6 R; x0 f0 x) f- }0 B+ I
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )8 S8 A9 u5 s, ^: G/ o8 O
{3 a- g, M6 X5 N( l* C3 l
DWORD nId;( E% m: u/ }7 d4 h: D
int nPart;9 l" l- l- t( j' x. r" i, w
7 Q( ~7 U/ i b* U% q; h
ar >> nId;
# j, z6 u5 T N' N5 n4 c& P: i8 h, n ar >> nPart;
+ ]" i5 H B; S3 r
4 x* a3 J- N* g6 \) ^ if( nPart >= MAX_HUMAN_PARTS ) - I6 O. q c \% I! O$ [
return;
5 C$ ?- f1 n5 T' [0 j! y4 u
$ ? d7 F' ]% |1 i CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it* `/ T$ Q2 b' I( r) C) X
9 m1 f- V7 W9 L2 ?/ L1 }; X0 G; S. w( M! g* K) B! r
Code:
& }& t2 W. m0 W#ifdef __QUGET_SWAP_FIX% H+ ?: d- R2 q- Y6 C
9 j1 r) L& Q/ E if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
, Q. a$ o1 }: n, _$ I pUser->SetHitPoint( pUser->GetMaxHitPoint());
0 {& [. M# X7 v7 u/ j, _2 M6 T' h! _+ }8 P1 B: G3 e
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )4 F0 ]0 A# Z: D- j" I, e* P
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
* G+ \9 \7 u C* G
/ M: {) J9 c1 E. L' n if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )5 _7 ]5 |" K) a$ |
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
& H' `- |; Z/ R& U2 Q: V2 m# ?$ L! H" f' N
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp1 ^' p* D1 S5 G3 E! ^& j" B
and add under6 A/ u4 _& f( u4 T: D
" C$ ]+ M3 q) t6 D+ q& x0 v% ACode:
( i! n" N: r+ W- g) S+ [if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ): j* ?+ v7 L$ ~7 U+ j
{
6 J B7 A# O, S" P% t2 X 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 );' p" L0 P7 _# h- z5 r) U
}this
8 N# h9 ~ l* [* V: w# X+ _) o/ y/ i% l2 t% Z
Code:
H5 I& i# m6 ^; [, ~#ifdef __QUGET_SWAP_FIX
# O; P2 i' H" b& b( h/ p% O+ Y if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )7 }$ c0 p" m+ B. D4 V
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());( L$ u4 z& d# x) T
- v" W5 B x- b6 ~! q- _
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
" G5 J- G$ W }7 V! _3 L5 x; v" Y pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );1 Z4 q. y* i2 @8 d$ z
7 {) Q# [% W0 P
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )( V7 j& l: x* e7 I7 v: }2 L+ l
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );- _/ b' c7 l' v! U) q2 F
; H$ {* h9 s2 q; [( J. N+ Z+ F#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
5 g. S0 w1 G' }. u4 w, T G$ |, R3 a: K# W6 |
8 y0 z" J3 w( k$ Z3 i; E |
|