|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
1 x: _0 n9 L! _( qI posted this because someone kinda posted a youtube thingy about it :O. W( W; ? C, }0 W" [
, } V) Z6 a/ E* YFind this in DPSrv.cpp @ worldserver) G( Y# ?4 {; L5 q
9 K9 B& c7 k% m. }0 c3 l3 UCode:1 P0 z4 S0 k: u! S
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
1 u2 T I0 E0 n{# i( F: a. h/ q* \. N0 S
DWORD nId;( d9 o3 j9 | V' q! @
int nPart;9 @$ q6 z; W; |4 J* i
8 [+ b4 {0 a! }# f4 E
ar >> nId;
5 v8 o; c& Z5 _7 M( E8 H+ X ar >> nPart; ( O9 c# o! q, O9 X
; h# D% G- b) u( }$ D: d
if( nPart >= MAX_HUMAN_PARTS ) 0 W% @! R# b) [4 t
return;
# u7 v9 @- t o+ \' e; c! O9 o, L. B% D1 F" p& H1 k( o
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
' C9 n. R4 d9 O; N& m" _ ` O% | r! g0 S
4 Z9 g) |# L' T: C7 I$ FCode:
- S j* P% X/ R3 q d#ifdef __QUGET_SWAP_FIX- I- R1 v. R; K0 Z9 T5 f
) _+ {8 k: Y& M% q# V- ?
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
! V$ F, O2 k9 _) ?2 S3 r4 a+ _ pUser->SetHitPoint( pUser->GetMaxHitPoint());! _& d: ]3 v8 B; s2 e; W. V
2 N- }" M" W/ | if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )0 A$ \, ~* I/ i( \6 F# T; W
pUser->SetManaPoint( pUser->GetMaxManaPoint() );8 }5 X8 j; _! y( k2 R6 D' J
: `4 N. `9 ?" h if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
$ x5 O2 I; h! h4 W pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
$ c1 R( C* o# B$ n" H8 w: u, ~/ E6 ` ]$ s: F" p# J: W% I) G
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp8 |1 e7 ?" F1 t7 B0 d
and add under
3 z5 M+ |" s/ A. G- a7 f: i$ s9 A0 V$ y( h! l' W
Code:) p v7 w3 r2 w
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )/ y. E# P; C+ L; C4 O) i4 h p
{7 \/ @( l0 X# m8 n% n' g5 I' M6 _
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 );
3 T) i. D6 s/ U- }( Y" E) y }this
. Q7 ^& W) o4 U! |1 d) h6 }2 V3 J; V9 _, O* {3 f# C
Code:
# m3 y; V, L2 j! }: _4 V#ifdef __QUGET_SWAP_FIX
! F: U7 }; l/ b" \, M if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
( }, Y/ f0 p2 a3 w0 d4 r pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
5 N/ D. A+ D9 y- V% ^2 X& @( g3 m9 z4 h; B: [. i9 z
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
4 u- G9 d2 E7 \- F0 c pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );9 \8 g+ L- T# O `
0 ]/ U/ k7 S; t E; D if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
& |/ l4 T+ p( T0 t4 `: ]6 _ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 F, o- h4 h {) ]; a/ p3 Q s
0 D- S( M; M5 I#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
k) d3 i$ j& \3 H* h" ^( o& f
( Q' q) t# w& S9 r6 ?; r$ R( ^. Y* B- a* b8 }. N5 W7 E
|
|