|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked , I: g( l& j0 \, N9 }3 o9 M
I posted this because someone kinda posted a youtube thingy about it :O.
, a6 {5 o# \5 B
9 E2 p4 k) L* j NFind this in DPSrv.cpp @ worldserver
' H2 A7 m3 I5 \) Z) y' o, ^8 N# q) h( d9 m
Code:
8 ~5 B a# |" |; C* X( X+ [- Fvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
, E0 H$ b6 T3 H# Y$ p{
) u5 R' u) j! N Q6 O3 ? DWORD nId;
7 E- q; o) ~2 Q- X+ {7 n int nPart;) r; ?7 ?& k8 i; B1 {
/ j0 O% v8 g+ A" p. r) w8 v: B+ K
ar >> nId;1 k* ^2 ~0 B8 V
ar >> nPart;
# X; S- M8 \, K6 ^) ` 1 B5 k& s. x9 U# H
if( nPart >= MAX_HUMAN_PARTS )
/ Y$ U+ j$ Q, S! x" h | return;3 o$ o0 k" P) O+ p
7 @+ H, J, O. E% v* C CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
- ]6 h' K* L+ f- O' p/ u; l) @6 s3 z$ U7 u
% ^; e9 K, h) U2 M# c% ACode:
8 A7 \/ }) j4 @#ifdef __QUGET_SWAP_FIX- q! W+ L4 i( z5 D7 b6 t. Y
/ v8 o7 ~/ Q( u if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )8 |/ K- m9 d7 ]) T! k9 A4 `
pUser->SetHitPoint( pUser->GetMaxHitPoint());2 a' Q, T' i: j. z4 ]8 z
9 J& t. N5 \# I. l, J
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )7 M9 i Z# R# b k$ O; K3 H; k
pUser->SetManaPoint( pUser->GetMaxManaPoint() );1 x8 m8 A. K0 }0 l2 \* w
: T' c+ z1 l* _+ |& t* N" v if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
: C# X0 q* X B q) w1 A' n pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );- k* m0 H. k( @- U% V1 f
+ B4 k, y+ E0 @2 B; W2 U. _. M#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
8 E& Q0 a# y/ rand add under1 F' u2 F! S% l% E c
0 W# U1 Q6 M8 t1 i C6 i. u
Code:
/ I l3 D& Y; U6 z1 s! D" C4 Qif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )/ e% a6 i- v; v
{
" z' C& M# Q4 Q: Y$ ]1 P! c 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 );
8 D5 u8 h/ m$ L0 } }this
+ y! u: E( c# n- _, `7 n+ V- N
% o, K6 Y& x4 q; u* g. I6 gCode:
7 h8 s3 \1 ~1 L5 x, q2 h( ?#ifdef __QUGET_SWAP_FIX) V( X0 L& a4 s; v
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
9 q" Z2 o1 Q( e B: }4 f4 d pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
' S8 P2 ?: k' X. H! m( M) K( ?5 v) q* W! p: J7 N" U
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ); ]1 h+ o( m0 ~
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
9 a7 z1 o& y8 ]: B' P, H( \4 N% u3 U) H- [) a8 y- N
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )5 j5 i/ I3 `4 C3 U. a( Z* n
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );8 |# Q9 v( C f) l0 |7 F
+ c9 t7 x6 ~! T' f9 ^* D6 ?3 @( y
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 3 r Y! [' R( u1 q4 i4 e
) w+ e- e7 a, @) W$ ^: a2 C
- Q3 H/ M/ L0 ^ |
|