|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
) w: {/ x2 {7 X; OI posted this because someone kinda posted a youtube thingy about it :O.
5 W1 |8 x+ K: F# I, [
. v" q8 ?! H! ?' u+ a& KFind this in DPSrv.cpp @ worldserver
2 ?1 \2 j. h! w& ~- H
7 w: T* i, }: J+ FCode:2 g( R" |/ v& K9 y5 C
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )* M* E0 R+ t% Z, c9 P- Y
{6 {+ K- N! c* I7 K. D) j
DWORD nId;
Y. W9 q3 |% h5 E% h% N1 j int nPart;
# s$ C1 M0 ?& H4 q& a1 A
. I7 M* i/ p5 c& n0 [4 ] ar >> nId;
" Y- B( V( j) m ar >> nPart; " u; P l: |( Z
2 `" ?2 p8 \2 d8 I
if( nPart >= MAX_HUMAN_PARTS ) ) P2 @# K" @3 s2 X0 c2 l5 ^; g
return;
$ C( n$ b* W+ ?$ f6 Q2 x8 M; c6 W5 y
( g0 W3 q8 g; v7 X4 P CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
! l* l. c; ^" F% Y7 R3 y/ R" S
6 D6 M9 J7 l- v: Z8 W+ v& @/ I* K) D& |, y4 y$ }4 p, Y
Code:
$ ?! f+ z8 O, i# L#ifdef __QUGET_SWAP_FIX
' b2 |: [8 p7 m4 N. l5 `' o( O4 {7 c! K
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
9 d% \( Z" }( F! v( s/ w pUser->SetHitPoint( pUser->GetMaxHitPoint());0 y* P% p- T9 X& `) j5 b9 D
1 v# n* K# E4 _ x% Q3 \
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
% m; a2 C! N2 C. }% A2 u pUser->SetManaPoint( pUser->GetMaxManaPoint() );
( W8 p6 O4 x% f$ u8 V. o$ l! j( @ T8 H6 x' t2 V7 j
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )- @2 N; Z" K q( |6 f- b6 s9 Q
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );8 B( ^0 B+ s2 ?2 h7 w
4 N! M3 U: u. Y* S# `4 @#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp. `" w d& v2 U
and add under
' ^6 x& a1 T3 ~ T0 M- w# t! E
1 ?% J3 t/ T) `* X) E( U: FCode:
8 ^/ Y3 M/ D n0 H# ^ X9 R- Yif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )5 V" x+ Q. l1 |. ?3 ~
{ c0 b" U8 ?2 W H
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 );
+ i5 ~6 i2 d$ J% ^& E+ j, m6 R }this
& a" g% b# W" \( W0 C" W/ S, m. Q9 }* M9 b( ~8 H# A. T) L x
Code:$ D: A. p; C# u- O
#ifdef __QUGET_SWAP_FIX0 H/ d3 \# | {: X/ b' N/ ^
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )3 T/ @; I6 v+ S# `
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
' T8 t# j$ U9 E, m
9 j" K. v9 O6 \6 x% { if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
4 |6 ^7 b5 X: T$ a8 D8 G pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );- y. R8 |" n) w: U, C) L8 J
2 }/ R! V0 M* M% _4 r6 n) a ^9 a9 M
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
9 ^( Q) @3 g3 D6 h: D pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );8 d, K* P0 ]: {
- {" L9 s1 }7 _( I {#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 9 _8 k, ?0 Z: U& ]1 n: l; S' m
: E5 G1 P$ Y" A; e
V/ S8 B! O' @ |
|