|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
1 T: w: R/ Q1 W6 I9 QI posted this because someone kinda posted a youtube thingy about it :O.
( }. M9 ]0 _/ s% c/ ?6 [' `$ G7 w* h; W& X4 ]" y R0 p
Find this in DPSrv.cpp @ worldserver# M8 D8 J& o, f9 j" c! _
0 c7 B4 p' o" i
Code:
% u" W @, x$ Uvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
+ r+ F$ G& [, w9 t: `% R# O{1 E, a# q2 C) D8 k4 S
DWORD nId;
2 i$ m! j# D2 B- B1 z7 R4 T% K int nPart;3 u' R) ?6 A( h
1 {4 D" w0 W2 l& x6 |; _6 a: D ar >> nId;
* u: L2 `# `2 {6 d ar >> nPart;
' u. F- z9 D( \2 A7 w$ w( _ % d. k# o% D5 W
if( nPart >= MAX_HUMAN_PARTS ) p$ O+ C( p; y& ?/ w" ]$ d
return;
+ T5 Q5 [" u+ C6 T$ G3 _
8 Z6 y% W0 s8 H; a P1 @* r8 b& V CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it1 R& v& \1 p) Y' h7 M) {& y- l& T' z! Z9 {
+ c' y! O( @: n1 T* J
' D. W! f* j' f1 y7 K/ b, lCode:
+ I% O- C7 l9 d5 c# ]' g#ifdef __QUGET_SWAP_FIX- n4 }/ {. h! L; S) `
( z3 m* p+ T' b. S+ L
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
6 C9 ]% Q% d5 l5 x5 Y" D0 {2 Q pUser->SetHitPoint( pUser->GetMaxHitPoint());8 n q0 \5 i" w& K( i
# ~7 H4 N2 `: v! [1 P if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )' T3 h3 ~1 d9 ^* H8 [1 X
pUser->SetManaPoint( pUser->GetMaxManaPoint() ); C, J1 k5 Q' _4 |; z5 J+ C
2 X4 d3 L8 N2 i* K* v9 q5 x2 b J
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )# {" M$ R/ P! ]
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
+ C: d+ t( w" Y$ [" l& _- v0 p( {9 p4 i3 T$ ?) c* x. M( c
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
! ^( y2 f1 w2 K! O% q8 Land add under
# M8 }' V+ l; i; E6 d; e0 N. G# P
' Y# w( Z }* Y$ l& ^( m# ACode:8 C# x/ U' d6 ^7 y2 ]* \8 F
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )7 U- ^! T( D0 @; G9 B0 q
{
8 ~% ]! p! l+ Z% y7 n% q' _ 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 v1 ~: r6 ~) c( }8 s$ k- ~ }this
8 v4 P4 U! Q# B: B: {2 ?2 |- Z, U! H8 B3 E
Code:+ \4 X5 \! z4 m9 ]& Z. x$ g
#ifdef __QUGET_SWAP_FIX6 M8 z9 G+ P; b6 T- f5 z7 `
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )4 n1 X4 Z( ?! J
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());/ p% [% j2 D$ D' S% q
* n* q" N/ b _0 Y# i* o6 }! v
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
, e5 p+ u8 s* x5 q! ~ pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
0 D+ s: n+ y. E9 g* }- q' `. l ^
' h" D5 ^' |# L: T$ a/ ]! G if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )+ Q* @: Y2 N6 e8 R: x% y" O# n. [) ]! Y
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
9 A2 }1 S* y( f( ]1 I
# T3 C* b' ?7 }9 a& Q#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ' X2 T5 h1 }- R6 R- R
1 Y$ b! i: y$ W( L. E: N' ?# X9 T- l
7 f2 R, ~/ X* M- z0 F7 Q' g
|
|