|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
7 A- [7 K; U8 T" @2 W/ SI posted this because someone kinda posted a youtube thingy about it :O.- N8 C/ s; o) c8 v1 |. C; u
9 Q8 n. _+ g. t. T! e! i& W) ^1 D
Find this in DPSrv.cpp @ worldserver
' M9 n6 e5 Q8 @& G$ N& J8 S- q" a! E
Code:
% U4 [: L; D* wvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
H6 w& t8 P( }$ X{; H6 j1 ]; f# D! [, Q4 g! f% b4 I
DWORD nId;0 V H. S0 a+ n7 C! o% E G& j6 ^
int nPart;
/ l3 H4 ~8 }) j u* A& n
4 S: Y0 U: E' @5 d! o: i ar >> nId;
' R* X1 D: W0 l: A. j- d" n ar >> nPart;
' p% L5 u, ?% L/ v4 v8 u & c$ _( ~# m1 X+ k1 b# \) g- x: `# ~
if( nPart >= MAX_HUMAN_PARTS ) 4 b2 N$ x1 C4 g' [9 p% A
return;& z: q( z5 y7 A( l7 D
- y1 y. ]! T0 W1 T! |, J
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it$ ?0 a1 J, n. z2 Y
6 S, f. w# B j
9 ?# M- L4 }: l4 j9 o
Code:
# Q; i( e I8 X9 ^( k* T8 e#ifdef __QUGET_SWAP_FIX
% j( [6 t; N; Q0 H y% r2 o
6 O! ]2 q, c L4 _+ O4 R if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
" n6 }$ F/ t9 I pUser->SetHitPoint( pUser->GetMaxHitPoint());
- O, T# ^; n1 V- C) T" K. P; x: z$ H; f! z- t6 m% _, Q! K1 h7 C& [
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
' F* I) m" P1 M- R7 I! s8 Y pUser->SetManaPoint( pUser->GetMaxManaPoint() );
2 m% v$ P0 p M' X8 k9 h; n& _3 x6 \# x; \8 |7 E' @) A n
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ), d+ e6 Y' Z. c. h6 |/ j! C3 T
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );/ M+ t9 h: u' @' O0 L, G
6 u$ ]9 Y6 l" R. n$ o0 k
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp. |1 q1 y3 m- k0 a/ H
and add under" \: Z3 _0 X- X% o. g5 \
; @: { Y7 s( Z2 I# JCode:5 Z9 v* H- P" f* b# ^) q3 c ?4 V
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
5 C+ f. y( J- B; l ? {3 T8 ?7 _( G- w q5 U
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 );
A, c, H* M( k1 d }this E! R$ C! E9 u; Z. I
' C/ i, ?( l# b; a
Code:
8 U& x9 A$ L) p* A#ifdef __QUGET_SWAP_FIX, a/ x7 f. [3 m2 n, X. D7 C# ?
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
! K8 }8 B$ a8 w/ Q- J9 a+ E O pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
5 \/ u. F7 s# X4 N+ \
& A* S+ n3 y$ K' @6 q& ^3 G; q1 F if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
5 X) P& M) j3 Y7 W, l) q) A5 ~' S pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
) O4 N7 T: O/ o" M4 _; {) E
/ _4 z n; ~9 C* o$ M& S if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
% V5 _. G8 A5 t: {6 r pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );/ D5 Z- Z# T6 U) q- [- m
& l6 x9 Z" r' C
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ' |! R7 l! K8 |/ \/ R: C: i
9 [9 c, B' l$ s, G* `" N0 c
! C% f9 T; f$ O% u- a" [7 N
|
|