|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked # ]. K- f R" }+ E9 F
I posted this because someone kinda posted a youtube thingy about it :O.
9 b: \7 b! `% X& [
& V' B0 S0 g1 R8 sFind this in DPSrv.cpp @ worldserver
) @+ ~- l& d4 @
8 T( ~4 u6 a$ ~- l+ q9 vCode:
; H$ K7 l* c+ X0 u! Z8 { E+ Bvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )+ b- z' C& R& |. F& {
{7 P& S2 h/ K9 R+ e, T* V6 G
DWORD nId; ]: b6 P2 U5 M" a! B5 a( O! a" D
int nPart;7 Q4 L6 U5 }+ l) z* `
' `" Y5 K- {6 ~) A ar >> nId;
2 G3 x# ]% J$ x V; e! H ar >> nPart;
( q$ a7 N$ g, |
! y4 l- @4 ^: b& l1 J% Y6 X y2 h if( nPart >= MAX_HUMAN_PARTS )
2 L: ?# o' g D( W, k8 x% s return;
% S+ P$ e; e8 n7 M9 ^- c* D# n* C" `) x0 S
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it9 A4 Z p4 b* Y& m" v( k9 I
$ p, A$ {7 Z z
" }$ V1 N% |3 j# J `Code:! K. |+ L2 @1 A( x
#ifdef __QUGET_SWAP_FIX
9 |8 D' w' }! F9 ?$ Q# U6 ^9 }( @ w% G
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
6 l" y9 n9 k2 r9 I* b0 ?1 ] pUser->SetHitPoint( pUser->GetMaxHitPoint());
( \6 L" e1 _$ @2 D
) m0 D% s+ J7 a: O. n! @ if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )' I' K. F/ Z8 N5 o" @! m# b0 U( Q
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
; `) P0 N. @1 i) U) a; }8 ]) ^/ b; Y$ a9 K& {$ Y
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
" {; j. H* r. s pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! ^( `: u$ V+ F% ?: _ h
( h' c8 _1 Z$ W C#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
) A) L! z4 D4 ?2 u" xand add under) E. w2 ]8 W. U
4 z- w$ y' i$ U ?( b, N
Code:
5 f* q) s5 U7 w6 {+ X% Aif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
" }9 d' h1 \+ R d! m# N {, q; v- {( @: ?! y7 H8 {; f' 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 );
% O9 E! ?0 N3 O3 r2 q0 h# q }this
/ j. D' Y( m1 l3 A
6 Q: S& X1 E% }& B! ~3 pCode:
- E8 J# G: k; I2 \/ y# C#ifdef __QUGET_SWAP_FIX
7 e. e1 j$ n/ n# } if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )" [( _4 [% n. N& S. s w- {- ^1 c; m3 b
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());9 X: F! }1 N$ C; {8 T, {2 r7 ^% X
# {: m3 N- r- \5 I4 {& J+ \ if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )( T- B6 @: \6 o( r0 R& C2 T# b
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
' A: K9 @2 r) B' _ @ M0 P9 G+ }. |) Z+ |0 K }4 s' X
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )' o1 g6 d# H! X
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() ); r3 q4 z0 ?# o* x! {7 j6 t
; _4 q2 h2 b% u2 P#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
, F4 e7 `# r- W! f( `, r
7 E+ _- |; N# k, m- g4 d, `: ? L3 j/ p$ P
|
|