|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
4 `2 j% |& m. {0 N1 }5 UI posted this because someone kinda posted a youtube thingy about it :O.. h; u" ]+ h& H* e- i0 Z% {
4 f% n1 J/ s: o7 u# d3 f# {Find this in DPSrv.cpp @ worldserver
2 F# q; O9 b$ V. Y+ U" ^: G! q0 ]2 w/ C, r/ F j3 o
Code:/ D# F1 z1 a. Y+ B, J* h
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ): _* z1 V3 L6 W* ]0 i6 @
{1 c5 n! Q2 ]/ T8 L$ p
DWORD nId;
% c- R' G; @, g( m+ P int nPart;
0 p) A: \- V6 `6 V# E* X% v9 [0 \
2 {0 `! g c# } ar >> nId;
4 x6 K8 m5 ^) G; f- e ar >> nPart; ( k& Q2 e' E/ o" m8 A% {
% X( V' e6 J; U. M4 ] if( nPart >= MAX_HUMAN_PARTS ) 2 _( r e) X0 T$ i4 j# |3 V+ e
return;
( n, W6 l' g1 V2 o3 S( v# g
- o2 o) `3 w M3 M* O+ N CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
; x% W0 B. ]8 t* E
# Z4 V4 U& T9 Q/ D5 Y' V0 p5 N* ]* Q$ |4 {- M& l- P$ _
Code:
# c" g5 m5 {0 S, Y) ~3 }4 h5 K#ifdef __QUGET_SWAP_FIX
1 R& z8 m1 t0 Z: W& k% V, y" v6 }$ r) J& S. v+ N3 n5 O) ?
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )$ r* k2 U' D- q$ ]7 A
pUser->SetHitPoint( pUser->GetMaxHitPoint());
% \3 ?( @+ Y% n# c0 S( F
' Q4 H7 m Q4 M. O2 S- O if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
. |& m# u _& g5 i: X' J pUser->SetManaPoint( pUser->GetMaxManaPoint() );
- ^; z) { L! r2 M! _4 y6 R7 h
/ S6 i P( ?5 l' ?9 N6 O6 ` if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )% U' k( h* b6 r1 Q' |
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
# b/ }0 F$ G. Y' s+ @, O6 U
( ?5 t6 R! @ @9 { n1 i#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp* K8 p* J6 e( Z& `1 y4 ^
and add under
2 V6 N& h* x: f3 E0 W6 E$ }/ G/ q" b4 |" c7 c: N' u, T
Code:
3 t% H% b8 b9 hif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
& A. ]% n7 h' h8 L6 W/ o {, i8 c! v' k1 P. @1 y7 I# {
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 );* R, n5 C, ~- C3 B, v$ R/ Z% P
}this, J! Y6 M* ^7 U% y8 I
) B) M( O: V! F. ~" h0 s, v
Code:7 z8 J& B9 X" P
#ifdef __QUGET_SWAP_FIX$ \# w* a$ z6 O& Q5 U1 X0 U
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
$ Z- d! {# `5 t$ ^ pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());! {+ O3 Z; a4 Z
* _# b8 {3 v1 b/ A. s: d if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
' ]; ~0 h7 M/ j. P1 y2 Z pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
" o2 c$ k0 A6 n- Z, i* i* j" [# m, {( l) a+ C$ m& N& d; c# @# m
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )$ D" e) v( @8 O
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );/ v3 d; P$ T" d: ?
2 }9 Z7 u* X& ~/ ?5 z
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
1 [" i# i+ j! C& {! F
; v1 x+ ? B8 |: p* }! A5 A( K' w3 R, V3 f* {
|
|