|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
$ `3 x& @8 f- r; Q9 |I posted this because someone kinda posted a youtube thingy about it :O./ A6 y. ~3 H& b1 q
& B, I9 t: X* n5 G% iFind this in DPSrv.cpp @ worldserver; q$ g7 a1 k% }
, k/ U! E: c% @9 d8 A# U4 N3 r
Code:( j8 e$ M2 A" ?* P( D* b
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )2 D2 k. I7 X. \
{
. a) D3 Y1 N: X& j j' |( I# K DWORD nId;+ c* J* W* M! q& {/ S
int nPart;
5 Z. }- w* N7 _* l, F. P( Q8 ^
ar >> nId;
' y( D3 X! y8 D0 C/ N1 F ar >> nPart; : x! D9 q* Z7 |
, B5 N$ b: ^$ ^2 ]$ T% _! W# j
if( nPart >= MAX_HUMAN_PARTS )
; D' E1 ]# K9 H2 y/ t2 O return;
# G; h* {4 j& X4 F" A1 ?1 g& ?3 M) `% C o5 e/ U* ]0 s
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
, s* O" |+ y+ G& \0 q8 K; B$ B: ?0 j3 t% o3 G' L1 w
. V, ^3 C& x9 s' I( B8 H
Code:3 W7 `& i. _& {9 X' _+ C
#ifdef __QUGET_SWAP_FIX
8 o. B3 Y* l) t
L: L" V$ R. a" [1 U if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )$ m/ t# L3 _; ~6 n! ?
pUser->SetHitPoint( pUser->GetMaxHitPoint());( g( |9 P5 y/ U J4 T: {* [4 Z
+ X, O5 @2 @( R7 R$ V
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
: f! M, y# v' X4 @& I& D. `. d" N& O pUser->SetManaPoint( pUser->GetMaxManaPoint() );
6 Z: ^3 b8 \$ O( O' L4 m. J5 u4 f$ c1 B: y" G% [% K* v4 e
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
! E, O$ A& h. J: v1 ^2 J5 m pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );; ~5 R+ E3 S h* S' t4 G# M
2 N% E7 u+ g/ r9 p1 U3 U#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
8 v# z! z$ r# S9 i/ } ^# tand add under
; \4 W' G+ Y) |/ @
, i7 a) s1 [8 E* N& I) n* hCode:
3 `# K& c" \8 H2 D/ W. oif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
, B- @- v; I" {) i' p6 j {/ X& }5 }% y) \& S2 K: M% s
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 );; f @, T) D& n) q/ a
}this M* Y0 `7 }# {3 i
4 T0 X. ?6 Y2 p0 G( q
Code:, l7 r" s) A$ R2 B% k
#ifdef __QUGET_SWAP_FIX6 `7 | I0 {) h3 H, V
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )# `1 ^7 m% W1 w( v
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());7 L1 b, F, p8 [- }
# { E& x# k' ^/ B6 a: V3 n2 |
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )2 T( V U; g. g4 d+ E
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
; ?8 L. U8 A$ K ]' F8 e" x. L5 k: o9 X" C0 ~
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )% j5 Q- {- F, s$ R
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );' ^" ^* G5 R4 Z+ t
) L6 b$ W9 w/ R/ V
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
, P9 s+ p2 @% {) ~3 C+ R. v5 a& T4 M& a$ w2 v9 J
3 M: R/ T2 J1 m x* k+ a+ M# k1 O |
|