|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 3 O# `1 ~0 P. n
I posted this because someone kinda posted a youtube thingy about it :O.
% j- z& X) y6 ^* W& T' A
2 G: }8 t/ q' }* }/ qFind this in DPSrv.cpp @ worldserver
" v* G8 v/ y: F* J8 M2 ]' K% v
0 B! U" K% v2 Q7 FCode:* A8 j# \6 I# a# v; G
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
: K0 V- Z* d& i{# D! M4 H) }" c2 _
DWORD nId;
l3 @( \: f7 S% M% w int nPart;: C! j+ S) m+ n' [' y% z
4 c6 l: g/ S9 ^* n. I2 Q, E* `) U! p ar >> nId;, g; S6 I7 c" J" O" U! Z
ar >> nPart;
0 l) \; d* v- X+ y5 S( h8 \ F
9 h7 _- F( W/ H3 [6 G if( nPart >= MAX_HUMAN_PARTS ) - v ^& Z% q, }8 n# O
return;
# n7 ^. ^: Q; z: q! ?6 x6 @! N: W" a6 M8 A
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it3 j6 g, R3 e3 G9 z5 U" q
$ A2 @1 `5 \5 J9 k, b5 A8 c9 f3 v+ O. ]( ~& L2 B) U' \/ B& Z
Code:, w- v3 P* j. P! ~1 S
#ifdef __QUGET_SWAP_FIX6 d. E9 u% K! \% {+ s T; `* ~6 t
' Q6 ?% m& w2 R- x! j
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )6 E6 ?& u6 P w& D/ U
pUser->SetHitPoint( pUser->GetMaxHitPoint());
9 w* p1 a( k& l+ a
, m1 H+ h6 k2 V8 u4 Q if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
0 _ S3 J6 @% G' x pUser->SetManaPoint( pUser->GetMaxManaPoint() ); P, `; b$ @7 r$ k5 ]. w- I
% p0 C2 h5 z$ @' i if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
& b$ |7 V' R3 W; y pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );" h6 ]7 S% G" K; E& w! s. @
9 T( _) A' C* H% [' d#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp: z+ U1 F( l6 ?+ F' x2 j1 r2 g
and add under
- C6 S9 E. a" K, f8 I- U% U& D Q( }1 S5 w! e# u
Code:
. N7 g! u0 p Y, `if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )& j7 J' {% i c/ p* }- m8 V
{
5 P+ M. a9 X4 q" Z/ z 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 );, _1 K7 u. R. E: T; x4 w* \6 w
}this
- o4 ?1 l/ z9 E7 t( o. ]
$ K, C) O. g: P& h/ G$ G1 {6 F6 \2 {6 ?Code:
* k1 q) h) W: l( |4 f5 h#ifdef __QUGET_SWAP_FIX0 x0 V' ?' i! B8 g, C7 N
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )% _. q- d: j) l2 j% X% ?
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());' d6 W2 J3 Z. ]! k) Q1 e
; P T$ V! P3 f# Z3 `- d if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
{! Z- ~2 U* m$ { pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
( ]2 e, m$ U: N6 u
: o+ y; l* y3 `& E4 \( |, X if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )# j6 n0 {& c2 _' u9 i; l
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
2 J6 U' f% p1 _" d& i: ~! H7 Q3 f* } l. L# z$ S: u! A( j
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 9 u0 U/ b! \, ~4 g! y* C3 M
! q0 j" Q3 Z1 x+ M9 a7 k9 @
& k4 ]- r) O1 R [, i |
|