|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ( K/ l1 h/ y1 H( f
I posted this because someone kinda posted a youtube thingy about it :O.% ?' c9 R* F" q. V' [
; t" u! `% U2 ]# @ O# GFind this in DPSrv.cpp @ worldserver; J5 u$ F' E; ?# V
! Z: X* ?- J+ c' c8 `
Code:1 L) t$ }; T8 q4 a& O& V
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )) U( {% o9 Z9 G% D4 Q
{5 ^+ {+ B" w- C% e: w: X( D
DWORD nId;
' R) m% `) D7 k" l& _) ^2 E2 Z int nPart;% p, ~) f+ B8 v# K; O
$ D! q% E3 q9 j: Q3 I5 @4 S( Z. U ar >> nId;
! h3 J+ x; E; T$ N: l/ _; X+ C x ar >> nPart;
K% E4 |0 D3 S % L" B; t" s0 ^# q! {
if( nPart >= MAX_HUMAN_PARTS )
+ ]0 p& B7 m% r) j% _ return;
2 j9 [! R9 c! N q+ x$ D
% }3 {; M* [+ V- P; y! D3 s CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
- {- F i8 l f M$ u" E: N: i8 j; i; l) m; q }. Z5 X
$ ~9 p; G ~* i1 P8 e1 u$ F) c4 KCode:$ ~2 r$ I% b# b. K+ _2 [
#ifdef __QUGET_SWAP_FIX* D' f9 @- v6 Z+ b8 n3 P# L4 r8 p
# |6 [3 B- K) b& [3 d" L( c6 u! t
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
% j; Z7 e' h6 H' Q pUser->SetHitPoint( pUser->GetMaxHitPoint());
$ k) X9 A- V# R$ B
! ^, R2 s7 L; H) \% P* Q w if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
- B! _' M2 g. `: Q1 q pUser->SetManaPoint( pUser->GetMaxManaPoint() );% J3 d9 N# @4 S6 q" N" Y, u* i0 g/ C
9 ] u9 n8 V( Y. w# r+ v- o if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )+ b: H% c; r9 @) t3 i4 |) w- F
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );: I% b" Z: H( Y' V5 C( |1 [7 s
8 F1 ]5 m9 Q% c; N/ w" Z#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
& ?3 t, g) y0 d- W) ?and add under
% ^# i4 H( j3 f+ A* d6 A1 H* @4 A% G3 H4 m: A5 w6 R
Code:
) `$ [. K) Z& `; j5 \if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )$ k; K0 p6 p8 D+ q8 g* B
{" P4 c! ?3 M) t U9 @
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 );
0 A+ o! k3 e6 e& K: \6 Y, X }this& u; X; N6 i% y" @4 d
- z9 I. |. |8 Z. D
Code:: y9 u/ x! r7 i& X, y5 X4 v4 Q
#ifdef __QUGET_SWAP_FIX
. q1 y+ Y& R5 }: g- ] if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
) o% v7 Y, p' N6 |0 u8 [ pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());6 {* n7 e" d- |$ Y9 J
0 |& C* z; |$ x1 d- ?+ L
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )3 u8 _9 s, \6 h# s7 H3 E
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );& U3 R7 v) d& r: |+ k7 i& f
" |3 @8 h) _5 t8 D( E3 s
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
" @4 h c! T/ g. r% p pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
$ b( `4 h" M( {9 ~" b d" _# Z2 G. O" x3 a' w7 k! _( q5 o* y
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
0 [6 ~! [( S- l8 E* q9 X* o! ~6 K4 f; t
) }, z" m! T6 S( i' x) E* g |
|