|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
' n6 y. A& D$ s9 @( d4 @I posted this because someone kinda posted a youtube thingy about it :O./ r+ X/ d( v/ p: @/ n; ~6 b6 b( M' L
& ?3 K% W" {: w4 FFind this in DPSrv.cpp @ worldserver
8 d! }/ t) c& ~1 A8 s- e0 R
$ n- C3 x0 B# @: fCode:( _& f! W: Z; q
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
i C9 g J1 v0 R% \{( U8 K' C) Y, h
DWORD nId;
0 c7 S: j) B4 |4 g! ^2 X- S int nPart;
8 a2 T/ J) ]7 m$ ^ Y' |% g i& O4 g( b- T8 i8 |4 M, v% V
ar >> nId;3 F$ b: x, s6 t: P2 C
ar >> nPart; 6 A* H$ `. ?3 ^8 Y6 B! h$ Y- I
4 b9 G1 f) n: m# w if( nPart >= MAX_HUMAN_PARTS )
( N2 `" t% Q+ w; ~' { return;- Y8 n0 E% w% Z/ E( @4 J, {! R' P
2 q, c/ E3 Z9 R2 F! f
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it( \, g* {/ i! b* v0 t* V; E- h
! x Z. n" g$ Z3 Z/ L
8 e9 E1 |: w/ ~7 a7 }; U/ @Code:( s% _# x! s" N7 j Q+ @
#ifdef __QUGET_SWAP_FIX
7 b; P* E- x+ l/ r9 l: y r2 c
& E; _% `, P; b2 y$ k if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
# U0 v6 v% C) r2 @0 ? pUser->SetHitPoint( pUser->GetMaxHitPoint());
1 g% a( [4 O6 b* M% z
- \5 S" q9 d- [" d5 q; |% x% n0 w if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
- m# l6 J# _9 D3 f0 m/ T pUser->SetManaPoint( pUser->GetMaxManaPoint() );
% `2 u% c2 x3 N( R! ]" n6 S8 S7 t- N a8 m6 ?
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
& v# L2 p8 V! j% l% I; q8 }# s2 r pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );5 y4 \0 _3 z% v! |/ t# [; J
/ J+ M# T6 d; g8 w9 W% d' X7 f
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
! S0 ?2 l- L+ h! |3 C Band add under' w5 X0 t: J5 l5 a7 O+ P3 j; o
5 _; i& @/ I( t# s& Y w) ECode:. Q9 a: S! {/ e6 G
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
( Y5 j& j7 a5 ~' Q" g3 Q9 r {
. t% }- @, _ k' y. V; z0 A1 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 r" F$ F/ g3 ~5 @
}this. V5 X' |+ l3 G9 a+ x. P9 y
2 P; M L8 I% o# V# \7 l8 Z% D+ w e' }
Code:$ F% C- n( J2 S, Q3 `
#ifdef __QUGET_SWAP_FIX
. U. @. g+ e+ Q4 {6 ^& i' x9 D if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
, _: E. P' k3 L. Y; j* |; o% N pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
( Y5 v% b7 |3 P+ D! Z# t$ q! l, {; r' Q$ k6 E! h' B+ @0 v
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
6 D! l7 P3 e2 \. c+ j$ m2 y pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );5 Z5 z, U( B' {* f+ ~+ v
' O' n) ?" j5 ]1 {- L# L7 ~ if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )! Q( _- g! @' x% q! G- v4 i3 I
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
. \' v& ?4 r; ^: s; _- i* { y" m7 `; T2 v& e
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver / J# Y4 P8 d5 l
& X3 q }) X: }' c/ `4 W. s
; z& h# v' i0 e" U* g |
|