|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked & s9 Q! b+ P6 L$ ]* p
I posted this because someone kinda posted a youtube thingy about it :O.% W6 y$ V- v# l8 C( k! O8 {
9 E0 q5 n* s+ d1 @; f, }1 _Find this in DPSrv.cpp @ worldserver2 X8 k$ i. K" v3 f5 R$ }9 ]
& z: a) p, J# M0 o d5 @Code:0 _! W8 ~' \6 T! P9 x+ j3 h, U- x
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
' D/ P4 d* Z9 D( [{
( O( n0 _, e) l DWORD nId;) u5 C! A0 t8 Z
int nPart;8 J5 w5 n4 i4 J8 U$ B
. t5 I' A" P2 R3 X- G+ p ]0 z! a3 ~
ar >> nId;
/ m# q a3 J! c% Q6 T9 F `- T w5 P0 C ar >> nPart;
4 m1 ^/ c, Q7 J+ d6 ^9 z0 X6 f M 6 w5 v, R: v3 v* R6 b
if( nPart >= MAX_HUMAN_PARTS )
: I1 Q5 b4 R" n return;
6 w: i' G H: z2 e) L0 \; P# s
% K- c2 B K# |: C* Q& F CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
- r% H2 y4 Z) B5 a' E; w
' f Z, L. v% K) j6 n' n
+ b3 N3 U# Z0 W/ W1 @# e# H9 y1 jCode:
% _( r+ m' f; p) N! g ^; C1 c#ifdef __QUGET_SWAP_FIX0 J& N5 X% \- u' ?5 S1 o9 o
- k p1 _6 d" c, I# Q; @
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
6 M/ `5 g1 Z+ t6 ~( D" F3 S3 b pUser->SetHitPoint( pUser->GetMaxHitPoint());! L( v+ j/ [+ Y; l5 h$ O" f+ T
* X) t4 \- p2 L, s- O if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
5 r9 \8 o. l) p4 b' ^ pUser->SetManaPoint( pUser->GetMaxManaPoint() );, w. c8 k8 T% f' v5 l
1 s+ @, E1 k U0 o7 `1 o; T p. u if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )4 H( R+ E! s& L& l- \8 J- `' t
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
* Z+ p$ t* e/ h* o( X ~" m
. ~. j& n& `0 g7 H; L/ a#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
9 c( d4 H0 i, G5 C6 f1 w6 Jand add under
# @: W3 g% H( ^+ W E3 f8 y% M, ^6 W) Q
Code: U6 I* O+ \9 V) S, S: A. W- \3 s
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )1 a+ K& C+ J; j/ P2 q3 c/ n
{( p4 x3 d, N) v5 m6 R# 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 );" Y3 u D7 S( {4 K
}this& G' q! k/ H- p+ E+ s1 V+ H: F
$ \: ~ W1 i1 O) n, @$ j
Code:, r. Z3 Y- I5 |9 l1 C& n/ q
#ifdef __QUGET_SWAP_FIX
# ^0 h6 r' F7 `. |3 ]5 D# Z if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
/ [3 b; I! `1 D& H pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());2 G3 G c2 g3 J( e0 P2 ]% I' n/ P
f6 J& d S, l3 l$ p
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
$ u4 c* R; V9 E7 r7 t- f- I. n# c pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );' d1 b7 M P) B4 n/ R) d0 ]
9 B3 Z3 `! U {' { x if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )' G' q# c2 k+ I U) P5 p0 x
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
6 ~1 \6 @( D; F. Y2 i1 X& E$ B- W. c B2 E
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ' m0 ], g" b% r+ @' {( Z
1 t, g6 w% B6 a& W
0 N4 r4 S( M! O9 }/ @7 V |
|