|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
[! o( N& c& m8 z/ E- T- ^I posted this because someone kinda posted a youtube thingy about it :O.: A- s/ k. B; Q5 u% A/ f
/ v& h* H" E/ J! k [/ j/ P P: bFind this in DPSrv.cpp @ worldserver
$ W3 E$ ^9 o7 P* g% \- ^& Y1 P3 `/ N' I( t' x
Code:( s3 M/ |, V+ `5 P2 A
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )+ _9 t/ E' I- m- ?
{
4 K1 I6 o" K, H DWORD nId;
- @: C( E1 f$ n1 H- | int nPart;/ b& u: E* D+ c3 I( I
6 s. ^; O# q4 F; C0 C( S* N0 ~. N: F
ar >> nId;( w+ U/ B5 n3 b; E; @/ m
ar >> nPart;
" R8 e9 w% u! E
% y$ s9 j# z' f& j if( nPart >= MAX_HUMAN_PARTS )
7 j L( R$ G3 t- o9 G I( { return;
3 [9 X1 p5 A6 m
- C4 Q2 r; P1 v/ A CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
' H: H- A& [& I n6 d5 s$ k- s* L9 ^+ `3 D
% u/ h/ l9 W2 c) R" n
Code:
2 z- r' H* E6 W& G& u. a8 \#ifdef __QUGET_SWAP_FIX
- M8 n& ^$ e. K* u9 `0 ^
) n) |9 a# f: [* P if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
/ ^- x% X8 b! d9 n0 ~ U pUser->SetHitPoint( pUser->GetMaxHitPoint());& y/ O4 I [; l1 l6 v9 S8 N
! ^7 H$ W4 H& X( Q' e* k if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
3 N4 m0 K# O. R- J: i pUser->SetManaPoint( pUser->GetMaxManaPoint() ); r6 p( \; X0 T
/ E3 Z( P1 V& ^! P2 q4 ~1 f if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )6 x# A$ j) U, Y+ I
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! C" N; y& b6 @5 z5 \% V. E4 s4 ^6 R: R0 K8 h5 E# C) S0 g& D
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp4 k# |( Y- u& g+ M- M
and add under/ s4 d& M, A6 R$ n, ~8 a
' D' X n T5 ?2 ~ A* GCode:
; Y! l; ^' F5 |( I# tif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
, g E& C4 I z) c5 h {$ _8 y% T) p8 ~; ?+ c7 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 );; y5 W) n2 A& G3 b
}this
/ o4 X& C* X0 u8 s, t& m- K2 r2 a4 O' o
Code:
, m6 L: u+ ?5 o: {5 i/ D4 v1 h* `#ifdef __QUGET_SWAP_FIX
/ }+ E/ q1 g3 @0 c if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
+ T Z. h7 l$ c+ b+ |" K! m pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());4 _( D3 S3 V( {2 y2 r1 [4 E
( y: c' d) K5 ]! h if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
6 {. G/ q6 ]6 |8 [4 X pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );# d. n3 ? l' ?) @2 Y: Q9 B
k" ~* I5 g* K" k/ j if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ), n/ S. G1 u" j; T* W$ B
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
: I. ?, s, {" W' A0 A5 v
% W% X- {1 k# g#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
0 y( s y/ g) Q2 \# s
' M9 ]- K x* B( _
3 r, j4 j! m* r, f U- O8 X |
|