|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
: a& |9 |$ D+ ~2 @' g$ s; Q9 EI posted this because someone kinda posted a youtube thingy about it :O.
" i$ c: R/ I$ B% E' P' Z
; G+ S0 n" N& T1 D- UFind this in DPSrv.cpp @ worldserver5 t! E& t8 f8 e
! O) t5 [! x! c+ D7 P1 l- QCode:* G4 C/ {& B) O8 J8 h
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )) a9 Q+ ~8 |. ~; g$ p' v# f2 d8 s
{5 b4 ]8 E, t5 Q/ v5 U: H5 w4 m
DWORD nId;& s. I2 E, q( z U2 M9 J0 f6 a1 P; ~
int nPart;- S7 d$ d; A+ E( j
6 _, f' \+ q! \5 X ar >> nId;
6 m) P' F& l5 A6 d, @ ar >> nPart; * y- D2 f8 d. W2 h
9 C2 t0 D S* `6 P9 r
if( nPart >= MAX_HUMAN_PARTS )
( z! @: s: w2 u+ Y0 T9 w) _8 p return;
' l2 ~2 y7 Z2 r, I3 Q5 m$ h. t
( E, d! X: a, P1 ?3 X% { CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it3 l2 a. _" ]( X& v. m
# V3 W4 N" n' ]/ ~; s! u- m% H6 \% R7 l: W: p. D
Code:
1 d1 E1 Z3 K l9 z! `' @$ o#ifdef __QUGET_SWAP_FIX
3 `; X$ {8 [1 {) B2 b, s4 Y# C: H; C2 E# ~+ `3 R/ X: g* d" g
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
8 p4 v9 d7 d' ^ pUser->SetHitPoint( pUser->GetMaxHitPoint());
; h4 p9 U6 U% F( x! l% S1 L( k; t8 P% O) E5 L4 ]8 X
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )% W: j) v. }6 D: y! Z5 Y
pUser->SetManaPoint( pUser->GetMaxManaPoint() );' z: L3 y0 Y' B3 w9 h, O
, A5 C& j, `- o8 F. D8 f0 ? `
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )% S0 O& b( q' e- j" _5 R- K
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );- k2 X, A7 m- z9 Q" S
/ i, [. k1 Y! m) v- E& ~5 Y! P
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
k8 {+ S/ S7 D' gand add under
$ {) N2 H4 }) g0 b/ s; g' c2 |7 R
Code:
# V% T/ s1 b# _# t$ B' jif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )2 }7 G; c. G, }0 Q& _' C
{
( v9 s3 U6 }4 r+ w' i7 s 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 );
# z& M N5 J8 F2 S4 k/ T }this
: w) [ T! C2 r7 F+ N8 ?. s2 y+ q9 f) K* i( @' p1 i
Code:
7 b/ }6 h7 f* S#ifdef __QUGET_SWAP_FIX2 p3 B' ^" ^9 X; g4 Y4 i
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
- N, L6 |6 Q5 P! q( d pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());1 j% X: ^' j( x: n9 b- T
o* U# l; E; t if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ), p4 ]0 g- B! m& S. a0 r' X' X
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
4 d% y4 u8 ^8 P/ l# Q; z" s" x% i6 F6 h/ g2 V6 B
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
' v" w+ f$ l1 f7 R9 \# C: v pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
0 N/ }. D3 E7 f+ ^& s3 E. m( _ ]5 n: K0 O4 z r
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver / }. ]( h3 I6 b5 w- Z
" C4 y; _" |. H0 o% v8 Q( |+ D
; r J9 s0 j" E: C; D* l7 F
|
|