|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 9 v; G3 o7 ^4 N1 T" `3 R7 G9 T2 J
I posted this because someone kinda posted a youtube thingy about it :O.' e3 `# Z6 q% c
8 Q! }2 [2 J/ h* G1 ]- r. CFind this in DPSrv.cpp @ worldserver. s/ g+ W% B, v; a
8 g7 z0 ]/ p- Z- x( W- p: [2 F5 Z
Code:* D0 O( D' Z% ^" S+ }
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
4 h+ M! q. ^; z: m, r3 b{
f) q1 b" M9 h1 Z* E" } DWORD nId;, I+ a" A1 p* S- }; J
int nPart;% a# `7 Z- [, n" B0 P5 b% y$ P
$ M6 Z" K5 r: l5 q7 s w
ar >> nId;
- m5 m# P2 d# \ ar >> nPart;
/ m% }2 _6 Y# Y6 p
, p8 o6 P- L% V" V# ~% l; S if( nPart >= MAX_HUMAN_PARTS ) 5 ?1 H* ^; Z! X. G
return;
& s7 F$ Y9 E7 a8 P
( M- z1 A& B4 ~ CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it, [2 \. o. j9 x. _% J. a
, U3 J% W1 N7 d+ H3 K" [3 ?! x% l, E e( d9 x; ?
Code:, W* C% q5 R& K2 Q7 Y2 r* A
#ifdef __QUGET_SWAP_FIX
/ K/ R) S2 d1 O/ ^3 }$ e1 } c5 S* O0 V# t1 `( L/ }& `" C
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )) Y6 Z" f \/ _% v
pUser->SetHitPoint( pUser->GetMaxHitPoint());4 x8 k5 V7 f A) H* i0 c* e$ q
9 Z6 N3 e% l# W# k( J
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
7 P+ ]9 ^# a- R. U/ c pUser->SetManaPoint( pUser->GetMaxManaPoint() );! z+ s% M/ Z5 _
' |: R+ G0 c7 ?+ j
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
, D1 I0 v5 O* Q& y4 \0 J$ j pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
# @8 I4 k( M7 [' `- q q7 {1 O& F4 |# C
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
0 v% L! Z) v- `# w C1 o) R9 o J. Kand add under
" |( e0 q3 a) ?6 V2 x* u
3 P* y% u- T' k' B3 D* @Code:
" L, M, H- O: bif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
/ e0 C! t& L$ C6 Y {. ?) F( A+ r1 ~& | U& }. W& X
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 );
5 @0 e4 C5 ?' X% v/ } }this# N1 @0 O! N2 \+ {- F
; A. a( n/ v2 k$ UCode:
# s5 u2 H+ q8 s' J0 J#ifdef __QUGET_SWAP_FIX+ T2 b1 {" F% Q+ t
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )- }5 v' y4 p- F) X8 u
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
6 ?* d% Z3 q) J$ L9 r
4 f( `: N# [" Z" v: ?2 H( T if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
' m# E5 w: C- e) F pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); U! U$ o- h. `3 w3 ?# k
4 Q. K6 W/ M/ Q# T
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
6 I; i" f2 Q$ j- Y, R pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
* W* |; ^! _) P8 l! [; Z/ |
7 @' U U* c/ O; g9 o5 f. O#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
2 k/ n: [" {* M2 ]6 q" ^( J, P, |1 n
; Y8 O5 L9 ~' {0 A! \8 N |
|