|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
; I" F; G% B/ Y+ ]; VI posted this because someone kinda posted a youtube thingy about it :O.( ?6 P7 ^5 @+ [, G3 U2 d
0 N6 G `. ~. f
Find this in DPSrv.cpp @ worldserver# ]2 y# `2 G: B
$ ~' d. N: H3 ? ]/ [- h
Code:1 M2 ^6 l1 }* s# v5 O
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )8 q& k5 U0 v- u3 r1 i* }* z
{
( M2 a! K+ P: D% h w ] DWORD nId;
6 d/ u+ L6 O/ \0 @: A int nPart;# ~1 J7 j8 L; c/ B
4 D3 Q7 R3 k* ?; e9 p$ g ar >> nId;
' c5 K2 Z4 T6 B0 }7 m8 W( `8 Y ar >> nPart;
, @# k4 t; U% X# ^$ I- o
3 c2 D1 E k- w. L0 W if( nPart >= MAX_HUMAN_PARTS ) 4 d. [. ?" v; k U5 t. a% o# z( O8 N+ i
return;
. N( E7 j( Q. b/ e* y
% l) g% s* Q8 x" L. G G CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
% P$ }/ X4 A7 C8 _1 ^ h" t, k, |$ s8 S! _2 Y1 W1 r% E
& v& y* M! O: L+ g4 ]7 K
Code:
+ K- n$ {7 K7 N5 I2 Z! M#ifdef __QUGET_SWAP_FIX
* b+ g$ `. ~8 ?3 R9 }* W* m$ B$ j C1 f
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )6 F/ H1 U* J, }$ O: ^% }3 H0 P
pUser->SetHitPoint( pUser->GetMaxHitPoint());5 n7 v& t. ?! v, M- O0 v- Y
2 K, k. ]( Y) Y, u
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )! ?" Z. h- T7 B7 J3 G0 | E
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
. S: ~! K0 G7 n& q
0 [7 V/ L1 d: ]( E! z! i7 M- p if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
4 L, V( f' o7 n z pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );7 t3 B! }0 _* |- r2 ^" _; w
! A- n0 i" n5 x8 C1 f( P, m#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
2 ~0 s3 w( z, i1 G. N. g8 I3 ~3 Xand add under
# ~# K0 ]& h& _8 U, g' V1 h# x
2 t; u* D$ g! F+ p% ~; vCode:
! y: d5 y4 }+ J+ l1 Xif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
0 K- h6 S1 a3 e8 `: W( W+ K6 z0 y {. E b, p3 }. Z5 p, J1 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 );
6 R# p& |" s+ i Q g( R7 ~ }this
5 S7 X5 B, \0 ~+ c9 q m. A# }' V1 f8 B9 g+ l' U
Code:
$ r6 t: A: N5 Y& q* R! O- c#ifdef __QUGET_SWAP_FIX7 S3 b- w3 S' L2 K& j7 r
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
2 {, J9 K* R7 H* f0 k! f pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
H! a& A1 Q; e* b1 }. P b; z5 I8 Y U6 _3 ?8 P
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )$ g; ?7 ~( b0 ~4 ?4 L H0 }: v
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
4 T$ D: E. F) X" `% n Q" e0 R' i3 h9 p) w$ O( `4 T( F
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )8 |, U: e( k: Z4 \7 J, e
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
- g9 E0 r; ]" C) i/ P+ V
2 \; X8 \0 M) o! t2 f#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ; I8 x6 {4 Y% V U4 {" Z
1 b) W# @& v2 N6 W* b
) K* T4 f3 c* ?, Q+ R7 X. O* x
|
|