|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked % h5 c6 }; _9 J. j3 J8 t
I posted this because someone kinda posted a youtube thingy about it :O.
: A! f6 m0 `# e: C
9 V0 @6 S# a/ |6 X* Z. PFind this in DPSrv.cpp @ worldserver* k. e7 @7 Z; ]
+ X) Y* J7 m2 G& Q& N) J l
Code:
I4 d; D1 Q' q* L+ G% Hvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
" z5 U3 K8 x: \) P' N9 t4 i{- \- ~; @! e, |. D
DWORD nId;' ~& \% o \% A: ?- v& k9 ~
int nPart;1 |, d& j7 s- u) q' o" ?
7 s7 ^* O0 J% ?; m ar >> nId;- i3 [ [& O6 z
ar >> nPart;
: A4 p9 t' g! b. R2 {7 p K6 t$ K4 ^. k) ~- b
if( nPart >= MAX_HUMAN_PARTS ) - I. |0 i& M3 ?$ `! z1 ?2 r
return;
& h+ u# A5 w2 p! ^/ U9 Y8 L: J- S! P6 x0 q2 L9 j/ g3 R: a
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it; P4 \+ M9 O9 E' t- z% U0 S- S
$ N# Q8 N# _8 n8 M; E" x, G3 z% h& L
" D* U5 M9 C' A( `2 `9 P9 e) h2 x
Code:. c( n* U- [" y1 G4 l
#ifdef __QUGET_SWAP_FIX
8 g8 k" u/ D' o, S6 e; L
& e: W2 O1 l! k5 k# D+ R, k' _ if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
. j) x9 F* j! I! w$ z$ ` pUser->SetHitPoint( pUser->GetMaxHitPoint());5 C; \8 ]( h6 @! O8 L
( q# t9 t! D$ l8 ~3 A
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
$ N+ L- A, p4 w" H. R7 H4 z pUser->SetManaPoint( pUser->GetMaxManaPoint() );
+ [' |* _( i2 Q: O
2 y0 ~ b7 P+ y if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )) @- _7 n" O" }! Z( Y* x9 M
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
8 X/ \. ?0 n! ?; Z0 O9 R% R) U% D% c- q9 N2 E% ]0 V( {6 ]( k1 ?
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
/ f$ Q8 ^ V5 }) a- A) W5 Land add under
) ]; R! u. A/ L; i k% S: i$ x* I0 L* O& x: c
Code:4 I4 z8 Z3 z' Z3 p% O
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
& \- B% X* I' V8 Y {) ~( C+ E$ e9 M& O+ q3 ^! O
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 );
( q2 a9 {4 l* ]: Z& [2 C& A( A3 S+ q8 U }this
# k& y; F, I+ u* J, E& q4 V
& |, c6 U* J7 W7 R5 DCode:2 B" K C6 H; j9 t
#ifdef __QUGET_SWAP_FIX. l( \" h! }4 c+ [& j
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )+ w' r6 ?2 F V/ y t: x% Y
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());: y! _, _7 T2 E. L+ I4 ?2 J+ ~
0 r* [2 W% s$ G; [/ }$ y- u
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
5 T$ ~' E; k4 M- T+ I# l; I3 X, y pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );$ B5 a$ N5 x/ _5 w
& r; h- {- O: \0 ]
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
& k1 x( y% }. {7 }3 g, H pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );8 |( X8 j$ ]5 P) G! A t
+ s) ?4 D% p0 U- M% i3 k! z#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver / l1 F r' d* Y& N2 X* v( j& v2 ? A
% R% F' l; x% ]& o6 u
6 P. j1 z) r5 |3 N, Y
|
|