|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked & _ p& n# f. p0 P# ]% T7 R$ l( j
I posted this because someone kinda posted a youtube thingy about it :O. B7 P: q2 H% E2 @, e: |) ^' \
+ R, x% C4 v4 e5 oFind this in DPSrv.cpp @ worldserver
" u0 @$ s$ r/ I3 y: w, v! d4 i& ^' l3 a" X( |2 c+ m
Code:
# Y k7 F' f4 kvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
2 K7 d4 c2 W1 R{/ c9 f, Q( T& L; B
DWORD nId;# P9 K# T; I* [. C6 ]. e$ S3 V
int nPart;# U' {( ?7 _; V8 B* ?" S$ v
* N3 F1 `( y/ T ar >> nId;+ X+ H8 Z6 {& a. i9 ?' y
ar >> nPart;
0 }% `( p' ?) c! M : z5 y3 ^2 f+ x
if( nPart >= MAX_HUMAN_PARTS ) 9 ~4 Z5 c. D) W5 ^$ c( z
return;
3 b! ~0 c" u) V; j& f% S* Q$ D' {$ w# l+ M3 n
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it' J) m3 u7 C `, |9 @- c
2 V" O9 R( c, s+ e n# c& q; D5 v
$ d" v5 S9 e! v/ U& I5 hCode:
! _* Y5 Y9 K' N w#ifdef __QUGET_SWAP_FIX' s! U# p1 P& [
, M& T+ R0 d# c( u3 B. X" Q: M5 k if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
6 r: P! n$ s# o' j& Y pUser->SetHitPoint( pUser->GetMaxHitPoint());
$ Y3 B% j! o: ~! K' Z* X' Y7 F5 l/ o/ s) h8 j( j
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )9 r; f$ Q7 ?; Z7 s6 A
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
! k, W" H* R( P) C" M( s1 L
6 |' D& S( x3 `" V3 ~ if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
- l9 D+ S& }1 T pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
# o3 C, Q$ w4 P
4 k5 W' e+ p+ x: j#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
* @& v5 a) Y( a8 a1 _0 _) hand add under
+ w6 J! F2 T3 N$ Y7 g8 U/ p% Y, K1 K i1 S$ j/ ]
Code:9 F$ p" `& U6 i( p1 m
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
/ j0 d9 _ P1 i: W/ [ {
' N$ T P( v! 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 );1 D8 ]8 ~. A) H" |
}this
" i- N1 E6 U$ P9 X# ?5 _- {
5 ]! K6 A: C+ f7 p0 MCode:& Q' V5 B) C4 f) j
#ifdef __QUGET_SWAP_FIX1 t: x% ~; }9 g# W7 O. n, i
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )8 s! _, | X4 f/ [
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());& ?. | C8 R# e$ f3 ?$ ~3 b4 F, D
0 l. {+ h' I$ X1 P* ?. t
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
! V$ `% V. N4 K/ |& S pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );$ V) E: ^1 _" j
( w/ }- {- o2 `2 |
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
# ?( X" O# o# o pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
; B2 M9 K/ }' y$ q5 N
4 A1 @% U: S0 ]/ p. i' _8 M, V#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
6 Z" r: x- D7 x8 s% ?6 U& {; u, i7 I6 O' D6 v$ I0 O7 @3 _# i; {; p
+ A: ^$ J" f( a; ^
|
|