|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
, g/ `% ?" I% r! Q$ j4 V; ~' UI posted this because someone kinda posted a youtube thingy about it :O.
4 N- I0 u2 Z& z4 [7 x9 r- M6 K7 D& F, { m0 Y( ?2 P/ U# e
Find this in DPSrv.cpp @ worldserver
& j: D; E8 Q5 W& N4 [+ X' s2 a" V! {, n. E9 |* Y; p6 e
Code:) V4 e" j, k5 U, y# `
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
0 ^8 j S8 R* T! d7 u2 {- ]{, O% Y5 z9 y" ?% a" B
DWORD nId;" I& z1 \: t+ R
int nPart;0 J9 W7 F7 U/ C- z& |" D4 [6 d
: P6 R) r+ F4 `6 U* T ar >> nId;% m! J% t4 }7 V$ g
ar >> nPart;
. ~( H6 v! K$ E* M- `
7 {* ?. p( M% \, @8 P' `0 V8 x if( nPart >= MAX_HUMAN_PARTS )
5 [. ]6 P3 |' k: r3 y5 k return;1 b& D8 _: k% S- x! t' O2 f! m. O
& Q, }! M! h% |: }: g5 C' V5 h$ }
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it) p. i/ A& g0 Z" J
6 L- ^0 ^; ~# G# L, i* l
+ H& t2 M% j- o) y. SCode: c+ V: B ], b- Y
#ifdef __QUGET_SWAP_FIX5 W6 U+ d8 l3 `+ \8 m
! ~! Q0 \+ R5 ~& Q0 y- Q$ c if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
3 w( @% V* R2 ] L4 {. z2 N; ^6 w pUser->SetHitPoint( pUser->GetMaxHitPoint());
' |4 ?. v | L g- _6 |2 S f2 L8 {3 l# ~; O+ x; x
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )5 c7 B+ {% T ?. U7 v# `& T) R
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
) Y+ l6 @6 E; G6 q( k, e1 z% I5 c3 q
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )% C! w: C! C* O# a+ _6 V
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );5 |# d6 g3 p4 d2 T- ^
9 B' T) ]3 a2 d1 K#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
3 q1 | A5 ~; }8 j' Jand add under
3 g# @8 N, B0 p; \, d- o! i
f+ B; {+ k% UCode:
/ K# _7 ^5 z0 N' z" vif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
# E. U8 Y7 C* e. P; q4 z { i0 c- Y' i b9 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 );
$ [( I% d/ W% R }this
5 G: z+ W! ?1 ]- X5 \* z5 P
" ^0 A' B, K4 lCode:
) |& V" d5 \8 u- T; |' I#ifdef __QUGET_SWAP_FIX: E3 n; b# i' T
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
0 G( {' P) L- r! \8 P pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
1 } M7 B0 t* l( n/ L" b g+ I3 e7 k9 k
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )8 k \' F- T3 q$ L0 Q7 C7 u0 Z' A7 }
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
$ \/ c) A, x: ]' V* [' T
) d4 k: _, u9 {1 D if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
- m. p% ~/ h j% g$ q- Y3 o _ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );' O" |6 ?5 P% |' c; S c* J
8 M3 n# j, G- Y: E) C& Y6 \#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ! ^, u& \5 Y8 n- Q1 N
* {" O r. m) @$ c; f
/ u4 [) y$ }. T% d( I7 V
|
|