|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
U) r- {! p' P8 \! pI posted this because someone kinda posted a youtube thingy about it :O.
& N0 _; ^9 S5 y* O9 E( I l+ h& R' x* b
Find this in DPSrv.cpp @ worldserver
6 F1 x5 `3 `% {+ l8 D4 w
* v8 l. U# Q( p3 I/ xCode:$ V" K: Q' }. {
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )3 x: I; X2 Y5 i: a7 x
{
) t( ^- J5 o6 M7 B$ g: z2 e* z DWORD nId;1 \8 |0 ]' ~( v# q7 p3 k& X
int nPart;
" D5 C3 r' u; F# q- X; _& Z& l2 u0 v, K7 t
ar >> nId;
/ U& j A( K+ V1 u ar >> nPart; 5 x3 f) R; e/ l& r. e$ M1 s
4 c; h& x1 c3 q7 A3 N, S if( nPart >= MAX_HUMAN_PARTS ) 8 W4 B% ^3 t4 l" N; ?7 E) s8 P
return;
: I3 h0 A! Q" n# o% v
+ X* e) Y9 _" o, B+ e# x& K1 } CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it, f1 k+ t3 J2 \
- x5 K. `& f% R
# i% f* q5 M/ b0 R8 k# ]3 a
Code:1 [( _# P1 T$ [( _" [
#ifdef __QUGET_SWAP_FIX% T0 ]. Y" X& O& C8 X5 ?
- e+ z7 p) d- G! W; O, g% R4 N, n
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
: ]. ^6 e9 o4 ^ pUser->SetHitPoint( pUser->GetMaxHitPoint());" ]# a7 b- J1 d* w
5 Q6 E4 a& |7 @3 W( `- I5 t
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
) R& r1 r; X5 Q6 R6 c3 G pUser->SetManaPoint( pUser->GetMaxManaPoint() );. U# l! |. D! k' @
* x, s, |1 g% z4 s
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )" o, H, `& U; m4 H8 m
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );+ k, |5 \* `+ p1 n
3 U* t% I) @; E2 P7 b% u2 }. \#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp+ z* C$ e& Q5 I/ x6 p; Z* \
and add under
& Y4 f4 a! E' I+ ]) q
' Y0 e& ~9 d2 D; Q! gCode:
. f I% Q4 R$ b4 M( s& `- bif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ): r" _. ]1 U# a7 z3 `5 B [
{( W# Y( @4 o" \# T$ P
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 );$ w! g8 N6 k; `) O0 a# L( ^/ S
}this" [* I- A0 k6 V; O
0 T& p; Q! `* s- SCode:2 v1 C/ i' ]/ l, V! a
#ifdef __QUGET_SWAP_FIX
7 Z* V/ T& }7 Q( Q. _6 A if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
! g* g* n7 o* Q pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
8 d- \6 y- D H0 ]* x g( G; R; t8 \$ ]* \
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
& e c4 ~9 n4 j5 F) p! S+ h pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );$ _/ z+ s) c1 p$ R, N4 H+ H( `; G
7 n4 q# L, [; F. K( n& }
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )) g6 J9 K" W1 R6 l$ j; D
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );: U7 p. R. M( z" h
% C) m1 |, u7 @
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
7 w8 G0 o# M% e/ }6 D
) H4 _5 N6 P+ m3 |, v5 ?- U: Q$ X: u* z4 X% h b& X4 |/ x
|
|