|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
! J3 U" ? Y1 }7 d5 H- d# sI posted this because someone kinda posted a youtube thingy about it :O.
7 z+ _. E' t2 n1 e. y- `6 k+ \2 ~( s3 W; x% d4 g: s0 m( D, b
Find this in DPSrv.cpp @ worldserver
, ?) R& S* |9 W% G2 l% S
) N I2 u) @7 R7 V' rCode:7 _9 {; I7 h2 C# D8 K" N
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )* }' H5 i5 m4 F8 a4 Z
{
& K! Y% J4 l& g. Z }0 l. @ DWORD nId;' Y/ H' }; V8 F/ _* t: ~; `
int nPart;8 a" f" X: z! V) s1 e* H
/ Q4 w" f$ x; i- k0 I( ]5 } ar >> nId;# [2 f9 S& c* }8 x/ q
ar >> nPart; , L& E- T, y$ ]" c( I5 F7 t: O
) B8 l6 e6 ^# l, X& ? if( nPart >= MAX_HUMAN_PARTS )
1 V! f! z7 @% x return;
/ V; z0 p* C6 ?3 n( }' G9 Y
' }& h& }) q* s& C5 {% Y( W* [ CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
9 h/ S* `( g2 l5 T+ _+ [4 u) G9 x) d3 R8 P: Q2 i- ?9 Y
% Z" ^) `* S2 j* c/ i+ K. s" O
Code:) f) w; d3 l6 Q# W
#ifdef __QUGET_SWAP_FIX
2 J% M& F' c3 j6 s' I6 E8 y8 A2 t" ^4 z7 G( Q. @5 w
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )4 g G h2 {( ^1 r' ^
pUser->SetHitPoint( pUser->GetMaxHitPoint());( C' e- V, G0 E `
4 D" z6 ^, c+ S. b; p. h if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )% e# j7 U0 B2 }
pUser->SetManaPoint( pUser->GetMaxManaPoint() );/ m$ b Y" d) O' {; O: O. r2 ?
+ I8 b6 D$ }/ ~3 z6 z7 |
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )8 p+ c; d8 q: \- a: s# @1 ^5 W
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );% p; K4 I$ }) _7 U) ?4 B
3 e/ e/ I* w( b2 C
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
5 B3 M( t) w) J- I& j/ v% r6 m* mand add under
, W/ j2 ^1 t. o7 r. T; Z& W# N
7 T! ~, |, W* s$ w6 XCode:
: u& G# e" \ e+ A! U& ~# Hif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
2 H2 V9 w& U: Y {
0 W6 Y0 C! X- g/ V2 C/ n 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 );
4 \' |9 O( y G- h b, j }this
8 R& _. n$ }) G! B1 e: Y3 h- b/ s2 l4 \) k& t+ ?2 @2 [% U
Code:8 i7 b# X; B9 L, H8 L1 T8 N
#ifdef __QUGET_SWAP_FIX9 d# _4 Z( z, @; H7 l- Y$ T$ h
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )/ g7 I8 \8 P' `
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());6 [" j" E. F" m" d+ Z
6 I2 P/ s4 X4 A2 ], ~ if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )) a$ W) ]! e7 {. ^
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );# r* f- I' ]6 r4 q9 S4 w
# L4 c* G' ?0 ~& [0 M; F8 s* k0 R if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ). n: j3 D6 ?5 f7 T- c
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
! g7 v/ J) x/ Y6 f! V L
9 Q$ n8 c9 l) E0 }# m. p3 ?9 P#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver / f5 U) E( q' s( P4 o! @
7 I: p x9 l$ B6 D
) S5 N: t$ L- ~' b7 x; [8 g0 l |
|