|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
! n# N1 y0 K1 hI posted this because someone kinda posted a youtube thingy about it :O.
7 F: f- C2 n( ~2 p( M) m* o/ m
* D8 L4 Z+ s3 X2 OFind this in DPSrv.cpp @ worldserver& K6 e( P% V) c; D% G3 F
$ i9 w3 {# l; E6 G
Code:
9 \+ Q5 V3 K _; ?$ J% s" vvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
5 _ G9 r- ]5 k1 N4 u+ b{$ P. I/ T5 Y9 t$ n
DWORD nId;" e+ p f4 E' p* {/ T/ P, l
int nPart;7 y5 i7 K0 J# h. @4 [' ?6 X
8 o/ {4 m {& F) {" I4 S
ar >> nId;+ N" ?+ X3 U) Y! N7 G8 p
ar >> nPart; 5 {. [7 h8 x. K2 s e& K1 \
+ Y5 S; m, K: O! ^' O0 q8 F3 B if( nPart >= MAX_HUMAN_PARTS ) + }" o" {' _ X' S: u! s
return;
, T r; g( t- {- Y' s
$ \! t7 O8 f4 y9 i, K& {% T CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
$ ^+ [# `6 `# K- N: ?+ y
7 ]# c; \0 r2 f8 B6 b# G1 l, r' O D1 ?8 Y
Code:
4 P# \. Q0 r7 @' G8 z#ifdef __QUGET_SWAP_FIX: [* r1 h; W% l. _% r) X& v3 k
# r- A& ^! f; d3 b* m$ c if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
" V" L( q* R) w% t7 D# f" D3 y" J pUser->SetHitPoint( pUser->GetMaxHitPoint());
k3 Y: ?1 m X4 l: n! {, z3 W& O/ N% N) b" h. }' P
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
+ A1 E! e6 I: U. { pUser->SetManaPoint( pUser->GetMaxManaPoint() );
/ Y* O _; K8 ^3 ~6 R7 V- [. ~6 b& y( Y3 C8 L/ J; F# w+ B
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
' B6 z) a; D: Q pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
4 u2 `5 t7 q \; x; w
# u$ X1 E# Q' t3 k; V#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
+ H$ z1 Q9 u8 G0 W) u3 ]2 C! z% v3 Y Hand add under+ V1 D3 P- B, J# j$ e
* C4 h) X' b$ g. CCode:3 X: `. d# f5 y' V7 | X3 E
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
( \6 q9 z# O [8 x {
' y9 r" Q; x5 l% @' 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 );3 G: [- `$ A6 j
}this
. ]3 J7 p1 P t0 \
9 F3 W. O0 Z0 X, w* w* V! J WCode:
( R8 ^8 ?) l3 x/ B' F4 K#ifdef __QUGET_SWAP_FIX
9 E2 J% H; e7 x+ a, F9 t if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
& n a1 H" e( d, Q pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());. _9 D. p0 G; d. X4 G: D
0 J6 a7 ^/ M, J `4 R* {, G9 E- o
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
7 E7 s4 S6 F- }$ K% P! x pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
6 { [& F' K' a6 h u" v: B# M# } U1 S
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )4 ^' M1 `* ^3 C9 z
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 o0 U1 n* g& n- f$ x/ E, j+ h( Z( A4 p8 `1 y' i g" G
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
# n7 J4 m6 P$ \ r2 w) W$ I0 Y
% L1 }' k7 I2 a6 f! }7 I6 K6 b7 A
$ }# [; @+ ^# M |
|