|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked . G# R) j# Y: T) b8 s
I posted this because someone kinda posted a youtube thingy about it :O.
( C ^" ~/ S8 F9 N: p: c% U
0 P; z% D( {# O% v5 g. pFind this in DPSrv.cpp @ worldserver! A, s1 p# K* S
3 n G6 d5 J: b
Code:7 \# F' Y, I! e6 K" n2 A4 d
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ); f2 ^8 {! _$ N6 L7 X
{, Q! u# ]9 G$ {9 e
DWORD nId;
/ X6 a- c8 C% Q3 N0 l, i# K int nPart;
/ O, O5 r% N5 L- K
2 E1 E* d- U( ^" m ar >> nId;
" P5 d% Q( S, x! k" U ar >> nPart; , e4 Q+ a, P2 ?- q' o5 M0 S: u2 _
- k* l. |% j' G2 X
if( nPart >= MAX_HUMAN_PARTS )
, j* l/ u. E1 N; ]; l2 Z3 { Y return;
, j- Y. F0 d$ l+ G# j3 V
% y- k/ X" H8 M+ t: P CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it6 K9 I" ?* M5 g* }4 K
4 o7 {0 p8 p8 o5 M9 k) Y" ~( y8 ~9 M5 n4 H- o8 M
Code:
9 I# F, [( l% [: m; ^/ q5 o$ N#ifdef __QUGET_SWAP_FIX
6 j( j$ R, P$ f# m! Y+ [$ W# s& T
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )+ W7 ^) i. ]9 r! A3 I9 f2 X
pUser->SetHitPoint( pUser->GetMaxHitPoint());
/ [# i; ~3 Z. G% ^5 P/ c: K) R! \! |9 G! X$ g4 r
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )) Q3 H3 `& E5 f1 `, R. ?* Q
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
6 |/ r( j: \( [6 o2 E+ Z) R g0 U3 d/ N7 M- O1 _
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )& |" J/ n1 R& [! Q
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );3 I$ C" h. P4 M8 {
. {1 ^+ M1 f0 O Y& P
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
/ a0 w! A; l. m+ nand add under1 p& ~* p& U, F: h& n
, A6 d9 c& M f9 q) m
Code:
8 g8 L% ]% ?$ y% M& H: Vif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
2 K9 J9 z. |3 ?5 _7 l- a0 ?# B {+ U- F- X2 T/ G2 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 );
. m4 G& j$ c1 [: j }this1 b, M s$ n3 ~ r* J2 F
. O; v, Q# X5 X1 E( q& \Code:7 T8 X4 G% r9 J7 k5 o4 ]* b
#ifdef __QUGET_SWAP_FIX
- s$ \4 K( W5 F3 f/ q, x/ } if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
* w1 t, ?$ g" X# N pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());" a0 T. W7 m* j7 X9 q- Y
( P' D4 `7 Y& l/ z8 ^ if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )' z5 D `$ i x, f4 ?0 I
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
- f: V$ \& L/ N1 c5 B0 U/ Q4 N1 m+ z) f6 J
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )9 K y3 v6 ?6 C5 ]" s
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
8 u* z: X( Z6 z( w8 n$ d. m/ M; |' [ P! M
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
# i- R7 c) {8 f3 p* A& i+ _: i Z" C/ E! }2 Y' P2 U
( X/ C, F& @2 q) ~ |
|