|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
: O" j) V7 t5 l v$ mI posted this because someone kinda posted a youtube thingy about it :O.
4 e$ S7 t) R6 ^
, R5 L9 l5 J) B2 \( D+ c* E% LFind this in DPSrv.cpp @ worldserver5 z/ c b0 ~ @8 n& h0 z
* L1 `, \" O C- f) M) X dCode:/ u9 x% K( X" J& d! Y, T- @
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
- [# j( f- U8 g) @: n$ r{
9 x8 {# w# K8 X( w0 j1 M+ e DWORD nId;7 C% a9 N& p: Z
int nPart;- s/ R8 C2 g( ]+ l" ?0 o, c5 W
! H" P% V* i# B# J% p; ^' S2 n/ M ar >> nId;4 J; ^* I8 ~& y" h2 g8 |+ H" t: l9 L
ar >> nPart; 4 X3 r0 y) F* u" ~9 m! Y8 W
/ G. B! s( e" X if( nPart >= MAX_HUMAN_PARTS )
. U9 h0 f: B9 q1 D, g* @4 Z. w6 J1 j return;3 [/ w! V( d3 x( n2 u
$ Y, Y3 ^- T' W8 f+ C+ E CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
x2 X! _; r# o. x. Q" i4 _; v" ^
1 [9 L- H8 j+ F' [) N" ?( L- k5 D2 w1 [ @' O. N
Code:9 {# v+ S7 B1 T
#ifdef __QUGET_SWAP_FIX4 `" D( j x6 K/ Y
& Y6 p3 `: O* n. h1 w if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
: H4 I9 P. l/ }; C* B& c pUser->SetHitPoint( pUser->GetMaxHitPoint());
; S# ^4 U$ D. d3 h0 S+ o; q/ |% v
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )2 H$ Z1 Q& P. e0 m D5 ^$ w' C
pUser->SetManaPoint( pUser->GetMaxManaPoint() );0 n z: K2 j; v
" a. l, L7 B# w2 N) n) \$ L if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
$ `- ]# q) J6 m3 w) C5 q2 o pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );. l( X1 a1 |3 L/ R4 ?6 C, k1 M
2 S3 W$ Z% {" X% a1 d. Y#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
7 V( j, Q9 V: J# t2 Mand add under
& i; q! o$ O" c/ h7 J+ l9 H1 J( J' J3 `: W3 ^
Code:* j. Y# s/ k R- ]% i' i& N
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
" G& W- Y8 O- `# Y: {& q. { {2 |4 N% q F# M# T
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 );# z: H1 D. R7 B: h
}this
b1 m6 m3 V- V8 T, Q& f D) K! ?: T
Code:$ n; U1 ~9 Y$ y1 J7 ^
#ifdef __QUGET_SWAP_FIX
7 @) V" {2 _! Z, X if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )+ N( p, Z5 w+ M! c& U
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
( c- g) d6 S; Y. T; Y; h- ?9 e5 Q, K
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
. d T- ~: H+ t. G2 }: [" ^/ b6 ~$ l pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );7 H( ^# t/ N: t
& Z! d$ N- N# V3 g |( W X( q
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )& \" D$ q/ L+ d) D. _
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );' k+ y( ] j/ D- F
- m& I+ C" j+ b1 u4 `* B#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 6 n3 n0 m; O0 X! m& X& b! u+ Y
1 E# O4 }, @9 Z; G# r8 J( y: K
2 ]& g& [4 D3 N* ^' ? |
|