|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 9 v+ |9 U. H+ ?, l; }; C7 q
I posted this because someone kinda posted a youtube thingy about it :O.
( X4 q8 d$ I% H7 h3 _& u; I! X
( Z+ E0 s2 J" b/ N3 WFind this in DPSrv.cpp @ worldserver% F8 A% z) t' r/ b1 N# E* k" r. j
/ w, w: f5 P- a1 @- a5 Q# f/ n: i
Code:7 i( r( T, U" A h8 c7 R
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )1 I% y2 ~" C1 T, o. B5 A
{
& E( i7 M9 O! I DWORD nId;: r3 S# A2 r$ v
int nPart;
& ]5 o9 P$ J! b8 z+ e$ \1 t; p3 F* p1 F. v6 t K g8 ^
ar >> nId;( l4 T, o6 E! Y8 M2 T
ar >> nPart; 4 J* J! h$ Q" N) E1 y
2 w; m, L! S: H8 A; W) ^4 f9 n. m if( nPart >= MAX_HUMAN_PARTS )
C8 O& y2 l* q: M* T/ B: t return;
" z; o1 X8 ^" R5 H& J' H: F8 T' w5 @0 k
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it: Q( k* N& D3 T& {9 v/ g# k0 Y
5 c3 h* e5 ?) r2 h- `% N1 [8 E" H
! \6 R% H5 Z4 ?# l+ J
Code:# r; H7 Q) U( t* `
#ifdef __QUGET_SWAP_FIX8 b/ U5 j& T% B* m% N: Z
6 W% u! l) P2 M& D% e/ s, c
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )2 w, R9 q8 r* S7 ^
pUser->SetHitPoint( pUser->GetMaxHitPoint());
: R3 }* d4 ^4 [4 A
3 _. W& U- n* }! p' P; e: r: U) R3 N if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )9 T+ J) F9 s) [ N3 j
pUser->SetManaPoint( pUser->GetMaxManaPoint() );6 s7 ? b& Z) E8 e A
: {& G" F( ]- [: m$ I# z if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
2 [" q! ^: N9 R: |' @) ]5 {3 { pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );( \5 v- ~ ]2 ?1 _5 s" `
3 }' F8 U. ^" d( o8 R. D& }4 d
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
' |6 B3 J% a& r+ Rand add under
; z/ N" I. ^& C9 g. Z; k5 S' ~- c7 l3 Q! ~7 D/ A6 ~
Code:
4 q( P% r9 F# }& ]7 n/ Sif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ) o- J" l3 O' M& t$ I, H
{' l6 Q( `- e1 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 );
' h9 B$ H; Q; [* v# _( k }this- I1 q- _' L3 t
6 b; n0 G! U5 V/ Q) {' A* ACode:
# _2 J% z1 [2 h* w, s* P, Z$ O#ifdef __QUGET_SWAP_FIX
3 E4 r p7 N' y if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
) c/ r( \0 D8 Z! ?" Z( V( g pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());( o2 K, \% c; R3 N. Q; [
( |! D" L1 F: ?0 N+ T: D B if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
4 J8 p5 }; y% Y, i; M$ Z( R! z pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
. ~" X2 P- o3 g% [( [
1 K e' x! G& K if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
( V& h1 ~7 `2 V" U* z- f6 G pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
2 A) K% f+ |$ e- Y: Z! g- I' J; U' B8 T/ }
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
# G9 Y. ]6 P( y+ |' ^3 Y6 l9 \% u& j5 [4 {/ Y+ o; F
9 i3 R! l) W/ ]% J8 y3 t7 ^
|
|