|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
; Q. f6 J. p1 Y% ?0 ^. CI posted this because someone kinda posted a youtube thingy about it :O.
4 ^$ K7 m& @& Y7 ]( `; F5 q+ I9 w5 x8 @
Find this in DPSrv.cpp @ worldserver( m4 c' P) H6 T! K: O
- l2 m8 X! r1 SCode:
. [/ w( P) r% n; t% W$ t- yvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% Z% v$ {' A* F) B7 K6 R! N{
/ q7 P% G+ O; Q; l" z: V DWORD nId;
5 Z% V1 a& p% _6 U3 d. B int nPart;+ N) z9 g2 c" s1 |
. f3 J7 G) `2 Y0 P& y ar >> nId;
! _ l: \/ [1 a; N! g5 {, |! k( M* I ar >> nPart;
* h3 x" Z, S3 t
$ z- ^- H9 }3 q if( nPart >= MAX_HUMAN_PARTS ) 2 p3 O, ^" c6 ^% |8 _ k4 |
return;# Y6 Y! s d1 _3 v( D9 q' T- R
% Y9 m% s7 v) B% ] ?; `8 ] v CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
3 m' b6 W3 d5 l/ I* I& ^* S; d: ^: T2 P1 a) V
4 [5 e4 n& X9 U6 b. X
Code:& T+ Q8 n7 s/ j* E
#ifdef __QUGET_SWAP_FIX
+ i6 S, ]0 l. d9 V6 G0 p/ ^) @' @& E! ]* M% ]7 t6 c f
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )) L" }! X' n2 S4 z
pUser->SetHitPoint( pUser->GetMaxHitPoint());+ c& \( |9 y- l f- s( J
8 K$ H1 R# E( ^- w8 _$ Q: Y+ L1 p
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
3 i3 z! ]" S$ D& K9 ] pUser->SetManaPoint( pUser->GetMaxManaPoint() );
! n9 G F0 Y! }
7 v% b; r1 u$ H$ I if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
! u6 m+ U* }; u& S9 x& @ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! I( d$ Z) C: x6 s- q( f( ^. [$ B8 b( j- j* G
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
2 M7 m- N( d. {* C! S+ gand add under
: V, o( Y; v, c& e$ m# P4 s$ p3 t, k8 a( S0 J4 }! [& b
Code:3 b r/ C- T& U5 n4 W; C4 h8 C
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )& F0 d7 y6 ^) T: |8 y
{
1 ~5 u& j/ L9 P, i& z+ Z5 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 );4 j9 O9 X# n4 q( C7 x+ L- G9 y
}this7 K' a9 A. H- F0 U7 Q
: ]1 t) q7 h- z! n! aCode:
! i( o1 G4 [2 o) L4 j#ifdef __QUGET_SWAP_FIX
3 B C7 ]0 B+ h5 A if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
3 y% I3 d9 s# U( y, A# }9 y, h pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());4 ^( ]$ b% k) L f, P) v1 }; Y
) J6 C5 B6 s9 r6 ? [. h8 b; j3 e if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )3 K& }* L" z4 N: g3 B7 F; C: u* {/ N; e
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
' ^* l. y+ o. ^2 P" B
; W9 Q/ o; v, l/ x p; X2 b if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )- o4 P1 N6 b. p( V0 B1 j1 b, ?
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );5 t/ |- r3 n$ H3 H5 o' O
$ g8 d0 t. P9 D( Z
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver : [! H8 W7 q/ E' V# g
) o4 K+ r+ A0 E/ w5 O; F( E( Q
1 f T$ ?5 q9 y% i* q5 t: H1 j |
|