|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
5 m% A0 |# a `1 U8 Z; f' KI posted this because someone kinda posted a youtube thingy about it :O.
2 e( h& R9 ]8 x3 [0 C- i
! H" M) l3 E$ Y2 tFind this in DPSrv.cpp @ worldserver% @0 `& E0 `, V: J+ ?$ b
2 \8 J/ { J$ cCode:
: ^ B$ [2 r! g D* F7 J- Dvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )8 e3 p7 e" U0 C* `* E! M7 K3 W/ l
{8 W( Z4 r: c/ L6 g5 ?
DWORD nId;/ T0 _6 W( P7 P* B7 K x1 c- t- f
int nPart;+ l- `% |5 j" N! ], n8 n2 I
9 Q* i: E! X+ _) _( W! l ar >> nId;
1 f5 J+ b5 f' q9 _+ L( I ar >> nPart;
q) C+ l8 ~# I! y' ^ 8 _! B$ l- q5 S F2 q" b
if( nPart >= MAX_HUMAN_PARTS ) 3 W/ E. }* E* [6 B. B# p2 `
return;
1 X2 z! g- R4 Q+ n8 V; y/ b2 p
; U6 w% Z; C8 E CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
) q4 e: m! u# Y9 s$ U
' T, ~* q. b) X- _9 @. Z" K4 ~" T0 l$ C( C
Code:! A5 c. D' y# Z& E' m
#ifdef __QUGET_SWAP_FIX
3 M, p8 Q# j; g6 L. `; V
3 r3 l% j" @8 x if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
% T+ t: D- P- w) L% z. k; f pUser->SetHitPoint( pUser->GetMaxHitPoint());
8 a. y* x8 S. Q) V4 D
: R/ t5 l8 Y. U2 |" Q- N8 X5 s! Y+ O$ U, g if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
6 ?- _. \; h# S0 H& C- R pUser->SetManaPoint( pUser->GetMaxManaPoint() );9 H0 v$ i W& ~$ ?3 V% C a( {$ ?
8 p: p% b+ f! F if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ). i+ n. e5 D& @5 N! y) c5 ~
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );/ d$ L: `$ B/ O8 _& s
" w$ M' s. N4 y l" b; `
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp( ]$ @- Y0 C, j* c" `
and add under, r+ S3 |5 D1 r
& U. a+ c( r& m: J
Code:8 d' @. N/ L3 I- Q. P
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )0 A+ N4 w/ Q: q6 E
{
& z: v7 }" e' E1 s2 O( H3 _4 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 );6 B1 b8 ?: S; r6 n2 w; k1 _5 h
}this
4 h7 I b* a, p# _7 [8 V% b& M$ _7 I
9 v0 K7 ]; |. ^( W2 | hCode:2 _ ~5 `; F0 f, E; X
#ifdef __QUGET_SWAP_FIX
! f+ `- c* H1 M6 R$ p if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )# O% C, ^7 w: _3 v
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());( g- G2 A4 u2 ?
" a2 T+ `; `: z; y1 y/ C
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
$ U) N8 c* ~! U k pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );$ r6 ^9 _6 i( A5 [% r/ L/ ]
; D& E1 W; [) Z/ A" G" U- m6 f
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
& Y, _! a& I& G1 l+ V# { pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 x3 x( ]1 N7 C4 {& g* x* R- V8 W/ C
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver $ d0 o4 I, p, g3 I
; J3 ~; T) Z0 r* x% b7 T! l( ?/ t0 j$ o6 ^, M2 Y+ |) z$ r
|
|