|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
% f0 ]' M# f) W4 d f6 M1 EI posted this because someone kinda posted a youtube thingy about it :O.3 y3 g! \9 S: V: k- G3 W, ^6 ` u
: C7 W4 U" k6 p5 p
Find this in DPSrv.cpp @ worldserver
/ G( j% g5 H H2 q6 j, Y; f2 I7 T/ M. g6 ~8 E
Code:7 |; h' j: K Y1 O7 M, Z
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
; f& \/ A7 M& p* @{( n& U6 O2 w" A% Y6 P
DWORD nId;6 j/ } z+ z3 J- g1 y/ g
int nPart;
" n3 t5 T: L. ~% o+ X/ |$ a1 x
7 u) G0 O7 K9 [ @) M0 i' X' _ ar >> nId;- Z% X6 b4 l4 P( ^% P
ar >> nPart; % U( f2 k7 F& j
" K) \0 V8 v7 v" [, \% ?- a
if( nPart >= MAX_HUMAN_PARTS )
n5 f {$ v T: U! _* @ return;* |7 T* d7 V+ J4 _5 T ?5 b) Y- N' m
& @! C1 l1 k+ Z# b( Z8 d CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it! ~9 M& K1 A Z% A8 m! Y; v6 R& t
# d# Y5 |$ C7 Q) {8 O X% T6 h7 u, K& k( M9 B( e& W6 h% q
Code:
8 U+ f& Q6 i9 k4 c7 z: U#ifdef __QUGET_SWAP_FIX* v! q5 I5 X8 O* W% l: D8 ?5 M
! i9 A) x! \. F, ? if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )- F9 Q* _0 z2 ^1 t
pUser->SetHitPoint( pUser->GetMaxHitPoint());
; h) [$ l% y) o* [; y
% E. ^3 {. r3 I' [* [2 w if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
% o% K# P" G$ r1 L/ X. \8 p pUser->SetManaPoint( pUser->GetMaxManaPoint() );
+ F1 Z2 ^8 [, s+ H( A& {, F- e& G( L
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )( F* R& f* d5 I5 a4 k& ?! n
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
( g4 \/ o5 T: _" |9 T% }: J" v2 X$ R1 M7 ^9 A/ J' A
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp' T! n5 k: G6 E1 _
and add under
9 Y3 D5 C1 b$ z4 u( F2 j2 { j, m5 g3 x3 F; @6 M2 d$ i7 X4 k
Code:
5 c+ U% x7 E2 G" i! Eif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ). X- G3 l# F8 y9 ]+ f; y
{( _9 O3 P2 p( L; X3 i% x# 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 );# D6 d% v: i* d) D2 Z% P
}this
& ~/ c9 o& q" R6 u4 J% V H
( a$ l3 f& n0 T4 G- `6 K9 c9 zCode:+ p6 D! R0 d9 i, p+ U& n3 n6 `
#ifdef __QUGET_SWAP_FIX
% m" v Z( c* z- _4 v4 _3 X if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )& }1 W$ q4 ?! B1 M4 }/ S8 `. ]
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());) Q8 l! l. J: ^* r
. o0 Q0 _! i7 }6 _, z: C if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )( L% L6 b5 E; a" W: h
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );! C* W, m$ h r: v9 \
1 r/ W! A1 G6 y4 w8 J9 a8 u5 G
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )+ L$ V; N& ^& ^. P6 W1 P; j
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
, w6 N& j+ n8 F% i' U
% e, l5 y# c& B, s% F#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
* ^' s# _7 t8 l$ p- V8 y
' I5 G/ ]6 u& X' j4 ^) ~+ j" F& }2 Y9 C4 W
|
|