|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
4 C) t( U% M9 t0 sI posted this because someone kinda posted a youtube thingy about it :O.
% ^2 f) |8 D0 M8 D8 ?2 e, s. S1 t! i. `
Find this in DPSrv.cpp @ worldserver
" l" M+ o, _8 ~, k! L8 t8 l$ A2 c7 b4 r' s8 q* h
Code:
1 A# H/ n# e" P9 lvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
' `7 E' e8 V/ C0 a5 Y, w$ t: o( Y+ m{
% f+ e; U2 h' E DWORD nId;
8 `0 i; _' s6 R int nPart;
9 p# M! x8 d( i' ?/ ~' ]8 W
9 h# F7 W |. X ar >> nId;
# @5 h: S0 F& v% ]4 O0 L5 E2 P6 p. x ar >> nPart;
+ n+ ?! D6 K6 K4 A ' i9 E+ v% z3 k& A: C: j0 ]( q% C
if( nPart >= MAX_HUMAN_PARTS )
9 ]& ~# \4 e+ w" i return;" P8 W' ]% F' O3 T1 v& D3 R
: @# T$ l. w) m _
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it# u$ ~/ V% g! u0 d1 J4 Z c
% @% P+ B0 H3 [# n0 `
$ K; d0 z( Y y; R
Code:
& |5 L5 ~& F+ m$ \% \#ifdef __QUGET_SWAP_FIX. U% j% l0 q/ m4 A# Y
$ ~. ~ J7 n3 F% i if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )6 i: ]: E6 T* T# j9 n5 L% v2 x; V
pUser->SetHitPoint( pUser->GetMaxHitPoint());
% s" r0 D) _. X5 U- }1 U: F' ~. ^7 X# g2 Q7 ~
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )) c* u7 c( x. d, e
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
( b/ \; {) e1 B9 _5 {5 }5 l* q" _
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )3 P: [& W1 @2 z1 t* s
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );9 Q9 R4 Q- [' R N( L/ o( M* t
% u8 ?% W- I" Q- ~0 k#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
, w6 ?# Z/ J: W' @+ gand add under, ]* r. g# E' {! e3 `: q
# N I" r3 b- t7 Z8 t3 G1 T
Code:8 }. d& A+ t6 [. ]! [
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )2 B: @. R! ?# _$ l; }
{- G1 W! l3 E% |6 R
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 );
' R; P' V& Q! _1 i6 j7 ]. t; J; T+ F }this
5 ]' b# S2 m% P6 X2 w4 M* ]$ `! @: n0 D o8 H0 \- v
Code:# F# R; Y& B/ p# F
#ifdef __QUGET_SWAP_FIX
: E% ?8 N/ l: S$ j$ V3 s7 I9 X. k if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
3 C# z( W$ g# b pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());. X+ |$ l6 {' K9 i5 I
# ~& g {; m% x& J( K
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )6 W3 Y" S8 V1 n
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
5 k! [9 I2 U. S) S8 O7 I5 p Y+ S* p8 y
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )5 @* K# s$ ?0 q1 J: d" n
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
: M% Q6 S1 E9 p, ]1 b6 X# {
5 u; D) A# G- ^! `! C; ?#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ; P$ u# A/ A! W0 P. @; b
2 J) d; T# H$ h0 C( k% C8 J; U
, [5 P; c. D; M) c
|
|