|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
! K2 B2 s! j0 `* i6 }2 ?9 wI posted this because someone kinda posted a youtube thingy about it :O.
4 d( K+ v: F# V" X! M* Z1 R$ \% Y
Find this in DPSrv.cpp @ worldserver
8 ?( s/ E; J! h _) t3 g1 f W) b. e
Code:
; N- a8 ]5 I. v' O' ?void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )* y3 {& x; d: V+ Q2 @
{
h( Y F- e# c+ o! U* Y w/ y/ J DWORD nId;
0 l$ g( \' T( s, H; }& R( L int nPart;3 ]' Y0 Q* N( k- y: ?% G2 n" Q
: P. N8 R. b: ^7 D: L0 ` ar >> nId;
" D0 X% p" j- u- f( g$ ^ ar >> nPart; 5 Y1 Q& V5 |( R( F* T* s2 Q8 h3 R
& Y$ F. J6 c" {0 y5 o& R if( nPart >= MAX_HUMAN_PARTS ) 8 d- s' v, ^& |3 G1 \
return;- A( Y3 |4 {/ ^+ p. G
0 ^3 W& i: |( k$ |, @; [% ` CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it- N4 N0 `, t9 V, h0 R
+ v) _. _, h# s* O" U3 N+ w- K
2 Z, f2 Z; X3 W) P. \2 O5 `Code:" c- P9 F7 a @+ c! ?3 B' q
#ifdef __QUGET_SWAP_FIX% R4 w" r l0 ~/ @
* a4 F! J- T3 e$ U6 h5 Z0 U6 t
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
. x- E, s: C2 v# _$ _4 Q pUser->SetHitPoint( pUser->GetMaxHitPoint());
' v+ r. ^$ J: v6 O6 C& K- x+ e5 Z- v" G! I v, M n3 X6 ^+ b3 m. h/ l. m; f
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )( i/ O9 d5 y2 W6 g4 L Z3 o
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
$ \' H, Z) U; p! K! f" }" U6 ^
3 M" A d0 j& w, m if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
% }/ \* p& y) ?' } pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
. o1 c) @$ g6 z5 Y/ i! k+ E+ r* J$ \* y
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
/ P+ L* ^ C8 b1 s. R1 ^and add under
5 m1 D% ^/ y1 h) g) h* u! E1 `: T/ w; x; p7 z, t4 r
Code:
6 J& } g$ j* s% _if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
/ u) E- O! F. @( [& r {
( p; k3 F6 E7 W& c" s 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 );* V' H' E. |; W6 a4 t. v) Q
}this; s: |2 G; z: m$ h
- @5 B+ J' [4 u+ N/ d8 P8 F) gCode:+ T2 }: x8 Y8 w. t
#ifdef __QUGET_SWAP_FIX9 n- \: a$ l1 x7 F4 @
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )4 l6 t4 _# e9 c7 v" ?& u* R/ k
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
* l. c! J, n& i% B2 y' |% b! S+ |9 y% A# A
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )$ ]1 R2 @/ P: e% v
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
" b1 d/ ^% Y$ X4 q3 H5 `* W9 o1 x: C
& g+ O' X3 x- b% y2 p7 q; _8 v7 a if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
/ G7 G8 d4 u+ r# u4 z pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );3 v$ |1 L6 B! P2 W% n5 x
1 O8 R- R+ f, M" U1 v* C#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
* h3 k( w7 T& ~3 i, f- r
* v8 J* P( f1 `* e. U: y( Y
0 y/ H" }1 ^3 |% R- N |
|