|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
) p2 p) e2 `7 Q/ f$ G Z: z$ |I posted this because someone kinda posted a youtube thingy about it :O.9 s+ P- K5 E; A$ N- k
# S$ U" U: W7 ^8 O
Find this in DPSrv.cpp @ worldserver
F8 F) B' s2 _0 W) s5 V
9 T5 H: a+ @) x* b& i+ q, \Code:; m1 B5 m$ U( k! }6 }: p
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
4 X: X, x) b( G1 |$ U& D{
9 t9 M4 j+ y/ F. o J' o DWORD nId;" s& ? E) C7 o, F6 I
int nPart;
/ |+ y+ H/ \8 C, V% t7 w( u) X) q' c& @
ar >> nId;: J8 @. M+ [+ i# [/ _$ i" }# i
ar >> nPart; + [& y: ^( t9 r( v" e
/ O7 n/ ]" N( h: A* l" e! c if( nPart >= MAX_HUMAN_PARTS )
* w2 s+ F1 U7 I return;
: E. O% G7 v4 k8 I3 U7 G9 S K" \1 v7 u1 _
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
- I$ C+ e3 B$ Q% E2 d( ^# H
6 V/ V$ O8 Q, |3 X+ X5 T
& q6 t' J: v3 i) A, UCode:$ \, @' x1 @0 s$ D
#ifdef __QUGET_SWAP_FIX+ N, p/ j8 ]0 e' k
: Q8 I) @3 V0 G* V3 N if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )5 b. j% k, Z4 b2 \
pUser->SetHitPoint( pUser->GetMaxHitPoint());
9 Q# r- o" L5 Q3 X2 ~4 r/ G* s' Z! s2 x6 ?
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
: y4 X& d# h; K0 S% Q+ R pUser->SetManaPoint( pUser->GetMaxManaPoint() );
! K3 h$ f& l5 V4 s: [- l2 F9 s# g" @/ A% K' }& A6 H' A
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
* ~- I4 O# ?3 Z pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
% ~+ @6 `/ h4 `& c! p9 \8 o
" W1 l4 K* j( ?" V- |. _% x#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp: H4 _; V8 p$ @6 K5 q9 `4 ?& q8 x
and add under
2 k9 Z. k# S, B
8 ~% B% a5 B2 F8 e3 E" c* OCode:4 R' F& Q/ m% V3 _ v( [: h
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
J8 m1 p; `0 e; K7 A: j- c6 N {
|2 v/ X. B; x; X0 f8 T6 k 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 );* C& T ^; a% r) H
}this
: u1 t5 ^- X# f3 b
8 b1 U& y7 R3 @% d+ `. L u7 L5 ~9 hCode:
, c2 H5 s+ V1 Z. a0 \#ifdef __QUGET_SWAP_FIX' e, p+ v( t+ m$ S; |
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
8 m3 H8 z2 t7 K pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());) y& P+ z; B. e8 |- n! D/ p6 @
" y# [3 E2 _: M
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ) W C( {$ P6 a3 A9 O
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
. N# T' h; c1 s L, L8 U6 L$ |: t1 U2 U% h! w C6 C
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
- z. Q# [( D$ }+ e, u8 p( | pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
0 P& q: Z" Q% w6 W" L
3 i; ^5 u1 Q. c#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ( s" \; z; O( `$ j
, M3 z( U; Y7 K+ Q
- s( T7 V! C2 g3 c+ Q" e0 Y, Z9 U |
|