|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 4 _6 w$ W1 H, v0 }
I posted this because someone kinda posted a youtube thingy about it :O.
1 e) n" p+ Z& _% Z0 r5 Z1 h {- Q$ Q
( w0 J* n8 l! SFind this in DPSrv.cpp @ worldserver/ Z" r/ _6 N' U5 { V" F
, [; x& x! A! a4 w0 B4 VCode:# e9 Q" C; i9 F
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )! \- I4 P. ?$ @, Z/ k. S* h4 S
{( T: h! X+ r) |5 M/ P) }: s
DWORD nId;
1 f4 u5 k( `: y3 x5 P int nPart;
9 S4 ^* n. h+ K* S
- W( C# e9 @; P ar >> nId;4 p; W2 R5 e8 }2 D- |, l% C
ar >> nPart; 4 C( ]- q$ P \2 q4 q# h: U
7 h ]- [; z+ Y: S6 B# Q
if( nPart >= MAX_HUMAN_PARTS ) 9 S; ?. |) R. P- z5 k
return;
! y% f, r; z, Y+ u0 ~/ _% _* I+ k5 n X1 q, ~
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
6 q2 w# T2 j, H n/ d
% R- V5 E" q. X3 v" t
1 t% Q- W* R- P# b7 ECode:/ o4 ]* q! J- C' j) B
#ifdef __QUGET_SWAP_FIX( L7 C. \0 p5 P: q; R
9 v0 z9 _ e) B7 A \) Z' D8 c8 y
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
/ o. p- r; A! h" q pUser->SetHitPoint( pUser->GetMaxHitPoint());" C! i+ x6 x) J# \+ A6 k
( P6 w6 o- e4 g+ o& v
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
3 J1 K( o7 r8 b. |& n pUser->SetManaPoint( pUser->GetMaxManaPoint() );
7 H9 P$ C7 Y$ {+ b! n6 i+ m
2 E9 Z7 X9 v- s# x! B/ B" ] if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )* }0 ]' b& f; y& y
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
* r- Y# ]$ ~2 E
8 ~4 B3 |% y& {" O. P( \2 z, t#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp3 W8 V# D! v6 n! ~5 {$ N
and add under. u2 y. z- E- a" \9 j
- S7 m0 X# C( Z8 Z9 pCode:1 O! H; a* q4 v* O/ l9 C- I
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ), A6 u% S" p$ c3 W- U, V! M- ~( J
{6 O, Y3 M6 y- J& W3 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 );% K, M O' F* y( `
}this2 v& w0 Y' K) Z% W$ a# q) a6 u
' X* W( q4 a/ n k7 e. `, sCode:
9 ?3 _) l0 Q5 T) H5 W#ifdef __QUGET_SWAP_FIX
) Z; u& C( G5 J& Y( _2 o if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
2 Q, C5 Q+ V1 b3 A, _ pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());2 O3 s; H2 @6 ^7 q! z5 u* M8 k% F) f
& {! m1 d; c! ^0 R* d2 N0 A: Q
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
7 n: ? R! C8 i! ^% Y; i pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );% {$ ?% u7 u4 D" C. c
1 k9 s J. g7 B: [3 t8 E0 e- \ if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
`/ P" W+ K" B" a pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
9 [( Q7 u' A, L' v5 |% W; |
) K0 N0 J) K ^' q. {" j/ }#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
$ S% t8 J; @0 F' U( O& J9 U+ p: w% Z% j) e4 X
% Y! J1 s9 ]7 }" k0 y; U: k5 l4 t |
|