|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
& n D- m$ U. \I posted this because someone kinda posted a youtube thingy about it :O.
3 F5 A& h1 D8 c% d5 E e/ w+ F: I9 c. R& |% d
Find this in DPSrv.cpp @ worldserver" H( N( I: t; L/ O9 U. |
* N* `7 e; P+ k: V vCode:- M. ^; @' [( T% }& V Q4 v
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )% p& A, \" _3 v- a) T, k& W- s
{
! P7 N0 O& z2 [ DWORD nId;
w. M. Z0 }8 I, Y1 K; P* ?: e int nPart;
U: Z: f J( a. O, g. k! _( b; M: t( o5 U
ar >> nId;2 @& e1 S4 v0 E" R% ]2 |
ar >> nPart;
, z. _6 D; A! K+ F
- n1 p5 s+ O/ S/ Q8 Q( C if( nPart >= MAX_HUMAN_PARTS ) ! I" L$ T0 M! t( N6 L2 q
return;4 }$ t5 v3 [ I8 c0 r
, x; I2 k% B2 t8 V7 b* o* q CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
# I T9 d; Q" f" ^
* ~* F- T5 Y* r. V
! h( Q/ ^9 O2 r+ M. Z+ ^9 YCode:5 e: ?6 `( Y- i b4 l8 e, o
#ifdef __QUGET_SWAP_FIX- u0 o3 R R3 Z0 _5 H- h5 ] C& u0 R
$ Z# i9 c7 R2 a' _' @; B if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
( B, g5 T( a" n n7 z8 O. ?/ |1 N3 r pUser->SetHitPoint( pUser->GetMaxHitPoint());
8 R; f" _4 Q% ]" ?
; l3 U% W5 _3 h4 | if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ) `3 n* g, N; i, R7 ~# k* E+ y
pUser->SetManaPoint( pUser->GetMaxManaPoint() );9 V- F9 x# E% |. f; l
) ?, C% j2 v+ v8 P if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )" K5 C8 O e" x& g ^ H: @ G( f
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
2 u* h2 x/ j6 D) W* A r1 E' Y1 ?9 C2 s9 E: o
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
* X* W' f; G: cand add under7 |( _- ?5 z1 B {' g n/ \7 ?
$ b7 J/ Q* c, A7 g9 b3 Q$ jCode:
0 T* G B$ i' z( N" j4 Q5 mif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )( C. K: l/ w [4 O+ j7 O b) y
{
- ?7 o* {3 t! Y/ ?) B 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 );4 ]* A6 J8 v' @4 Y8 Y9 ?- l! C$ z
}this9 ]. g2 C6 ~! c1 \
. e! k1 X6 Y' D+ r$ ^Code:
& C5 `$ ^4 \* z( [0 r" |#ifdef __QUGET_SWAP_FIX) A! e* d. W3 M4 p, N9 E
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
: e3 Q$ t) F0 c- |' d pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
2 l; ~* H7 v; c) v8 [+ f. ?
7 B. p% A4 Z. R1 Y) W9 `7 Q if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
, M6 X/ j6 u8 ^0 i pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
3 h2 f4 `. t2 O3 b. c+ e) ?' C" t1 K0 c4 m
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
. X6 \9 O; g) K pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );+ `6 V) ?( s; \2 x
, \- F: S+ S$ M# a4 d#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
* P4 }: C6 X/ N$ r' P& s% \, L5 k& n! F" Q% T# @
# h6 f/ P2 F3 L' H Y |
|