|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 4 a' B2 @7 \0 F# \% i
I posted this because someone kinda posted a youtube thingy about it :O.
' h! G0 r: Y2 g& o5 ~* S
8 s/ T2 B! F8 J2 i3 OFind this in DPSrv.cpp @ worldserver
! G! m. w, B) U* M! H/ ?. ~5 Z% R
Code:
. a% B. t" x! V B* l# L7 c# a+ i3 g4 qvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
. T* F' g4 E5 K6 s& U. `. y{
: B# B5 G5 A8 w: k! w6 O7 {$ l8 d2 _/ }0 } DWORD nId;
4 Q6 j* N# F4 A int nPart;
5 Y$ Q1 a* D* _( ^. I, Z @$ g2 t( m
ar >> nId;( j; Z& R! a, `7 k9 f
ar >> nPart; 9 N' X, o$ K% V3 D
' O2 T& S% X+ Q! Q* d5 v) B! g if( nPart >= MAX_HUMAN_PARTS ) 2 \5 D: c% R) ~
return;3 h3 i# b: V1 n" O
6 `; P, D( e3 }0 |7 ?
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it2 o4 G% O6 A) n; O& U& y% M2 f8 ^
8 i1 [/ M ^3 {6 F# A0 S/ M7 w' n a
Code:* ]6 L/ g( {* d& f9 @# M3 ^* o# o
#ifdef __QUGET_SWAP_FIX! Q! l/ U5 R, ^) o
5 s' {% I3 i. z" O6 C
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ): l/ r# ?6 b# M
pUser->SetHitPoint( pUser->GetMaxHitPoint());" |2 G, J( g% P' K
& A4 n, `# |& z/ U$ J9 X4 [/ l/ T$ s if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
4 R0 n6 x- }5 o9 X pUser->SetManaPoint( pUser->GetMaxManaPoint() );, w2 a( Z& ?, ~& D+ e
* C2 u( l6 x+ Z, r( y" w4 u) s4 ?2 j6 b
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )) e' }3 j) M+ z# K8 o
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
& E5 x) h# a6 ~7 c6 c% X
0 O) W4 N, a9 d1 j# t#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp' n! a4 y, o5 z' r9 }# y# G
and add under
* ^6 J+ K8 C# [) E1 A; u
# d ^$ `$ H! nCode:4 @. a$ b' r7 u5 F5 H" N
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
$ v% d& P; q+ V) P- U {( X" k# ^& x# Y! k
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 );
. }# c& y& K. q4 v) ] }this
+ t. Q Q2 O- Q4 s8 G7 E/ T ^. @' c- z7 q0 J
Code:
! |& `6 ?0 v }. t6 Z% X3 s#ifdef __QUGET_SWAP_FIX& L* M" c: w7 D/ ^
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
$ _2 R0 j1 X0 P& } pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
/ K9 j+ F% _( { N4 q4 {3 i' w& M+ h5 X% |5 T: ]6 N: G
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )( B' x) _ t) Y! @, }
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );: D- T9 v" p% q) M7 ]8 N3 i6 A! N
5 y% k2 b0 I8 e e5 C: Y
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
! Q) Z4 D) b+ G1 @' o pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
) s; ~8 m+ M1 A8 b4 Q/ I! R2 N' @: I, f9 z6 z
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ; i- e) \. S4 u% w& J5 x8 S8 X
( X; E/ s+ B/ R, t+ ~
* E+ C$ d8 f/ I |
|