|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
! Q2 z. X# ^3 A8 P: uI posted this because someone kinda posted a youtube thingy about it :O.& Q9 f. G; v1 h, |( [, Z
" q8 Q2 @# Z8 x6 I' Q, ~& t8 aFind this in DPSrv.cpp @ worldserver+ N6 K. m8 V( S1 [+ O
0 O3 q0 y" @" J, b9 C" `
Code:2 p! r. W5 D& k' Z* W3 j- @9 n5 h) l
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )0 C3 I+ F9 N5 A
{
$ _$ M5 o. O0 n! c# S DWORD nId;( ?/ S; Z0 V5 I+ q/ G5 @7 O( T; ?8 Z6 Q
int nPart;- Q) r% X. u* n
* i+ O4 `, E# W- }3 R _9 B
ar >> nId;! ^* H0 F, F0 V5 \& ^2 b
ar >> nPart;
( w9 w' u- [$ `% u% \8 ~8 c
1 u8 Z+ q3 V. X if( nPart >= MAX_HUMAN_PARTS ) $ C" p* w6 Y- e: j5 Z/ S
return;& G) m9 h5 F7 [: j* ^
/ J& z; L" I: L# D" ?- p CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
% G& e. j( M$ W) l% V% y( G Z- ~5 c7 a* ?0 a7 k
$ c8 I' ]" ?0 g; q5 u8 a: v% zCode:
- J: t8 I" s; z+ t+ B+ S; I; R" K+ E#ifdef __QUGET_SWAP_FIX4 E& R6 a( S& e; N2 q- L3 ]
0 X1 P+ Z6 X9 W# F& |: K4 F
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )! Q$ O! V0 ^& T7 C
pUser->SetHitPoint( pUser->GetMaxHitPoint());
8 ^5 ^" C8 |2 x; ~+ Q2 k- Q7 ]; Q" R" x9 { h8 T }
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
' r6 g- z7 d6 }, F/ f3 B; ? pUser->SetManaPoint( pUser->GetMaxManaPoint() );" Y; x' z6 `# g8 b9 M4 o4 G' X( C! q
* M3 j! O- U7 q if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )& B$ R# _* T& ?( n J
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
3 z9 X( C _* f& v7 V7 L+ A0 J G# v& l( W+ [+ B% `/ L( s- ]4 F
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp% E5 X1 _+ k( V1 \: {6 G5 Y
and add under
$ D: U1 O& b- {3 v: \$ C( _7 G+ I, B. D$ d$ C! u" d
Code:
! p- t& Q# x9 h7 \7 b6 F$ Zif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )3 d; I) _8 Q" _4 W I$ b
{* d7 U/ `3 C' X, a/ F5 N, j
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 );2 ?7 |- I* m: ~ g$ B
}this
8 A# K. `! b, z# Y. ?4 [4 F& t! c3 a8 W2 r! ?6 H/ t
Code:
0 h% C% G+ a- Y/ H$ I: m#ifdef __QUGET_SWAP_FIX
5 b- D5 H; C: T: S if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
- e! ~ e* @6 D. m5 B! v4 b pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());9 ]3 ?* r4 B) \# D( W
2 |$ G0 d) g6 F if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )! w. @# A/ L& @; J2 }! a( v
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );$ I# p3 v# V; C$ S9 _( n
; r& y, @: Z1 u) m- c' B8 z- z
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )) Y$ U9 `) F5 F
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
: i7 w$ F: n& x* D/ X4 v; {% \
# T1 ?0 B# {+ n6 `8 T- g1 C0 e#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
) m B+ [$ N/ h' e, v4 K
; V9 a7 \" }5 ~8 E; _
8 Q' E; E4 c- ^. h+ w" |# \ |
|