|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
3 z* N- k' ~8 u9 O3 ^I posted this because someone kinda posted a youtube thingy about it :O." z0 _% O; ~7 t& o9 e
7 }- A5 d! Z$ {! {, \# n& mFind this in DPSrv.cpp @ worldserver! S% S) C" H- m9 `$ {1 D
" _1 E7 [" G6 ?1 @0 b
Code:/ t+ |9 n2 R& |
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
0 ~1 E, A; Z1 [" e6 S6 G{
& K$ ] ^0 E ~4 a5 v/ Y+ Q* a DWORD nId;
5 U: `' D4 y7 {' R int nPart;
6 q; X5 k' B3 T' |7 D% p v4 N5 W
) q" o( h. @7 F' P: \5 H ar >> nId;! p1 ~$ A3 \ l: J
ar >> nPart; & d, k) p6 m4 Z
, x' j* i$ `8 M. s2 Q0 w% u& d# o9 [
if( nPart >= MAX_HUMAN_PARTS ) . y+ V# s5 \- Y0 u5 H% q" \
return;6 l7 o/ p- z8 V! N, v$ x2 T/ O
5 Z% x& W& a6 @. q) F" o1 \5 X4 A
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it5 M! ?3 s! y4 a, \& u5 v
8 ` U2 I: W, W- P: K+ c' J
- k7 ]8 T+ Y: ~6 r6 @% c! hCode:
% }* Y9 `% r- l5 s0 H3 U7 I8 f& z#ifdef __QUGET_SWAP_FIX
4 l2 D7 p+ h6 X6 K+ u4 J( d( x8 j2 t
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )# F# D7 ?- Y9 q3 C0 B
pUser->SetHitPoint( pUser->GetMaxHitPoint());
. S5 T& ], |! t4 I+ H! `5 e8 t5 d$ k8 Z* E4 m C
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )% r/ V9 I6 [4 S6 i ]
pUser->SetManaPoint( pUser->GetMaxManaPoint() );8 v0 W a, \8 C4 n3 M
! j6 X9 o0 p# F" Y
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )* a B& ]+ b+ ?9 e9 E$ R5 L" c
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); K8 v" {9 z8 \3 k) D& Y" \- h) a
8 h' G" i: e5 V4 B
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp1 n0 x5 b5 w2 i9 L$ z& P
and add under8 h, X! D/ W0 N' X9 V
# p) W. D+ Z% X4 N9 F( O$ b$ dCode: E* H0 Z/ D7 O8 N6 h T
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )( d2 {+ t4 i9 F0 A" \1 ~
{
' X3 ?6 |. s1 _) {/ y7 v 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 );5 Q" C* K# Z) r1 s2 w X. C
}this
- B2 S& i p% \% D: _3 c' X+ [: ]- L* t' t
Code:
" f$ W6 g5 d) u* J#ifdef __QUGET_SWAP_FIX
& Z$ R% L" I0 j4 z2 J1 _0 z if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )+ F- J w2 Q1 F* @: X
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
: ^$ v; i% R( N; A3 Y" d* {+ D5 l* L# Y( M2 ^8 ]/ @
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
1 C B* _6 \& S4 o) E pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 k4 g/ s2 S2 r2 d. V
7 Q% G% n _% A& ~2 N2 y" m/ d if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
[3 [. |0 Y' s: q. E$ p pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );$ N" N, E6 y( Q0 U
9 o/ P) y z+ D2 z0 f. b! B#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 8 n+ L S# U# m, l0 y/ o6 R
3 I: A: I9 w( ?( h5 q% K' Q: Y. y7 o7 O3 i
|
|