|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
* N. x. I) I; V5 VI posted this because someone kinda posted a youtube thingy about it :O.
2 V' A7 L9 W5 K0 B9 [& L# Q7 }! ]8 n ^5 c5 u4 Q/ ^! j
Find this in DPSrv.cpp @ worldserver
5 R4 G- i/ v4 e4 q% ]/ m; `
# a, S5 N) r" DCode:' Q$ K, D& w5 K# N
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
! k. k& j/ y3 S7 U* ^/ N{5 }$ A7 [% Q4 y3 v% A
DWORD nId;( j! S, I0 P2 f. q! Q! I
int nPart;
4 \4 f$ V, N% @6 x/ H8 B' ~5 F, n/ y# P" q5 K! J% X$ ~+ ~& J1 j
ar >> nId;0 H: ? k( e' K' U
ar >> nPart; # r+ ?" t1 |6 `& }6 H
) J* A0 ]8 z4 \: H4 k if( nPart >= MAX_HUMAN_PARTS ) # z" p6 d/ ]9 B0 I
return;* x h+ _. n$ h! q. g
/ C% s) P# v, J8 q* A# `1 g
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it( v5 Q% E$ B0 w8 _" {
0 u; Y" }4 C$ d* e3 t3 @, l5 d7 n
# H; k5 F: M! CCode:6 {) v1 x9 k! P$ F- w; V
#ifdef __QUGET_SWAP_FIX+ @/ ?5 e! o l; i7 _/ j
/ H- B! i) z: n6 A: x if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )8 F" _8 b# H4 g7 I
pUser->SetHitPoint( pUser->GetMaxHitPoint());
# m0 | k1 Z/ l# k( _+ {
" e1 G: ~* E( m* d' \ if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
# s+ I# n) z. o8 a" r4 i0 t6 j pUser->SetManaPoint( pUser->GetMaxManaPoint() );
3 a4 ] Z1 x- Z5 x' Y. b$ G# A+ H9 z7 `( m, T! e
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )7 j2 ~, c# v$ g: c" M
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
; Q+ G1 }) i7 u4 F9 @7 Z* ^2 f! {9 b: ?! T# D
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
, B1 j! |4 b! e8 q/ S% e, yand add under0 _0 X6 P3 f% \0 _0 L' A2 y
' w8 j% K4 f0 G8 s& mCode:
* ^- Y+ S" y; {9 rif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )* S3 L3 p8 H# t* ]- E" p Z( `
{( S! q& Z0 s: r* v6 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 );% ?% m) X+ X2 T
}this
6 ^9 |" p% C5 {9 R) Y
" W2 }% @5 C' ]6 }4 pCode:# V) c# \. L" _+ v( a
#ifdef __QUGET_SWAP_FIX( t/ ]- F, B7 n# @- t
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )- m. F& N w5 W8 ?) c' w
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
. r; y% y; z& D, W x; B9 E7 j* F
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ): D. _3 x9 Q9 v, v0 N9 p0 ~6 s, J
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
2 Q2 {/ i1 p( e7 H5 q# c* k) `4 V& C |6 C9 \& X
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
5 C- X5 {! U. o$ ^. a8 b, [ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
/ H, k7 S( m0 t1 q" N1 s M0 t/ O) ^* F/ F! p$ L
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ) Z7 d) I* }% k" a( c1 S: Y
& j# O4 p9 t+ I& O8 o
( b# O& h0 _$ [; m( m H
|
|