|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
8 s+ j3 @; ~) z# y& YI posted this because someone kinda posted a youtube thingy about it :O.
' z" R; Z" x9 a8 R9 x. }/ d# Y2 B9 w8 ^- C! ?" W- ~4 q
Find this in DPSrv.cpp @ worldserver) w$ V, B. k& Q- J
6 X! o6 _& N- r; u! a- bCode:
. f6 d) m5 z R1 Xvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
" @+ t; X& f# g6 ~& d; W{, Y/ r6 j4 J- W7 @: r H7 p5 j
DWORD nId;5 P6 f2 ]3 j$ R9 c
int nPart;% B! C5 \3 e* a0 Q% [5 H
: x) w7 z% A: @! r ar >> nId;1 N3 \4 w7 J9 ^8 J* Q. F
ar >> nPart;
) U6 a5 _' c0 | k) c
' ?9 I: i: m$ R! X. {) @7 o if( nPart >= MAX_HUMAN_PARTS )
; ~! ^" M4 {% p8 U' y: { return;( C/ w& P, M: I
' h! |$ Y" J/ H2 h2 x5 G3 ~
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
! X) w( A0 h3 x9 c4 w$ g# U
8 a/ V8 g1 F. R+ K5 Z4 S+ g$ q3 A# c9 L3 Y# \
Code:
" o4 r; x/ g( M r: A: f#ifdef __QUGET_SWAP_FIX- L1 J* B$ d* i: p; ?8 I+ E% x
, H' }( n9 S( Y2 p3 n7 E4 |1 K2 u
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
5 u& z: e `# F- o pUser->SetHitPoint( pUser->GetMaxHitPoint());
' O3 k7 O9 }% H4 ?& g7 G) |' H% z; s' g$ t5 d/ d% f$ ]& u
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )1 T5 K/ ^. x$ U
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
# `7 l% ]" f' P' B" x2 b
9 t" C/ t5 D4 J9 t; R if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )& t0 Y/ ~6 c9 }( n4 T
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );/ o" l( w3 U' w, m2 c
@, C. f0 |; C9 ~' r! y
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
7 }3 e5 k8 ^! D( J- H' f$ oand add under
4 u/ {5 B5 U V0 R8 K3 _9 O; {6 b8 K$ q" \
Code:5 [; r/ n5 m1 W
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ). v* U5 p$ @4 m& k
{
( c5 ^: Q, ^6 J- \; 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 );; ~% I2 N3 f6 B, Y" h% p( k
}this
4 B5 y' Z# N) u9 [+ r0 `" x
8 q N; W% o2 }+ aCode:
8 A+ }, O- x' N% [: I. u4 n6 I3 P#ifdef __QUGET_SWAP_FIX
}# i# G7 X& Q2 k if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )( ]1 @- T- S, d* s* J- |" P1 [
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
# [, o9 Z7 |4 ^" j, \; }. V- k9 U* s# i6 w
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )8 ?( a& D, m& T- d1 S, m; p
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );) y- v5 T b# L7 G
2 u" |9 `+ ~6 \2 |8 d: F r if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
7 i9 x! `' l' T7 ?2 x pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
0 {! C8 ?9 B( I4 K* T9 K( ~
+ F/ F- P5 {+ b7 p+ W: N; i8 l z#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 6 `. ~: f7 b0 h' }) U& {
2 Z+ G, V+ y$ R: O- q7 x
- S2 V$ P! x% O; o |
|