|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 9 \7 `2 X+ R# u& l* C- q
I posted this because someone kinda posted a youtube thingy about it :O.& S& O9 d& ]8 b. ]( O! y
* C) e$ ?; k7 v
Find this in DPSrv.cpp @ worldserver
: I5 ]/ e6 ~2 {4 ?/ g3 M2 U% d
- u/ F& v0 n b2 n$ `9 X% G# C2 qCode:# }9 l& q: i6 b" W2 d
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )" i1 B% `% V1 y' U3 A. ?3 \3 k
{
) v* t2 O/ ]9 a4 z8 ~ DWORD nId;
1 A, H$ V2 V4 A5 w E6 b6 R. A int nPart; F* x: J5 N. S
2 e& E2 B* }, z ar >> nId;
# l( _2 H/ o9 k ar >> nPart;
. Q! \$ q! ?* h% P T0 Z4 g9 c8 ?
6 @8 \/ M4 j! K if( nPart >= MAX_HUMAN_PARTS )
# k" w a' G: A& H6 w return;
\' `, q8 Y9 S1 |- S8 ~9 G
6 b7 S3 b, v7 w3 q4 E CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it$ |4 s) z2 j6 ?% a" ]
$ Z7 p" j, c" d7 [
- u# L, y* u# b1 g* S7 U# xCode:+ o% P6 `. \3 B! J5 ?9 S
#ifdef __QUGET_SWAP_FIX
* f/ m9 d+ J/ Y' y5 ~% \! ^9 Q- P
% M8 T4 |/ G: [4 Y4 }. x0 V: ^, t. J if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
& |. {: o% ^: r- D8 E* Z pUser->SetHitPoint( pUser->GetMaxHitPoint());5 ?0 ]' Z- Y/ g, }
, m) q) }1 V: P" {! f( A
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
|4 ~3 s, V! J pUser->SetManaPoint( pUser->GetMaxManaPoint() );) @4 u9 x; k/ x4 {, [5 G" h, ]
& l1 Z+ p# H% Z9 g: q, S1 H) c if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ) R# t2 f3 W1 N" q% B: W
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );( N/ x3 x/ q/ j% v$ ]
2 J* h+ L. _; G: g% [+ Z% E& \#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp* ]9 ?- E5 @$ R: f+ Z& x9 U: c
and add under+ ~5 B" n+ u/ e2 L
{6 I( T3 }' ]7 a$ {6 o3 h
Code:( G+ P8 J$ q( R3 A8 g
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ); o( I+ A9 ]8 c4 l
{
! C; t4 z! W h# n, B; k. M, 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 );7 J. z, p0 C* D7 i
}this0 r( U5 \& h3 h+ |2 D( w
( P4 _( n! S% Y/ W+ ~( m5 t1 X. Z
Code:* p+ j: |* T4 [) l# k
#ifdef __QUGET_SWAP_FIX
3 p/ _; Z B* ?+ R& B if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
% {0 B7 j- T* D& D, ] pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
) q! u- D/ p0 B( R4 X( \" u- N: G" b0 f
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )/ p# T0 R6 R1 F! |7 l. n
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );4 I8 o' U1 i: q
- a! ]0 M. ]* J- v8 h3 c if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )- x" t9 m2 i- `% D
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );2 G+ w* @* k# D( s) g# U0 V2 t
- D0 y+ `7 L8 d) g1 @, h9 k6 D" z#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
' _; e: F. M" n' k5 E% V _6 W# o, ~/ R. d) W8 }
! m9 ` F/ F- `4 b/ @( K4 l
|
|