|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
0 R9 U$ n& i1 W4 p$ ~+ GI posted this because someone kinda posted a youtube thingy about it :O.$ _: {2 G, C, W* _% G! N& h; I% i
9 G& t4 V: [& B! J! p! q& o2 `Find this in DPSrv.cpp @ worldserver# E7 S I7 T: C2 g5 K- o( r
J/ _0 _9 [7 RCode:
6 u' h8 R5 B2 M \void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% W) }4 p/ [- A3 n- [! S{
/ n+ i i) \7 i' N DWORD nId;
9 E9 f; c3 q, x0 ?6 v3 F int nPart;
' B% L9 j3 I0 R! x8 O9 O) b% g# S& u$ _$ p
ar >> nId;# L" R! b2 x$ ]) j) X6 X( k. ?" U
ar >> nPart; # _+ m0 c% ~; Y6 J7 V/ s
1 s0 _5 a% t8 z( n! d if( nPart >= MAX_HUMAN_PARTS )
4 C# N! ^5 V2 @6 w return;
! h4 _- R9 [1 B6 f
/ w. v. d! V% V CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
6 ^; A6 i8 s% ?* f- _5 Z+ x: t3 o8 ^! [1 [+ R) s0 C( Q" L$ T
# h$ I) v1 w4 Y
Code:
8 w' c7 ^- w4 ?) U#ifdef __QUGET_SWAP_FIX' B# \: F( E2 ]
, w9 V8 d8 e7 {5 C
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )" j: g2 W9 J0 P6 l" U( V& N
pUser->SetHitPoint( pUser->GetMaxHitPoint());7 t1 n8 c b, e+ N% c
1 ~! T: M$ Y( Y& D- O; s$ Y: k if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ), s+ h& t0 ^& n# P7 L
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
8 A( |% J! G8 j* Q0 s( }% O$ X5 |" P7 S% I1 `
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )9 D& L6 s* n; t1 J! ^. A
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
. T& x1 E9 Z- ?
/ y( u; ]# k7 d5 L' p#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp, q7 Q6 i. E- ~
and add under
3 J% E, X7 ?" r9 P& R
P- U" p, @) f+ W3 I+ V. _Code:
7 ?! r1 G4 d6 I6 {3 l$ W8 cif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
* n+ c" c$ L. g3 X0 p' j. j {
% j6 J8 ~% {* q6 ~+ M h8 j8 N$ H 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 );% g" O x! V! ^7 z5 M' j
}this" Y. L C' a; E' o
" h/ e4 j9 O2 w2 C! iCode:; H C0 f, L9 J, n; V/ q
#ifdef __QUGET_SWAP_FIX- `5 Y n) C5 A1 d2 X6 `. [' }
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )% L( b% W/ x$ Y
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());, q7 ~, Q/ n" H8 |7 u4 J
1 C) u# ]* l, P! o
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
$ d$ P* h' C. c, n( @0 q3 U6 I, w pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );# T/ d4 o' W* b2 J$ p9 Z
/ J) [4 c M& f7 E8 j& O
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )1 B: N" O# m' h; I0 M" _
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
. n( u( ~2 g% i K* D9 X3 J: t. f2 x1 M K
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver % R5 T% U/ o: P. R3 X
- v2 _; A1 m+ U; |9 D
! u# O# c) x, T/ e |
|