|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
6 | I# J0 q+ C& NI posted this because someone kinda posted a youtube thingy about it :O.1 H5 z" c/ |6 b* W1 g
, ^$ C8 v( x1 {7 bFind this in DPSrv.cpp @ worldserver
E6 f. s( C( @! a8 B
+ S8 S7 [" k8 K/ BCode:% `4 I6 w1 d/ r0 H3 U7 L
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )1 I, o. r: M" B! e
{
" M$ k4 z) v1 a/ ~9 K$ Y DWORD nId;
% X2 i* W( K0 P7 [6 m* M3 i5 R int nPart;0 w8 G1 E) Q3 ^; j3 R2 Y
& P l3 k) z; Y2 T3 o [2 \7 N
ar >> nId;5 {2 q' u+ N- m
ar >> nPart; ( ~/ s! [5 y' J5 k
1 I8 a' D6 q% @' Z if( nPart >= MAX_HUMAN_PARTS )
! d; r' j4 { S# _1 G4 [; W. I return;/ {2 ?* V4 _7 W( I; O% ?5 V
, |' C1 x! p# A2 H& g, M$ s CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
2 y' Y5 c& X+ U, `/ j3 i
; I3 L' Q! s6 U' i* R0 o0 J; z0 `, J
9 p, S& w. o% D9 c1 m* RCode:+ k! w# K# v: N( y
#ifdef __QUGET_SWAP_FIX9 R8 h5 T5 J& E, @8 s
: X& [' E/ U% z* b
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
9 w- _, {" \' A pUser->SetHitPoint( pUser->GetMaxHitPoint());
- ~ e- p' g4 t2 ^. E1 m/ t1 Q2 j: V& P! e/ g0 ^, i3 m
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
8 ]1 {" |* D9 b1 K9 x/ s& s pUser->SetManaPoint( pUser->GetMaxManaPoint() );: V: t: K" |9 m$ K
" W3 g8 Z N; K, W3 ^; |& [1 f if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
0 C! D/ x i8 ?8 f/ O* W7 j pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
: j& Y/ m0 j: A' T- E* R- w" N7 J
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp' N, ]+ Y( o+ L3 {* h; y
and add under
' l$ I/ t5 Z! c/ ^+ Y7 j
2 t- [$ t, m# @* MCode:
3 Q9 F& _: T3 Nif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )/ m( C1 Q/ X" v" ]. \' J2 B
{
" Z# [( f8 B* ]8 M7 o) u9 i: o 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 );0 f. n% {0 v7 m; @3 M- B' m" _8 J
}this8 F" x _8 w7 h* m
+ @" l+ I4 d- S+ G5 ?3 \
Code:5 l1 t: C' W& c% f/ w5 b
#ifdef __QUGET_SWAP_FIX
! h2 l# `. ~& R+ O3 h! O1 e: P' ~! i' C if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
& s4 \7 x4 V; K, Q6 Q pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());* X0 K5 W8 q. V: |5 t
% o9 ]2 `4 _; ~: l3 W/ ?3 H
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ), ^- A! }, [3 W2 K
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );7 l O% U" c% P; b1 U7 f5 {6 ^
7 R% K: o1 q) t& E9 R if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )& k" r C5 W+ k) w* a- Y
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
, [# v# u% S* x! z% s2 c, N V8 `+ \. T+ \& T- D. h+ x
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver # _9 M9 S M7 v6 N' V
9 s) J% `& K. @% E; A
, P0 ?! S" A1 c( M3 l |
|