|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
; m" X; D; C! [# Q( t% V. \$ f' X2 DI posted this because someone kinda posted a youtube thingy about it :O.
+ l+ a& z8 J2 o0 t9 h: s, U2 B
( Y2 H5 S6 t7 ~& [9 y3 m5 B$ UFind this in DPSrv.cpp @ worldserver
# V$ @7 M* Q6 d( k$ w' P7 Z% k) I% X6 ]4 f0 @
Code:
( R# g9 L& G7 d" x. p' wvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
+ s$ @+ N5 v. y$ k{" @# Y/ V( ^: a" L# \
DWORD nId;# [9 O3 u7 ~, I% e2 w7 w3 I
int nPart;
0 n3 ?5 L; ?4 l! z9 ?. t8 U; O- } ^9 d$ Y
ar >> nId;
% A, p6 O+ n# Y5 z; ] ar >> nPart;
& |% a5 @: \" p6 _/ ?
0 c2 D! l8 A: [( [/ j if( nPart >= MAX_HUMAN_PARTS ) + e* ~& y9 r; k6 F% ]2 Y
return;
! I! d5 ~( p1 `: ~& r. d7 ]
( F: i1 p) o4 d; _7 V CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
+ t2 \; f9 t+ G, Q* R9 `- ~3 s$ i/ x: s
0 C9 y6 \. w, G5 R8 C) F6 V' f
Code:- V$ h6 y }- [% p/ E8 M
#ifdef __QUGET_SWAP_FIX; A \% k/ @& R7 F$ R5 m k: r
' ~2 ]) q* u% o8 ]5 ?. J- {3 |, | if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
/ b/ L! u1 b0 S# w; @) ~/ u pUser->SetHitPoint( pUser->GetMaxHitPoint());# O' C# ^6 F8 J2 e: e' w- K: J
9 {# @+ y$ P; B* v$ W9 [ if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
1 T0 I" `4 N7 X7 o pUser->SetManaPoint( pUser->GetMaxManaPoint() );
8 a+ D' S' n( l
' A- r, b5 m: c5 L4 v5 b if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )" T9 G+ C0 v. O3 K) \, y0 T
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );& O8 ?1 z3 V. h" ~- \5 F
& r0 y3 j* Q9 G) p2 ^! i#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp) j1 r$ @) }4 r
and add under: d, M+ z( M2 x O
' ^7 y5 u* J; `; Y0 W, y+ ~Code:9 A* [0 v! Z2 l# g2 T$ U1 w, i
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )! x5 C( D& u- [7 O1 t' f% N6 _6 T0 `
{
7 T0 d/ [! _7 J/ r( M7 K6 ~0 U6 J 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 p# i) l' z' n3 c
}this: E/ C( X B5 [6 y: i7 N( k
/ U. D( U Y9 I+ G* TCode:' G3 G. p) S. \
#ifdef __QUGET_SWAP_FIX! e) O- A4 E2 H; t( x
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ), w+ T( O0 p1 {
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
5 x0 Q: Z0 r$ \. f8 i6 X5 C; [4 o7 K: @& Y# l0 ?# }
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )4 G" R% N7 A) d
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );, |2 v7 V& c4 c, {: C9 \; ^( e N
0 Y* N1 C7 O5 S% @* m
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )* V6 ^2 m( h5 N4 Z; `$ [
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );/ X. y0 n- }( h" \* B
" n+ z, X4 b8 E#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
. e0 h7 d ^" [, o4 L8 Z
6 y$ ]( B# `0 t0 A+ V% X
- l) x; [6 ^3 q7 M9 Z* S, a |
|