|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked * ~3 ?% _2 S7 @& P: e2 t8 Y
I posted this because someone kinda posted a youtube thingy about it :O.
( n+ _+ h/ z2 @+ O' f- t( M8 [% x' I5 p) l
5 v9 E/ k+ b$ ?+ }1 p8 Y, }6 \Find this in DPSrv.cpp @ worldserver
4 o3 T2 r1 }; H
4 k0 m1 d. N/ S8 j& I2 c4 qCode:
- X% k# T$ g7 T9 X3 H( zvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
( w! N; f& Q* S' s/ t{
7 I2 v' v, r7 i, ] DWORD nId;+ ]. s( h0 t% m& v7 X
int nPart;8 o5 X/ ]4 k. K' r* x4 l7 x% n
* b @1 r) r6 o# d0 y ar >> nId;* g5 Q7 X* E1 K4 X+ ]; Z0 `+ G
ar >> nPart; ' a+ I8 n9 X& @7 L& X/ O3 T, N+ v: g5 j
$ Q' P6 R- {' ]5 ]" A
if( nPart >= MAX_HUMAN_PARTS ) 5 b0 {$ y9 P" [& _0 k8 S* g1 J- x
return;4 R- h( y1 C4 A7 u( x
% l: r3 Q6 O# J- k
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it7 E, R- w' ^+ t! m# X( _) ~, U# u
: F6 ^7 J. W# l& z4 J# v
7 `7 d7 O5 S0 K
Code:4 h9 Y" E+ J' w2 W. O
#ifdef __QUGET_SWAP_FIX
# J4 g) M% J( f: G7 v5 g7 ?6 I
) }0 D( |% _$ D0 j if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
B3 @+ N4 z- y2 j$ a pUser->SetHitPoint( pUser->GetMaxHitPoint());
* l! A: C! J* t* T
0 W# j+ }% W" d9 X if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
0 ]2 a8 P6 a! W- q% l! R/ s pUser->SetManaPoint( pUser->GetMaxManaPoint() );
# r, b6 }# n2 A( J% e5 _, W; J$ n3 B! |( ~) B. Z; p6 C
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
2 j) k* S/ K1 p2 S& W2 p pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
& _/ t, n H$ d& v4 T+ I, d4 X8 _6 |# n, d7 A9 a$ B
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp0 x3 P! }. P# W, M
and add under
( a! l4 ]* e7 T9 G2 f+ T7 s: n- K/ r1 D9 w
Code:
) A, z. Y, v* E0 E eif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )- C+ `6 a4 g2 N2 q& _0 U
{
7 I8 j! Y0 Q; G6 A v 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 ); R4 D/ e* r7 c+ @* {1 s2 W+ y0 c
}this1 n# }- ?" M3 H7 O
! e' v b4 M+ N8 e1 ACode:
! ]% z/ f, _" U! k$ p#ifdef __QUGET_SWAP_FIX
4 a6 z+ \' d Q: ~7 K& _" P' ` if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )- s: j; _5 m2 T& l% m* l# L# H3 m
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());5 [4 ^( e. X/ G" W" \) n
! F7 z% K2 X( U7 T5 o, p2 r- r: O if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ): a2 g* H( N) d
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );9 A; W" h& ]$ P
+ b% ?5 ?+ ^7 H+ W. F2 e
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
5 R7 z, D8 Y" `6 `9 p. q- x) d pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );! Y* I- Y1 M$ }" G& Z9 O5 g1 _
5 A; T. W/ x- C" @' R#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 8 H; S& r( `! j4 o( O
* ~' h: t+ L) y) c) X( X
# S+ f$ P1 Q- Y) e6 D8 z4 [
|
|