|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked $ ~# u8 ] \6 E) r% v; \5 B
I posted this because someone kinda posted a youtube thingy about it :O.7 I/ \1 d- j+ `4 {0 k
: v" [3 l5 ~% E* jFind this in DPSrv.cpp @ worldserver
: n3 D% Y b* U7 `" l2 W- ]( w; |" R3 Y: [5 E) O
Code:8 C" A2 _1 x3 o% t3 c" U& k
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )6 ^; E8 J1 u) B! E/ T( G
{; t }3 Z; u) i5 Q, y7 [
DWORD nId;0 `( G; ], D/ J% e& L; C3 `
int nPart;
* G; `& z! U0 O( O8 `
0 z# z+ ~$ u, e/ E9 ?9 L l ar >> nId;5 b" n% o; E, H) |6 W$ w) C6 k
ar >> nPart; _ R! I G% q
8 ]% ~5 C' B" _; s! Q' D& E
if( nPart >= MAX_HUMAN_PARTS )
5 D0 W) N; q) I- e( Y4 E return;5 r$ g6 W% n2 |/ O! [
2 T3 F: a l" \3 g
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
# h1 y) G& h" e" O% t( `% t% `
! E- b0 @ g5 @2 V _
8 a+ _( s& e9 i9 c3 z0 y4 O: I& KCode:
/ Q& P4 W' B4 G. b#ifdef __QUGET_SWAP_FIX
& \ u9 r { o* M r a
# ]- C# Z+ H% T if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
: N- `3 s' `) i' b* S pUser->SetHitPoint( pUser->GetMaxHitPoint());
) M" b" E5 r) t' X' s. V1 [
% A+ K4 d1 A6 C* u# O8 f# [, r if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
0 l8 O# K% f7 e( H' i: R/ R8 b pUser->SetManaPoint( pUser->GetMaxManaPoint() );; }- \ D8 m7 \4 y* M4 u& F5 A! V
0 S& [6 i. `! t; h: F9 }# X
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
) X- H; B; I1 Q) f1 @4 z- P8 r% z pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );6 h5 \; C- ?3 ]# j8 f0 A3 U9 }, |
* n# D4 f3 |! |9 [+ C, i
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp+ v9 u9 _5 t% z7 M5 P+ m* G( {
and add under
: w: l3 V4 F+ i; m2 L+ _) @5 F w: T3 Q, u
Code:
9 {0 z. Z6 [4 {% \9 wif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )& l# ~5 s# Y6 k4 {, G
{
4 K7 N" [* _, t) Y2 r 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 );
3 O/ s+ p' o5 T/ c }this
+ Z7 [$ q7 ^! K
. [! p6 F+ c: c' t+ FCode:
L: j* E. Y# V# ]) g( |#ifdef __QUGET_SWAP_FIX+ O7 P6 t0 k0 T4 y5 ^5 e$ J+ j
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
^* p- \! J" h pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
. d7 F8 H! I$ f9 A6 G5 T% j; ?$ ^7 {0 s6 n- q7 k7 s1 ?; K
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )7 i$ H! D) B4 P. e% o& z
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );! O6 F. w) p' T5 B9 l1 n* {
# l7 p- a2 h9 E8 I+ C if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
1 g) J5 Q b8 l/ @/ O! ?3 U0 p2 W! a pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );: k }: n) j, {2 Y
1 N: b, c" g7 |#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 7 K$ a5 z8 s( [1 U
- ]" s% f' _; g8 p
* W/ @' L2 |8 A |
|