|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked # k" r$ {2 C/ U+ H0 U% m( e" m
I posted this because someone kinda posted a youtube thingy about it :O.
9 `1 V, z3 b- G9 J. E- ~% R0 W! v
: S2 \$ q! Y, I6 c fFind this in DPSrv.cpp @ worldserver. O) K) C0 C6 O& @% ]
2 w1 q4 b: c# QCode:9 ]3 M/ t7 X; z( d
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )- D/ B# n2 x% r: c
{/ b) i) ?' q# I- M
DWORD nId;
- _0 o: C7 m& I$ R: {( D2 P int nPart;
! K2 G i: E4 ~" [' X8 x5 k8 `4 U s
ar >> nId;) X& P! }- q/ T; S5 V
ar >> nPart; 6 v5 f. k" u8 F* ]
+ q2 e+ U; F/ B9 j$ \0 C4 v5 E
if( nPart >= MAX_HUMAN_PARTS ) 2 {9 b8 ?- C( Q' x* _. l7 v2 O
return;
1 _# J2 |) W d/ ~+ h1 X$ g1 s7 z# h' v" w
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
+ \9 h8 E8 c+ D6 @$ u% D! c' D N6 a9 k/ H. d
/ u5 R2 h i% A
Code:
/ T, p5 Y ?4 Y; s: N0 Q#ifdef __QUGET_SWAP_FIX
1 u* T# @/ i/ z
" T; w1 `8 W( J" T i8 C* K if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )9 [( Z' _) p1 Z4 }
pUser->SetHitPoint( pUser->GetMaxHitPoint());1 u& C7 { _- `+ G
$ I2 L; K/ i( h2 `2 ^
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
0 w2 R9 Z/ \1 Y; T8 X8 m7 c# U/ f pUser->SetManaPoint( pUser->GetMaxManaPoint() );- ]2 C! K I2 ?. _! a) s+ ~
! c4 P8 ~! ]! A
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
# X( z! r1 l. F" o$ Y6 e pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
% h! m8 T6 G) Q1 U8 r6 _# N
: }' b9 w- G1 i#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp# H1 `+ L: Z* R u2 j& {
and add under
2 T; u* E' y6 r5 p3 ]3 F' A9 G! k% x, h7 N# ]
Code:3 h; b5 X# N0 k5 Z
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )7 N9 C% f) k2 T$ Z1 a
{+ n+ V! N* p+ 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 );
\' a) o, M) | ]/ j4 c }this
, ? B: U& A' E6 Q7 f" j' p. T( h
' i& R5 y3 ~. I) xCode:
0 L8 |; N" P- b) s9 F#ifdef __QUGET_SWAP_FIX
! \" l8 S$ p8 S5 l8 t) h9 S if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
0 N/ E4 }2 F2 r* t pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());9 Z* q8 E& B8 T, M
! \; @- `# q7 u; w0 ?8 b& n! N
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )+ D9 R' M, D9 r% O; v/ r( S3 v) S
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
" @& C" a0 N. n4 k/ D8 B' f: z D
/ V$ j b5 M E' c, j+ M if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )* m1 r9 t$ m& u& J
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );9 z- X, k8 P% o/ f
. ?: p* G: W* `: i, r/ s) W4 `
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 0 T2 I9 `1 n3 W# R$ y6 y; h
$ l4 N. T* G7 M7 {
" ?$ a+ q z7 u' X% Z- S |
|