|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked # A: O! ~" @( z/ f/ M3 E
I posted this because someone kinda posted a youtube thingy about it :O.1 V6 R% C8 n% I; [8 K7 N0 C( s
" I+ N4 E7 D. W( MFind this in DPSrv.cpp @ worldserver- t2 Y: t; z# l/ [0 |0 }5 j6 w
' A% S+ o( a8 o: U. Q7 vCode:
- `- d3 _* A/ E; d6 yvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )5 f% \9 K6 W! w& T1 e# Q# M4 ?' F
{8 O. ~" p! T1 Y2 F" [1 W2 n1 f
DWORD nId;4 f5 s5 a% m5 s. j) Y2 u
int nPart;6 v/ R7 K1 c$ i2 p1 n6 V: _& Y7 e
5 t- @% |6 e. ~; a5 N E+ U ar >> nId;4 |" A# k# H4 ?( ]
ar >> nPart; / j' {" ?% V/ }8 A
2 X) f) |1 @! Q4 T if( nPart >= MAX_HUMAN_PARTS )
) @; y0 K/ i* l3 |. @; V2 a return; R+ H1 w& Q: ~+ d" u# [
/ H& a7 d: \; \3 H0 ?
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
" O+ C2 D8 S0 D7 Z7 |' h
/ ?5 _/ E5 R5 d
7 j& z( C- L) m- m$ q6 ?Code:
: G, Y) \# K+ C. ~' v- A4 ]' [: a9 E2 X#ifdef __QUGET_SWAP_FIX
* v$ f C _: D" H0 R$ \
5 T5 L5 r! f" A! e if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
# Z! ?+ P3 w) W! g$ { pUser->SetHitPoint( pUser->GetMaxHitPoint());
( v$ d* ?0 x. x: H; s- O, {; @. o0 G! i& B' j1 w
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
, d6 `3 |) t) k4 t# m, G pUser->SetManaPoint( pUser->GetMaxManaPoint() );$ f. R, |5 R5 v1 U
& y6 W; h3 _- V4 Y+ L( s. | if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
( a% I i& a4 G" c& H: p5 c- K' { pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );/ |4 O+ o" t) e
* n5 \7 g) ^3 l/ {, S1 [- Y( e
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
+ A( K" _$ n4 k1 j Dand add under
# y5 ^, I: h k9 V& C, u& r, @$ d* k `
Code:! l3 h% f( ^% C7 P k0 `, F
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )+ T" t9 Q. c5 ~) l% J; N
{! o4 D q0 p2 r C! T/ d
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 );2 `1 H. f) R2 v
}this$ l& h3 h( v4 C5 X
- F* E0 l9 x" U# [9 C5 r
Code:
8 F6 \6 v0 ~" m- k" g- }: z5 g#ifdef __QUGET_SWAP_FIX! U" S0 D- _. s e8 \
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )! }3 @! S! c% w' g5 W, X" _
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
% D, N7 A! \/ e6 I
9 |" Q( `2 Y! [0 T if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
( O1 i8 R" M: ]: k' Q, a* N pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
: X2 A0 f O- I' q+ p1 H$ P6 d, J S5 j* Z6 U5 u! {7 F
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
# e3 n0 V! n$ M$ K3 Y0 j5 t7 Z pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
2 r) B3 b8 K5 j* P" l! f4 b- Z$ `9 Z$ L# }
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
2 F j# Q4 \1 Q1 A9 T) Q! B
: I" [2 R. t# _! ]0 h
) ?: w+ u+ }& n6 g: O |
|