|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
/ c9 E7 g B/ p+ f$ \: DI posted this because someone kinda posted a youtube thingy about it :O.: h& Z. G# d/ U% Z
. l7 H. \$ U. I9 \Find this in DPSrv.cpp @ worldserver
6 c3 z" q3 S0 V: x4 W' A
" F1 K- v$ ^3 S+ ]! J' xCode:
' f* y, ^ d! H y; ^: T+ xvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
$ i; e( t( L! l{4 x% w/ A" Q& b, x/ S1 X K
DWORD nId;# W( b4 \2 G4 k0 [
int nPart;0 U7 {1 e4 b3 P2 ~! X& w
' c2 b" s* ?* g. G
ar >> nId;
" J+ s$ n6 R& P# N0 F+ m( U+ l ar >> nPart; 5 e* O6 @' a( O5 x' g' R
# Z. B% U2 A3 i if( nPart >= MAX_HUMAN_PARTS )
1 c8 P' H6 A E: l" { return;' v& U, k d: Y& |! F" I
; n8 h8 g2 _! u3 T, Y+ V/ F) T
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
: b" P) v0 Z5 M$ C
U8 k, r E; }* Q% h3 n, n% R! F6 G' s& R& k
Code:6 ]9 W+ \6 W& A' s M
#ifdef __QUGET_SWAP_FIX
- [/ f9 L& ~4 }7 V, F- c
$ D7 S2 h2 Z5 K) @# X if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
5 E! N" O; k$ B; J4 Z pUser->SetHitPoint( pUser->GetMaxHitPoint());3 x. s$ q. |6 R$ h# _' \
6 x# n5 y) J5 _" K3 p1 X
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )) U4 { G0 y( D9 s0 A0 ~$ h- e
pUser->SetManaPoint( pUser->GetMaxManaPoint() );1 k+ R! Q3 B) S7 ]8 o
1 b3 W3 U0 I' y
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ), S# [+ m6 N B
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );# s2 g0 c# \. ?0 U0 E6 Q0 b9 {
1 _0 K9 `) d+ g#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp* R/ [& T( i* B7 P5 R3 k: B/ K
and add under
* Y- g* `% b4 x. b& `% d, D- `8 o8 v& a* Q/ ?
Code:( L( T' ?- v+ W" g( E/ r. r2 l
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
/ l9 Z4 ]: ~. w3 [2 U. D {( H) d) D2 |7 V* y
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 );0 D+ T ~" o7 k4 ?0 w. K' V' s
}this& T7 C( m# v/ h( Q3 v
" ?- j4 {' y1 MCode:) ^! ?8 M- \9 r% w4 @ Q5 ?
#ifdef __QUGET_SWAP_FIX& s& `! [6 r9 \$ d+ g9 ^2 a
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )7 O: [; ~/ B3 Y- R
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());, S+ Q" i- Y S/ ^% M
( S( Q# V, Q; I. o% l if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )0 D# R, i. M1 R+ x' W
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
: e, z5 o! q8 @7 }, W
/ |1 W8 {0 k4 f" d% l3 Z' { if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
1 A j2 O# v* C+ M pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );4 d) q* b% q- Q0 t, t
5 C n1 `: s" F( W- y
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
) t3 G9 M/ B: f) F) x: e# l2 j( g: V5 Z' I
' f4 z; |- J* d
|
|