|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
5 E. A1 w3 M/ ?8 J! { C, e- @I posted this because someone kinda posted a youtube thingy about it :O.
1 l9 l/ B; c$ K/ Z" \* g1 e. \$ B' l
Find this in DPSrv.cpp @ worldserver% ? P E1 `- [' O: V% g% L
0 N9 S7 F$ b* D0 mCode:
" K- t3 R% @! O0 ?0 tvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
7 W$ r$ e/ `$ g; _! Y# c{3 U2 f% j/ L( M" N
DWORD nId;2 X2 E& `" v! B& r9 r F6 ?
int nPart; r9 m* W8 a, C3 H$ R
! i' x; X8 U2 \' ^ ar >> nId;2 {3 f7 N1 G# }# M9 W2 p& A, l
ar >> nPart; . a% F# D) ]1 ?7 ~$ j6 ]" c
( A. y1 F0 c* b' Y& M7 R: ^ h if( nPart >= MAX_HUMAN_PARTS )
' L, u z7 Q" J return;' W. }2 @/ z! D. c# B
$ T* g. z7 @# V( f
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
8 h3 @% c' D% R* w8 j7 ?/ Y
9 V8 n4 a3 Q; u& ^
$ C }" q( @# m! _: hCode:. i! e! l' L) V8 \ C9 e0 Y
#ifdef __QUGET_SWAP_FIX. @) K" v5 g/ ^6 _
! x- X8 X# i, r( B
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
, z) o5 w* W" q pUser->SetHitPoint( pUser->GetMaxHitPoint());# @! E! d# K7 X
4 c$ d3 f4 |8 x7 P if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
) Q; f. j7 l+ d/ N6 ^ P pUser->SetManaPoint( pUser->GetMaxManaPoint() );: e' G5 k) H# ?& F$ c1 B- z
6 L; j) m: T, ^6 r" y# R
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
4 M% Z# }; p) D% o3 z0 N- B pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );+ b1 w3 ]0 J3 G" V2 [; H/ z
. N0 G( v0 e$ m1 w* v#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp4 A7 F, S! [' V( ?; t+ `+ v# p' L" I
and add under
1 Q, _6 o* z7 u5 ?2 |4 E# @6 J4 {% \! \* z/ x
Code:
[, a) V% R/ M9 Jif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
% P! N! Q" o" Z1 f {* K( V2 I) ^ T- 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 );
; y9 y& |; ^ F/ ^* y6 }/ E }this4 h+ O/ X' I2 I/ F; }5 [
" ]8 V7 Q( f% U; h0 s3 A" u
Code:& [* d8 O% K1 X( _; D ]
#ifdef __QUGET_SWAP_FIX
. j. a7 ?- d" s6 ~8 i3 W if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )6 }& @0 Y( p& w
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());/ R1 O$ i6 C& [* `% a* Y( L
9 ]# B3 ]: t6 ] ^ G if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
( s. o6 g% _6 O1 d pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
0 c/ ?" {, Q. Y7 d& ]6 t# A, f* @
) C/ q/ c5 t5 _; X6 ? if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
* r I/ j1 h! \9 J. G( w pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );7 H% x1 Z$ m/ \4 C
$ [0 a0 Z K6 m: y7 n1 z#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
" v" g1 }% o& d- v; f8 o
+ [ Z @* s& h( [, m: D) ^ _
% p9 l$ p: S- A, A# i# D |
|