|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
2 t4 h0 X! K9 lI posted this because someone kinda posted a youtube thingy about it :O.
! S$ J& \! E6 V( ~1 Z. n
5 m: c$ d- x& r8 l( t. {3 s( K1 tFind this in DPSrv.cpp @ worldserver
$ @* B$ y$ G2 S+ Q. X0 P8 O! m: L5 O- f: J! R
Code:
1 Q8 o( `+ r4 N+ Q. i: P# p7 cvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )2 y: f1 h0 D1 Y( @
{9 _8 I( C/ X$ ? b% V- J7 U
DWORD nId;
' [+ M7 }, j, L1 T) a. D int nPart;4 |, Y0 }0 x+ T/ d8 C3 c
/ l2 _; d& W" _6 s+ m5 N( D
ar >> nId;& x& P5 Y( d+ D- P8 C
ar >> nPart;
( w5 B1 E' r0 Y# \" ^ 0 V: A+ T$ Q1 C9 C1 u, C
if( nPart >= MAX_HUMAN_PARTS ) " R5 Z2 K9 L# J! X( j
return;, Y0 [+ R* p% V3 S6 G7 u$ q# i
7 _. X: |5 k& [6 Z- j( ~
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it0 n/ q: i8 U. z' D0 Q2 r' ` F( s
# [- Q) U' e3 ?. f0 G
# d: J, h8 Y9 }* r, N- O
Code:# p9 H* a8 {. `/ _& a! K
#ifdef __QUGET_SWAP_FIX
8 U+ n& h9 p- W8 F9 j7 [3 l( `1 W3 c# t+ B4 @( q
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
. A0 M# P4 |( W" L' A0 _& \: e; q* I pUser->SetHitPoint( pUser->GetMaxHitPoint());
% y! h# M- G+ j/ ^- Z0 S3 j" ]& ~9 T3 m3 h, i
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
# H$ Y( H, n9 P" C7 U6 u pUser->SetManaPoint( pUser->GetMaxManaPoint() );
) P- t1 D/ c0 } y" n6 m: m0 c) T1 n6 l8 w" J
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )6 z7 H+ j3 d; e/ W0 m+ m
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
+ l) N" ~5 G6 z' y9 B
6 A# G; D2 M) E9 N3 N; W/ Z" G% Z4 Q#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp0 \( n6 m+ S% g& w9 ?, W4 u
and add under1 A7 x+ g: A/ h8 Y( j6 z$ M2 L
E- o. F3 ?$ z( @% p! g
Code:
9 L2 W8 p6 B" Oif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )+ v+ u) H5 ]' {/ ]# ^$ @4 p
{
; A! O5 i, G- ^9 E F 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 );
6 ^" o9 J8 e6 \ }this: Z2 O% [* q6 G3 Q2 q
6 ?$ a: L0 `* H7 |
Code:
& z- l0 L; _( D, o! W) l#ifdef __QUGET_SWAP_FIX
+ T) S0 m( ^0 i' u8 t3 W) A: s if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
( z) j0 }# w! l$ ?" M pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());) {- V5 e' k, ?+ U0 X
& q4 q6 \3 J7 w' u if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ): G* z1 y5 \ b. h2 O2 h
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
; u9 W) K1 ?# G2 k- m
; p p9 W ~8 j+ ? if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )4 ~+ L: s. |- X3 y, C
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
. W5 T+ w& c4 z; I8 p4 D8 \) E6 Y- G/ c/ ]' x2 X- `, g, f' S
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver `6 E `: }2 ~+ ]8 x
4 u# K0 f* K, y3 K3 \" }5 v; c
" T, A; I9 W" Z2 a! R7 _# B |
|