|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 0 }1 U0 i' }! Y7 g& B( Z6 f* H
I posted this because someone kinda posted a youtube thingy about it :O.! H6 q( |# P- {6 o2 J2 K+ S) x; x
. [5 w9 ~# {/ H( ~2 a; i- h: U
Find this in DPSrv.cpp @ worldserver; q. \/ N3 q) t: V
5 B9 @3 ]9 w' j# j, d
Code:6 z9 z/ W) o/ D& c
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )8 ~! e2 K9 d& Z& ~ t4 k% K x+ H5 S
{3 S2 ]3 J6 l) r
DWORD nId;
% M- T7 V7 b1 o3 f int nPart;5 m; ]8 o# M# S/ t5 U7 Y' q0 N
8 \! p2 R, ^# E. p& Q* p# y
ar >> nId;
7 r5 x/ b0 B# g4 } ar >> nPart; ; ?( Z4 B& X$ K+ E n2 Q* A$ I
# u! A5 W1 ]' m3 u
if( nPart >= MAX_HUMAN_PARTS )
* a/ V8 N; ^, n' A8 Q- ^1 g' |8 K d return;. T; D. ?3 n5 ?0 ^
# z. Y- @ a& b' j: K CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it& Y4 m P6 K1 C( c9 N6 I& h. s+ ?
h( A3 a5 ?% E6 r9 n4 H' e6 V
, g- ~) O# v! O5 N% t- f( ?3 R' l) K
Code:
, O9 M; e$ O( X; Q. n) q#ifdef __QUGET_SWAP_FIX
5 t$ Y5 F) L1 L8 e# L/ t! }) y0 ~3 Q, z8 [* m
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
' f; E- ]1 Z* i5 p pUser->SetHitPoint( pUser->GetMaxHitPoint());( w0 K9 h3 v& c. m9 e3 O3 c
8 z& M7 `" Y: ?( X, I( _ if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )5 O; {/ z- ]5 }" B- D" h1 W, [
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
: z% T! }& I* q1 N) K
7 `# e2 {! K" C# L& I" T; H if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
7 h. u2 d. H/ a7 F" b$ u pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );5 `. Z; l( F, M7 N( L. L4 d
3 i/ J) W5 ]( e: y6 ~) I7 N6 c#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp1 q5 k% A m; r& W/ `+ j8 V/ y
and add under
; o# v) n: |" f/ f" e2 A: T$ ^+ b: {/ u' W; H
Code:
9 A. J M- ], Yif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )2 i# E+ j( g; m8 B$ \
{" ^6 u L$ d( o% v8 B' P
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 );, v( T" p% d0 t. T+ |8 M+ i
}this% }% `2 O4 F' v5 v
- G3 X* w$ W) w# C9 @, [
Code:
0 c. L0 }, f5 g( G' m; N; Q#ifdef __QUGET_SWAP_FIX/ N% S/ ^8 e& q9 P+ d) C1 m% B
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
1 c& [8 H/ s1 y3 l* I+ r5 w pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());6 f8 ]& I3 @ @5 r c
' I h+ h* K, x2 F# G' @% z
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )- _! |' A3 e# R- Z
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );. m, M/ [2 D6 _' M$ `$ W4 ^8 _
N: Z% W1 u2 b) [# X2 P/ _ V9 I# x if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )% I9 d# @: ?. O4 N) U; }: X& i9 H4 ]
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );+ e% t4 Z6 m1 E
8 r( ]+ ~$ ?1 X; {#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver & `" @1 p# {1 v9 G9 ^% X
$ W: ]8 X1 D7 c7 q7 o, i
# e" r& q# x) `% H a8 r, Q |
|