|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
& A L+ ^$ J5 Z% f; {I posted this because someone kinda posted a youtube thingy about it :O.
! o* C) c' B1 Y6 s& x- c
2 @7 Y1 u9 d8 q; q' pFind this in DPSrv.cpp @ worldserver" e' ] V9 m& v6 r% Q
# d' @3 l( w: R, O% m/ X) O& j3 ~
Code:* J' G9 B4 _: i7 {$ @
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
, X) r- t0 r$ T+ w6 ~' G( U{
+ l/ B* \6 t8 _% {& g1 M DWORD nId;6 G5 {! A% k" Z7 y8 B6 ~
int nPart;
& I, t* t( i/ X% h; Q2 a' J
- r; z' \: t2 y; r ar >> nId;' d% A. a6 m% L3 S7 P V
ar >> nPart;
! A! l8 ~' l, x$ _. k' D
. N8 t- E5 W8 B/ J {* _7 F if( nPart >= MAX_HUMAN_PARTS )
7 ?# D, k' w# L return;# }. U& h4 j0 e' S0 t
/ W$ O* S2 D, |: O5 B$ j CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
1 U7 ]5 e3 l7 b7 [4 z; a
( W6 O7 \, X6 [1 E8 s V. V, v& @; [! ^: ~
Code:1 `3 D3 s3 F3 x: x
#ifdef __QUGET_SWAP_FIX
3 ^' C* b4 u) ]8 _: a) ?1 z' i L. k' l
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )8 a2 ?0 S2 C' E' q5 W# c
pUser->SetHitPoint( pUser->GetMaxHitPoint());
, K6 K( p! `) i; q3 W4 q6 z/ T: n; E
7 H5 c# Y/ y$ R* f1 V if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )$ s1 N, l! Z U
pUser->SetManaPoint( pUser->GetMaxManaPoint() );6 t( j) b2 ^- k; g s4 c
9 v8 r7 P9 w7 j" ?. n' l
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
- s! l3 b2 @8 S pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
+ E) n2 G/ c; z( \1 C( q
- \; F1 m6 \8 M3 a" k#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
+ E8 Q. T1 X! x# L5 h _and add under) X5 M* [' w' E8 M
9 \. F! k/ {' B: F
Code:, B3 I7 E7 h; L# ^
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )* T/ W& R/ K$ O/ L( a
{
- }6 L+ u+ c! v! W2 w# u6 o" T 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 );
4 j) ~, {2 d, p1 O/ E }this! I$ W, M, J1 ]* v5 m/ _0 Z& p' e# V. Q
0 l/ N- e: P' t5 C8 z
Code:
0 F4 ^& t$ V7 S: A7 K$ d* Q#ifdef __QUGET_SWAP_FIX( b: M5 q7 d" M2 ]6 }; [
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ): S( v& ~# F5 Y+ {( \% g+ o w' Y
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
- t' r. d, P: j! I
0 {7 \, Y5 C$ g- q if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )+ I' W# x, j" k, m
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );" c1 b K% N* X
( r, @0 E3 g. n0 o' Y8 a7 M if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )' b8 J" ~% Q/ F8 r; y7 i( j+ a
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );/ L9 k- a$ q3 R R
2 f4 K! p! j' G1 a; P2 I
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
4 f: T9 B, l5 L' c% F6 L- q
: i$ P$ C! M) D: H9 q
: D: h: _: @& k7 l6 d8 c, _& \$ n2 Y |
|