|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
( l8 D- E) v Y' G5 E" @ H5 Y$ FI posted this because someone kinda posted a youtube thingy about it :O.4 j, @ T7 W+ \
0 y$ ~/ k, Q: X: Q }
Find this in DPSrv.cpp @ worldserver
3 {8 l# @9 L' n- L2 q% V$ T/ X# d/ X4 l& o4 M
Code:
2 Q7 w& M, h1 v5 D3 Y( Mvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )0 Q d/ i: u6 b* ]( Y
{
, J- i2 @. [8 E' h9 K DWORD nId;; A& F( F, x: ]" g
int nPart;/ f5 h, k n2 q; ~# Q/ Y
. g6 p% a) L# q& i
ar >> nId;
/ O2 y8 f* P& x( G/ d ar >> nPart;
$ f: o8 v1 t1 s4 ^1 n1 S5 V. M
$ Q1 E1 j$ K6 w if( nPart >= MAX_HUMAN_PARTS ) 5 q+ @9 b+ x. i8 M- V
return;
1 x. r# i. }# h* \9 |8 o
- j/ P6 Z' t3 u$ f2 O0 O5 x CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it" f& }- ]" O% m7 J* A6 w! P- s
6 n; r: \( C" p# l3 l# o
9 B! v3 h2 _6 M: w
Code:6 p; p2 L/ G0 k* f7 [' D: z
#ifdef __QUGET_SWAP_FIX
" C8 C9 e) ^1 Q, K
" l. V0 c8 L5 d. R, p/ ]/ v/ u# ?" A1 Q# ] if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )% S( U. Q4 T) @! `0 r5 E
pUser->SetHitPoint( pUser->GetMaxHitPoint());0 p9 b+ c3 [7 m
6 f' g6 n! H' `: ? if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
; V0 H: H2 E# A6 q pUser->SetManaPoint( pUser->GetMaxManaPoint() );
, E; ^6 c) m3 B" |8 E o9 N% v' p" n% t) N( }& r
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )& n* Q- {# T1 r; r0 c
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! a. _" E/ R/ f8 Q* s$ b4 {
) r6 Z+ r5 [! T#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp% _7 b/ F" K7 M2 D5 i! x& r
and add under
$ g4 ?. d, h1 u- G: a$ k8 ?: e2 ?$ p0 `# ?; {, ^
Code:
- i. G% ^3 U& pif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
, |, l; q' s$ j6 F. k2 c! v {
s) Z( ? J! v 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 );
; \# e1 ]) h+ y0 v8 n! a }this W D5 t8 M; h
( } m0 n4 ~' T. g* O3 ?5 ?Code:
4 P7 E+ L. N# l; w( G$ q#ifdef __QUGET_SWAP_FIX
9 [8 X: r& Z* t& J/ H+ E if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ), O7 Z* D0 `) y9 @, z9 j
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());6 P0 w8 J: ]! `3 x
. w" R& b0 F1 ~. t. I p9 W if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )/ w0 }" ]4 C: w4 {! a& s
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 p1 J- D) `: T; S
: l- `% C* [) K) x if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
# D. n( p' X9 ]* D2 u S4 B& W2 o) h6 @ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
( A6 i. \* y) ~" g6 J. m. I j7 d1 M
: C1 y6 o: A- b/ [' } T% R#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
1 Z- y+ R5 z2 g, G6 Z
0 \4 i# E# x: m) ], p1 o' S r& ^ M; B( F5 ]3 x* d6 X1 r
|
|