|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ! [. L! d9 y0 G. `: y5 R) p
I posted this because someone kinda posted a youtube thingy about it :O.
% U+ r* N$ J% x' v: V0 a" M, D. x! @9 f5 q. X
Find this in DPSrv.cpp @ worldserver
: r, d( l9 Z' @ O4 g) e/ Y+ [4 [" |! r8 d2 l7 ~
Code:, X; Y: x3 T' u! B3 t. s( w7 j4 A
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )8 C8 E8 {7 ?' y) ~0 P
{- _/ @4 S1 {8 i
DWORD nId;
8 L# \, s# {! m8 T9 Q int nPart;3 }1 @: T$ d+ M3 `. l/ V" H6 C
# o x$ k5 {6 `# c) ]" v$ u% b ar >> nId;
4 H2 H; _- g+ e$ [" t4 H4 _ t1 G ar >> nPart;
& Z6 ?, a# x) r7 Q5 D 1 n8 P- C+ K: X* C
if( nPart >= MAX_HUMAN_PARTS )
: N; r! O X- w. w O1 [) Q/ A return;" |% B( d) s5 k1 K' M0 z5 J
$ k3 t' Z9 v! g' ]$ u
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
9 W6 j3 O9 O* M; A6 v9 G. Y8 [, n+ U$ ^* N
( z5 {2 r& k: u1 O* @: R
Code:
9 h% m$ l2 X0 C+ }6 M#ifdef __QUGET_SWAP_FIX
, b \8 W0 E# b2 _* Z r3 B
1 I5 C' q0 l9 b/ s: H% l if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ): }- K# `& r i6 X% I4 Y$ e. k
pUser->SetHitPoint( pUser->GetMaxHitPoint());
! y+ w& H4 r0 | _: Y$ A3 i
+ p6 L6 v1 ^: I7 }0 {6 b% Q& } if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
* D; F' k( [2 l) D pUser->SetManaPoint( pUser->GetMaxManaPoint() );
- K P1 n8 K9 m9 Q4 t
" K J8 H/ _6 f; z! G if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
/ ~, N' S: ^+ Z% `0 Y+ ^( k+ @: v pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
5 l. e+ f8 I1 W% ]9 P. P0 l
/ B( D5 t% s% W5 k) W6 j( q#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
9 _9 V6 ]; l8 g0 a9 jand add under
+ F, m7 j3 D6 A# E$ y# \ v; Z# Z5 Q; V8 n9 j9 o% C
Code:
/ v# z+ D# ^3 T( m7 e4 ^6 Z; K0 Kif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
: `- f/ z; I! b0 T1 V {
" m. l& q5 y5 \- \5 @ 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 );
' Q" ^9 z! l; d3 N, s- ~- f2 ]8 U& l }this! w4 n1 ~; Q; g- W* a) @' @
1 P% n6 j6 D& r& O" H* A* Z" kCode:
- E! k5 o( U% v#ifdef __QUGET_SWAP_FIX. B4 i' ^: e" s3 t Q5 O0 T
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
& ? W" p6 V1 e; Z" I pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
8 W+ D7 Z- p m) B& t( Z. B( ^& ]
& \2 a/ u! w: G( B/ J( S4 u. d if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )+ f% N9 F' T! |7 j9 h
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
5 L% S% l* n7 z/ T. |9 c- I( T9 e6 Y J3 `% A! G' Q1 S% r
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )- q7 a2 g% Z2 B
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );9 r L3 b! Q/ z: h! x
! s9 J9 I" W# k3 G6 {8 i8 p7 X
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 4 Q; ^# i- y0 c- u
6 l4 `7 \! n* v* T5 E" X
, L) t3 P* ^3 t% L& ^# X0 o+ r* D h* u
|
|