|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ' d0 U- j' w8 X- W5 J$ r1 C
I posted this because someone kinda posted a youtube thingy about it :O.+ y1 L. j! z1 I% B# j0 f
8 |1 C# L* {/ v: O GFind this in DPSrv.cpp @ worldserver* T) V: j6 T/ n% J
+ H& r8 ^9 d% Y2 @4 b YCode:
" c$ R) t" r7 @% i. Svoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% F; ]% ^- t3 w4 K, i9 p5 M{) e- @. Y- q+ [/ E8 b/ [
DWORD nId;
# e9 Y2 k3 B8 D1 V2 Z int nPart;/ j% X6 U. l5 E% b
8 x3 i. g; \' X
ar >> nId;
2 W7 P: d9 D$ R$ d ar >> nPart; - P. ~8 s$ }( A$ l4 y
4 y, n" C5 `' }& } if( nPart >= MAX_HUMAN_PARTS )
& |, q0 W& h" K! n% ? return;% V: @2 L. y: o
4 F1 ]/ ]4 Y+ W CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
" U6 `2 L" ]! E- q- [7 Z$ y
3 A! |6 a: m% z0 S% t; j8 b
: w! J- p% V& _* n! C' J/ ~Code:" _% j* o4 I$ [5 R8 E- F) H
#ifdef __QUGET_SWAP_FIX
Y. W. T$ [: c- Y$ f+ J! e6 n9 L1 L- F4 F; u9 f
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )7 m6 L7 U& ]( X' s9 g
pUser->SetHitPoint( pUser->GetMaxHitPoint());9 y; k/ n+ D5 }6 \
0 E+ X2 h3 r5 |2 [: H if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
# g2 _7 K" L' [4 S% e; j# K pUser->SetManaPoint( pUser->GetMaxManaPoint() );
5 K* C" L$ O0 S
% `6 y& S8 B& {% b3 ] if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )2 w& a! E4 d" q) u( P% E
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );# V F3 q2 S. `+ |0 P( K* \* M) v# v
- L3 M Y9 L8 v# x$ w8 F. \" [% ?#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp' l0 B) z. @& E3 r* J4 `# e2 n1 H
and add under Z5 n( Z9 b6 {
! `% W8 n& c: i) g D
Code:$ q- ^2 h0 p: ^
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ). H: v: o) v. [2 r
{" ?0 n! q6 v- O) d9 F9 B4 E
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* q% I( q9 _( ]7 `6 a
}this
! Y( R' W C2 Z. b, g: `
6 v* S) r% q/ BCode:
6 E( ~- @( m4 ]+ d& w3 ]) Z7 y#ifdef __QUGET_SWAP_FIX
# ~: Y5 [$ e* W* Z; b4 F8 q if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )4 R4 M1 I9 D: K3 @
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());) s9 T" n- v) p2 j1 w4 M& T
5 k4 L6 M( J- F9 S4 m
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
: Z$ v+ A+ v2 b pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );3 z) p0 f/ Y8 ~; Y$ A: U6 J! z0 s
{) s, L, p0 g' A9 ~: F* ~ if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )# }- T+ G( M% [% N( g
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
& G0 E. e8 i4 C) t
- I. k! Z, ~- B5 o+ l, Y6 z#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver H8 G/ B9 J* Q
+ J$ B2 W1 x6 D/ d
4 h5 E8 X: x6 O/ `' n s" [& J. |
|
|