|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
9 _# u) F: w; Q3 pI posted this because someone kinda posted a youtube thingy about it :O.
( r# T+ N/ o0 O' @/ x8 b9 _. O; b' L0 q% C1 a( h
Find this in DPSrv.cpp @ worldserver% ^* U& S* s$ p4 V3 D* A
0 y2 a7 P. N- I) `3 j0 F
Code:) ]8 I( Q* p# [# F. l
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )- r* e# e* a- G) R1 U& k. a$ X0 \7 {
{
3 o3 Z& ?7 b5 k2 \" J DWORD nId;
4 x5 ^# V- D @. r7 h int nPart;7 r! l% d0 m2 m
4 I) \9 |: Z" _. r$ R3 Z7 w5 c v# | ar >> nId;3 U% ?; U7 \# Z* Q5 d+ Z
ar >> nPart; . I0 B/ I+ h& f! ^; d3 j
5 j- t4 C( r' e" I! ] if( nPart >= MAX_HUMAN_PARTS ) " T |9 {% W- d& g9 E; G0 r
return;
& [% i/ W5 p1 b; J% I1 q0 l1 {9 |* w* Q i4 \
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
' z6 Z8 i- l5 y9 R% t( N' R/ `+ h o5 m9 t1 g
! Q5 C0 x( g% H( p. p3 x6 ^Code:
" I0 d( R/ r5 a T0 l) W#ifdef __QUGET_SWAP_FIX
- u4 }. k2 J* K$ |4 h& ^, a1 F3 t
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
, R9 S3 r3 y) z! s/ ] pUser->SetHitPoint( pUser->GetMaxHitPoint());
* d) {- Q) A8 A( ~2 G5 |7 [+ f U0 R7 v- I3 h
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )% D8 @+ i5 w6 ]
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
- c* `6 Q6 e. d. S' S4 s2 q, t& y! j$ Z4 o3 N' }8 C3 B+ L
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
, a& H; k- N4 ], m% P) E; P# c pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! ~0 @2 @5 C+ |' d
5 C! B; f, {7 ~# y- m, x& Y#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp% a8 c) I% x* O' ]) A
and add under
! k4 U; q+ n. S* G# N& `3 I2 P
% F- _; c2 t6 Y8 qCode:
9 ]6 v9 }3 J; u2 @" m8 ^( d: Bif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )$ k" n% u3 Y% H6 ~+ J, r
{
. k5 g5 }- i9 G7 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 );
: |: G7 m0 D7 h3 h8 }7 a& ~! r }this
/ C ^8 V- A( p; @
2 u/ b1 U" P7 N: G7 O$ VCode:
# w |0 r3 \0 D' \5 T+ K& y" [8 Q2 P$ y, W#ifdef __QUGET_SWAP_FIX* p. F @, G j$ I$ q
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
2 l f5 J, T* W+ L/ d+ p- E pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());* s' V; W' G! r- e+ ]
4 Q4 D4 l w) }+ C, M5 h2 x if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )# s8 R$ ]$ o* U; f/ U0 s1 `" p
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );5 L8 E* B7 \( O8 _; K" G& K9 o2 c
( |; n+ F; v9 `- q. W. f
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )0 S! s9 |2 u: D
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
" B4 E% A9 w& e! X- n' E/ P1 w& \8 C9 D4 y
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
/ q1 j; q# u" }0 S+ O+ D/ `/ P y* K6 G X+ @* E
$ V# g1 m0 Y2 ^" a: n8 p9 X Q |
|