|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
6 i# j4 r1 a8 p8 E, GI posted this because someone kinda posted a youtube thingy about it :O.
( o% z) Q; Q3 b0 f7 a" C# d5 J2 k+ Q- S/ _% _
Find this in DPSrv.cpp @ worldserver) |! {# u; u: C9 t, |! e3 C, \. @
& |4 u" T( p( T- Y% nCode:
' J$ I6 c6 B9 f1 qvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
5 x |$ ?* ]3 ~/ }# A{
# w# _* ^/ P- s" B( A DWORD nId;; [. _& n- N! v6 Q( l7 g- Z
int nPart;
( ~3 a- n# {5 e7 q8 n
9 h. f& k. n6 k2 s2 | ar >> nId;% f$ l( Q; P5 T5 u5 s
ar >> nPart; 3 O, u* t" Q) F! _6 |1 P
$ L2 g5 L# ~: F if( nPart >= MAX_HUMAN_PARTS )
: Z8 ?) R7 T4 I! T0 d( M. J return;
4 O3 b I4 z7 y1 [0 B& ~( F2 v
3 S* W) |( l: d CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
7 P! G2 ]5 K# t3 K- d7 [- W8 B9 D' I% J# E$ P8 p% d
/ m* T1 C+ P+ u/ A. q" m1 ~! ~4 \5 @
Code:* f9 G; ^6 ]) b& @, ^
#ifdef __QUGET_SWAP_FIX/ c: Q, C F) M6 s! H
/ c; p2 L8 O$ J! y$ k- \# H2 i$ |0 x" z if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )3 M. s* C8 [6 Q0 \' b4 ^
pUser->SetHitPoint( pUser->GetMaxHitPoint());) T A9 T; x4 O) }7 Z% } S, F
* ^+ p2 c% @! W7 @: c. F! J
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )' ~4 C1 _7 w! x7 `& Y5 @" n
pUser->SetManaPoint( pUser->GetMaxManaPoint() );0 Q1 K0 ]1 o5 X: i$ x3 x7 S, J
( o+ s6 p0 z z& C" @: G if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
% t; ~( ]1 g; e0 S; p/ T! z pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
( ?" H4 C+ f- J! ]4 c7 d+ D
; w) `1 a6 [. ~1 G, _#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp, c" ?2 g U: x3 G/ P
and add under
. Z$ _+ z8 x! p# |- [9 L
' g6 M8 i# O& k# S& a" UCode:
. J% g+ I; ?. S) s5 S/ F' q2 lif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
+ L- e* v W4 X, l {* v$ e: u& F0 A- }+ f( ]# b' }0 e
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 );" f# J; C1 v% D1 ^4 {4 T' M# W
}this
* U2 B4 A. G: [# t% a' i+ X
! S% u" g# l3 x7 fCode:
) z# U( ]* r+ S#ifdef __QUGET_SWAP_FIX
y) T: h* M$ [+ ~, G8 f7 w if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )1 P; J/ @3 ?, f4 |! w3 Q
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
/ d5 P& r; m7 q2 n: u, Y. K# Q6 h8 B
" Q+ J- c( r( p( t0 g# E. D if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
/ N# n" L7 C5 _" I: ^3 X; m+ v7 l0 M pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
* \" x6 Q9 j5 M3 c; [% M
% l6 h5 {$ a+ M; @ u% b$ d if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )4 W3 q2 [9 S% ~4 Y+ I3 `
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );5 r8 ]6 {+ [) k0 c
4 U* e5 p ?- x* B+ l#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver / _" }; m: h0 ~- Z7 W2 Z( c
2 i2 x( f- h6 b. W3 S9 q3 O* r2 ?$ P3 \- j# e
|
|