|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
) b8 W' X( x6 ?( {4 S- fI posted this because someone kinda posted a youtube thingy about it :O.
1 ^% a* F/ Y* Y+ j3 T( y# l4 X
Find this in DPSrv.cpp @ worldserver
9 U! U# p3 H; Y) H3 a- R& N) q) `& Y' t4 Y# Z
Code:
3 ~9 U6 g& r! p$ {8 Svoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )3 P A. a; o! c6 M- d" I
{
; x6 I: g. l v/ o DWORD nId;8 T4 T: u4 {" k; I* f4 ?) h% j! p7 g
int nPart;% K9 D# Z. m% k! L+ M' T' ]* q
" i7 p: D z5 J9 y
ar >> nId;+ ~) s( b& |2 B* b4 {& N ^7 ^
ar >> nPart; ! g" ^3 v; l i( X* K- c
! o& O+ `' o9 U0 r6 Z- w if( nPart >= MAX_HUMAN_PARTS )
- U' M8 [* S+ I return;) M3 C0 q8 G4 Q; a
2 ~' @4 J0 J; y4 @9 Z; _+ c: t
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it* F) z! t/ ~2 i! t
, y M5 v5 e, @" Z N1 Q
7 w7 ~" Y0 S% F2 s+ }Code:
4 A2 A) C/ v" n#ifdef __QUGET_SWAP_FIX
( m: E: D; e% F1 W5 c6 y0 v/ \- K& w) b2 y9 _
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )# C, p2 Y, J' r2 R1 n
pUser->SetHitPoint( pUser->GetMaxHitPoint());: q! N( s' w, K( r0 `( a
% X; a+ ~5 I2 d# u/ Z3 S5 }1 ?. R8 Z if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
+ p) n) H* b P, b pUser->SetManaPoint( pUser->GetMaxManaPoint() );' f1 f6 ?) k) f& ?4 H
$ L4 R- S. |# x; l9 |
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )! q4 |7 o- V! ^* [+ h
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );. H R' Z9 a- c7 |/ G
! `, B4 u; Q* W8 A#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
$ J Z8 Q5 J- _+ ~ {/ y. A6 vand add under/ i$ E' I& Z- Q& g" G3 k4 g$ d
5 M- g3 ]% {( ]. ?5 `
Code:
6 u9 h5 \9 A. E% ^& L. Dif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
2 R8 @+ q! Z7 @1 o6 a+ B { f7 l+ X* u2 { g6 W$ V( l8 l
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 );/ _( O- K( |( j5 y& [
}this
& ?8 [6 d! O* J# M# o. C# Q) w# l: ?" v c8 t" u
Code:
5 I9 l" H; R# x# v#ifdef __QUGET_SWAP_FIX
) L4 l9 T- k. w7 s4 N. R2 g( D: I if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )" Z, i( N5 a1 w. e3 j
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());9 Y9 L8 L1 E3 X# x7 o4 x) [# i
$ T2 i8 P' i9 _' O5 e
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )* l0 J! \! `; f5 R) @
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );1 \1 h0 p+ b7 I3 x8 v; N: N
, D3 j* m8 R2 r' q- p) \1 p1 d if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
- o4 r- L' f- G3 `# l, m# ~ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );/ r' a$ K4 `& h, r) o9 W5 W! v
, r U4 k. \* M# |/ {7 O8 @3 p#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
. ~3 [7 d9 v* q- s7 Y, U/ F1 r! A
: s% \& y1 H( j
) w/ h4 p# t q6 Q& L1 | |
|