|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked * R4 I Z0 i- x
I posted this because someone kinda posted a youtube thingy about it :O.
" S4 A5 E8 j" ~% l; }6 j7 F5 v9 d% C7 o- k+ Y7 X6 s, J* ^6 B& K
Find this in DPSrv.cpp @ worldserver6 r# E% e) }- {# }, T! t6 P
. u; r( n- h$ l( q4 a- cCode:& L: Z& m M2 _5 }
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )$ V( ?# I! p7 z7 g
{
! L2 c9 S" B# m/ M2 o7 O5 F DWORD nId;
# k3 B" ]* U9 ^/ H- u) S5 R int nPart;9 J& U9 I* u* d) K
% h* i' R& m+ F$ ~. ^
ar >> nId;2 F6 A x+ Q% F( F: j( }" Q
ar >> nPart;
# n6 T/ U Q4 o0 D% n% ?4 C
% O M$ k) Z$ D( H# c if( nPart >= MAX_HUMAN_PARTS )
: R0 K* f { C" N4 ~& C return;/ s9 ]( K% O* V3 w, K
5 ~+ k P( e& q1 h
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it Z3 f7 [+ n0 u r
7 q0 ^, K7 w* B+ w& s1 @+ S' ]) x; u- w
Code:
, A3 I3 \4 C4 C8 ]4 y0 N#ifdef __QUGET_SWAP_FIX' g2 q+ o. N6 V* ^4 B
3 ], l* p% t D4 P( i+ E if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
2 a6 U( \$ E3 \2 u$ S ? pUser->SetHitPoint( pUser->GetMaxHitPoint());) v8 P2 w8 j9 t) g: n4 \
/ N p1 e9 U( g n if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
- M+ ~% L1 M; J& G1 T# j5 N pUser->SetManaPoint( pUser->GetMaxManaPoint() );
' X* C8 ~) [( ~+ |2 Z9 W8 l1 M' q7 Y: l1 D' m
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ). u* Y, F v: Z6 G4 t6 t
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
1 |. w5 p( j; n- Q$ h$ R: t' o1 C* p. U* }# M5 J
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp: a) c* f! G. V% k8 L0 `; x
and add under* W" q2 n) S1 G. m2 Q# ?: z* i1 p
7 G' j6 \& W! v/ ^3 ZCode:; Z& A- ^. [) D& Y7 z
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )1 q! {$ @: ~# d6 Y% @! C0 B
{
9 l$ H M+ M1 T! A: p0 ]6 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 );% G1 L( L1 l) ^+ D3 |
}this* e* N5 y' B/ R$ O1 U: |
% V" |" |3 F" a" H1 K6 n
Code:% g; |, l' E9 O2 e2 u
#ifdef __QUGET_SWAP_FIX
% v; K" H, B' S8 i# }" T9 ] if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
1 l& _' K8 @% P& T8 e* b- a- k' S( u pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
; W% E* t9 o) q. \" j/ o4 {
! s. j3 x7 f8 X! | if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
4 ]; ^! n+ ^3 A# e; h- g pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );# w0 l; ~8 F& w0 i4 H
* u: w4 E) x% O6 ~, I- H R) S
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
' w& o; i: x$ n; p" H) Z pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
+ W6 r8 y5 A0 H% _# \- Q! h8 F: i9 b: s ?! c+ j6 O+ e. ?8 I
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
5 C: l" s [8 G: z0 `
p5 C0 H- k5 K0 L
3 {/ R2 V0 C& C" @$ G |
|