|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked % ?) W5 i! }( k; g8 }9 S& i# z
I posted this because someone kinda posted a youtube thingy about it :O., G6 H6 \) w5 q' b, P
, J8 Z; E O( c* m2 G* g5 ?4 [+ u7 DFind this in DPSrv.cpp @ worldserver) t# H( G+ g4 ^( q# D6 G" i# p
- v1 j% Y: g$ Z' ]3 s9 T% Q0 s3 MCode:/ r) O( j6 I9 y, {# b5 ?% `+ y
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )$ h* J$ `3 Y$ c! D5 {
{
: j. I0 x9 L9 b- d$ l DWORD nId;
- M( @) M: T. `: q0 w i# ` int nPart;6 y2 L( ~- T. L" e9 H% O" E
. Z( B3 h# Q* E7 y$ N! D ar >> nId;
6 ^$ b' g* G( g$ Z$ @) B ar >> nPart; 7 C, @; O' w4 s+ d
+ k d M2 P( P7 x9 ^+ J if( nPart >= MAX_HUMAN_PARTS ) ( L% l9 O- q; \* a3 k" |0 R
return;) p8 r, q9 O5 {3 G2 f. N4 E
( H) S& k- C' I CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it, U# R! C# b0 w5 r, M% [
8 [& Q7 Y& E7 {; M% Q8 {
8 d' W) }' j* d2 }Code:
: E* i3 G" w4 w( W0 \4 A0 [#ifdef __QUGET_SWAP_FIX5 x% `2 l7 @% a" }' i+ c0 p0 U; u, O
- a5 J: i) c/ z7 F& @- J- X) r if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ); C6 u {' ^9 m3 t) s( V* v
pUser->SetHitPoint( pUser->GetMaxHitPoint());
! g4 M; ~7 n# L2 M- T7 o/ d
- o( h2 f) n/ l3 S) b if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )) b% k% N, k8 N6 x# { i, R
pUser->SetManaPoint( pUser->GetMaxManaPoint() );6 O, {( b% B$ k: w: c3 B) I- C
4 Y3 C8 @' a$ R- y( x, w: i if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )+ ?% r; z- H6 m; s" C8 c g
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );8 E2 V( d: Y, B4 j
. C% }0 w- G9 m: y2 l
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
0 r+ S7 }9 b: x7 X1 |5 K6 b! Rand add under
6 e" U1 I1 I- _: E! }% o" X& f8 B0 c' [
+ ?) w n9 z; b+ P7 pCode:
/ {) ~# E7 j b7 iif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
4 D+ k7 b: G6 l1 f- {( h; F {" Y* C( u6 J! S6 @0 C. |9 ?: 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 );! v1 ~+ G6 {+ c! [3 c3 g5 v
}this+ x2 u9 V' z/ Z0 m4 \% a
, c8 D+ P, P3 F8 i" {1 Q
Code:
. W1 a( J) x$ U/ D: L/ J#ifdef __QUGET_SWAP_FIX
/ b. t; @/ h& V) y5 o if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
$ h$ a- s+ X- l4 j pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
4 ~) l1 L/ u6 S7 b. u, Y0 E
5 i4 `' d, `$ V$ W7 d2 x' u if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )$ z A+ e% J- k6 I/ ?& O
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); G. R4 w( k% w% R. H
0 I: @6 V* l5 l
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )" }5 V$ r- g, e
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
% j+ j1 ]- O$ P0 E- o' g; |& H4 x$ ]6 t$ N( x- H0 I
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
% w4 O/ y. V2 l! n* K' s/ o, y* S+ o/ A
2 y. J" K) ?& J9 V b |
|