|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked * m1 q. j7 ]2 M
I posted this because someone kinda posted a youtube thingy about it :O.4 z% S8 i1 x" q' c" |2 e
* u( r3 H: H7 k: {Find this in DPSrv.cpp @ worldserver: ~3 U. l8 i i& v9 R
6 w$ n3 ~! k1 G& P4 b+ j
Code:2 J" K6 Y ]. H* t, j1 }/ O' T
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
: v# {3 L5 a$ v+ f{
& Y- x0 I+ u0 C) `2 s DWORD nId;8 x* ]! M* k- I6 P( P& f1 v
int nPart;
/ b! E0 R* w# |% D' y8 u2 R/ a/ C5 {: `0 j# l! L! y
ar >> nId;$ d; E$ k/ }$ _3 [. t6 x% p
ar >> nPart;
) U' `' L. L6 P8 ^. P
$ l8 D* d' w% l7 x, _ if( nPart >= MAX_HUMAN_PARTS )
# k/ v8 K7 U3 D( C$ f; i& ~- l return;7 x C1 Q. g3 s( Y, Z9 z* W4 T
6 I3 Z+ A" \% C5 p CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it6 W- S* b3 P* E- ~6 }7 ]
2 ^; }$ r! N3 D. k. T
' c- E8 [) g# X0 c; B/ f% fCode:- N) I5 `1 @0 A4 {) M# W2 v# t; T
#ifdef __QUGET_SWAP_FIX
6 v% t- T) w3 ` x9 Z6 W' U; x* ^$ V( m4 u+ M
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ); K' ?% I/ W& `# N# {% q/ H
pUser->SetHitPoint( pUser->GetMaxHitPoint());8 T4 w6 G( Q# S
" ?* b: e$ y# m( {4 N- b! x8 W' Y if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
5 E: b4 ?, s3 p4 f, W: j- Q pUser->SetManaPoint( pUser->GetMaxManaPoint() );6 x& l, ^( f n; T4 A% o
7 c# a# K" a; J2 [# E2 q) h' Z if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
3 s( D p O! J( N/ g0 k0 a pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );. o2 n5 [# W, L! D9 m* X
7 ^% N. }4 I. y- ]
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
! [' p& ]: x# b. f% U" _3 J) }and add under! j; q$ u2 d. g, Y5 w: X- x
: n- ?1 o8 \# G' J: ^5 ^3 y6 k, hCode:
% M) h0 z. t# s% pif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
2 ~ J; R8 R& V0 u0 s+ I# D$ A {
) }' F% a1 t( v+ D' ? 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 );
2 ^4 Q: l& X. j% T5 W }this
4 n% ?$ I. {# o2 Z# P" Z7 j2 I$ L# L: O6 b5 p, P
Code:
6 }3 o0 H7 k+ H" `# q z: r) t#ifdef __QUGET_SWAP_FIX
* i; ]5 l, P. T9 ^5 W* Y if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )8 o/ W* R+ P- ]" ^- E* V
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint()); q A8 \. @ y8 K# M+ H; P
, T& m/ X" ?$ r, ? if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
1 h6 z9 Z7 l0 o) N* z pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
# g C. H1 C- Q. B* ?0 F* I. X0 f1 ~2 T1 I7 X( K
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
4 A0 Y q' W! v$ r4 n% {# ^ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
' q G, T! c! K* j+ ?
+ U- x! h# Q% e; O#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
: Q( q+ u1 I+ ?- Y+ t3 M2 A9 w" g+ K% j3 E+ L. @
3 U! ~3 U M+ B: y1 t
|
|