|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ( _7 N3 T2 \8 F) e$ N& M
I posted this because someone kinda posted a youtube thingy about it :O.
; }) `( y( c2 q! W$ h, a' [- ^8 |
Find this in DPSrv.cpp @ worldserver
, X. K' S( k' |8 q# k: W0 n2 p/ ^) x( N: j) e$ N9 q
Code:$ o$ {8 {& t5 }6 j' A" M" p1 K1 _! h/ B3 C
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ). d1 i- X0 ^/ `! ^4 X" e5 j
{) g2 z3 m9 j1 z
DWORD nId;
* a [5 i; e. m9 |% c. ~ _ D& i+ L int nPart;! J1 P* p. d' V* B9 K b
, B M! s) |" B: W8 D% P1 g
ar >> nId;
' w3 @& D' u, H" F4 y. {1 Q ar >> nPart; " r/ k0 P" t% S9 n h4 n! y
2 f5 R6 Y5 a3 L+ b
if( nPart >= MAX_HUMAN_PARTS )
3 o! o/ k+ a( x return;' B7 I1 t5 Y# p( `4 H
9 Q/ C) f* g+ W, d) D2 D CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
% b0 [4 u$ @7 g: X
( P I0 d3 _' v5 y( N% T3 e4 X
# V4 ]( K1 f9 t$ x+ ~Code:
" D7 R8 l8 w( L* @+ D" K#ifdef __QUGET_SWAP_FIX: k2 i5 W4 f+ a; P/ L
. H; |) T! ?( y' a5 ]
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
8 O: |, e, K8 W4 H. |5 R* f pUser->SetHitPoint( pUser->GetMaxHitPoint());$ o$ }. B7 V) k$ I, K( R& h+ p
$ s2 z; D1 s1 N [, f1 _6 U. o! ~* Z$ d
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )% P3 H( C8 p; p/ C+ U5 k- z0 ~
pUser->SetManaPoint( pUser->GetMaxManaPoint() );; j2 g* n, E' ^7 z* E1 s
* j5 m7 r/ A- v! q- G$ ~# p
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
& D) h1 p, O) t# K pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );/ @1 F. I' t6 X2 h$ J
) b3 _* {$ { l8 b) e! q#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp7 [- y( {+ O, e1 m! M
and add under4 y% M3 u5 P5 M. ?2 s
" F% E8 f- I% a; vCode:
1 z7 ~% S3 a( g- ]& Gif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
) }7 m! E6 ~( w {
8 `1 _: Q" ?* ?( e' u' k 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 );7 c1 p9 }) v4 W) Z* H' \9 y
}this
1 ~5 T$ S% x( J: W9 B# p1 X$ n/ D& h5 E* V9 Z/ f, w/ H8 h. c0 w4 v7 |
Code:
( i; X8 z6 O% A3 m" l/ n#ifdef __QUGET_SWAP_FIX
, u: e7 d- G2 _# ~1 }6 W" x9 a. { if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
' N) m) P+ p& J' Z T pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());+ J' {' T3 c- F$ R' q
9 _. q# a" p9 {$ }
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ), D/ W: n$ I8 D7 a5 Z
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );8 A+ a, j1 k6 U* v2 }. d. ?+ c% y# z- [
+ F- s4 B5 [- ?
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ); _7 }6 S$ T% C$ e2 Y* G
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );! P8 o1 J0 N2 L9 [6 I6 K0 ]
1 h6 ^- U5 M/ l6 \#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
! P: O4 a: C5 M1 d: m2 T4 e& B; a, ^# _! w* s5 |
8 _& o3 z/ `! _3 K+ ~$ J" `! d |
|