|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ( O! ^6 Q( ^& h- C& D( [
I posted this because someone kinda posted a youtube thingy about it :O.
( C. j# h% Y* b" w$ F% N( O. Y2 }4 ~0 \+ u/ s
Find this in DPSrv.cpp @ worldserver$ \8 p0 z, X) h# h
) P$ k7 @9 f; V7 Q1 }
Code:
7 E$ L2 G; @& u( e5 v0 hvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
- `1 M" x+ U" _/ U1 ]{
- Q$ Y* B+ v9 S* m DWORD nId;
m* `% o4 D8 Z& m. Y1 [ int nPart;% ^, @5 e; |8 j* S9 |/ Y% k5 \
1 U# ~/ _! |- K8 ~; I/ u. ~% p
ar >> nId;
6 I. c4 a) C9 `/ y8 E+ d ar >> nPart;
% t' q/ g& Q) |; Y, x! m
; K9 \1 Z) @1 W& J& H' Q$ b if( nPart >= MAX_HUMAN_PARTS )
& i! R4 A w4 z return;: Q: x. p* N4 v9 j
5 `/ z7 W* o& L& n CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
7 g& }; `1 |$ f
# z& j, ^7 c$ g3 s6 c& B
" e! {8 f' r, B% F' p$ `" _Code:
7 I0 E& W: _: a#ifdef __QUGET_SWAP_FIX
9 O& k% w- A1 a# i9 W, z G$ }+ M f4 B' D
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
8 _9 q+ R: }& E( y1 w/ [ pUser->SetHitPoint( pUser->GetMaxHitPoint());$ V( A$ z* w; ]$ R T) s# v
0 J) B% C2 D% e4 ~ T- i3 ? if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
4 ], w" K; ?# C0 j6 Y pUser->SetManaPoint( pUser->GetMaxManaPoint() );
4 F$ A, t8 a4 D x* G' X
, ^7 d( b$ @. ]" d6 v1 F if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
4 O9 F0 O, M9 |6 V pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
. ^0 f q" A$ c/ N0 z" w8 V( w2 @1 `- p- P
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp: L' ~% T; `6 j. |) W: {) `9 K
and add under, _2 t. S2 E& ~, R0 g
. k! T" J4 Z$ t- K/ d- ^, j
Code:
! R/ h" l. N. n9 ~ ?3 vif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
7 \" P3 p) N K \ {
& b, U2 w7 @# ]( G/ Y# i 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 );
+ [# U: n8 e4 X8 r2 @5 B+ j; s" R5 Y }this
5 P8 T, A. V: G) t. |
6 T, B) a6 \4 d% q X. X6 iCode:
+ f( [/ P7 ~6 W( ^#ifdef __QUGET_SWAP_FIX5 H1 k: Y- W/ C; E5 F
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
& D$ D2 M. s8 B pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());: i7 v0 a: x, T! \7 D( B
Z$ I( R" }! j- ~
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
$ A- L) T- W& P/ s pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );3 S1 ]' R; P4 A4 J- X
8 O9 `, I* b- h l1 y
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
% n/ E2 m% @1 I& |9 w& Q% N& C pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
! _( L7 V& [7 |5 o) B8 ~: o! g0 p8 I' _) T# T: {0 w
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
|9 E% ?: K+ q& C& g
: }- d% w, s _ T/ O4 H" S9 ^6 P h& e3 S. |: n4 E W! F4 l
|
|