|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked . i/ `& t# Q" D6 g. H0 Y7 O
I posted this because someone kinda posted a youtube thingy about it :O.) w7 D1 I+ W& |, |& X& y n
3 l4 E4 {0 `. v7 X E: h/ p
Find this in DPSrv.cpp @ worldserver
" r1 z+ M. r* |/ o$ N; u: E6 G+ f' [2 K( R! j) V
Code:6 L& v9 b* u- T2 Z( {0 b, L
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ); |+ _' m' V, }& f
{
) M1 B9 b( d' X3 |# D5 |2 m5 a DWORD nId;
4 q$ Z% @+ @1 ~1 l int nPart;
! n# @, n( x& g( r2 g2 B
9 V) q" ?% m) x) w d, N6 s1 X* b2 Y6 N ar >> nId;
" x1 R# Z. [. k B/ J6 e' _ ar >> nPart; ; p- y9 f/ e {5 W6 @- L, R
' Z' G4 L& d7 s/ i8 }/ X; N. ^ if( nPart >= MAX_HUMAN_PARTS )
, w+ A6 _4 C h5 b+ E# V: ?# }3 x return;& Z5 `( ~4 a, ]4 `$ _
u8 w" P. K. {- W7 Z/ Q" @ CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
* `+ z+ M4 C, J5 O5 e
7 N( l) P1 ^/ Y% v: N( j+ |7 f$ b7 z) r; m& I
Code:( _( ]% d# k! z% T1 K+ d, C
#ifdef __QUGET_SWAP_FIX
; k6 S- u6 G, Z6 `* E; k+ w- p) B1 L3 ?4 Z
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )4 _: m& ]; n* n; u W& i
pUser->SetHitPoint( pUser->GetMaxHitPoint());% U+ h) a3 j! C6 }
- t% W) s8 W4 |& L0 W& Y% H0 i4 f
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
2 ^- i2 T s" O; G& m2 D% z `$ | E pUser->SetManaPoint( pUser->GetMaxManaPoint() );
" r% R3 T' S9 g1 c. L- a) q: O' D1 E e, c+ O
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
* Y( r. ?( C$ O7 d# @( @ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );5 e) L! Y9 t0 S7 ^* B/ \4 @; F
6 d A- w: k5 _5 b. ]) j#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp& G+ d8 }+ Q$ T% }
and add under+ U/ `: ^$ o6 J$ `9 N( j6 m
) u/ z. l- x# m0 k# S3 o( {
Code:
2 _* l) U& F9 E7 Q) E1 yif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
+ C/ E; U% X0 X6 X ^ O. I8 }7 h {3 `% T; Y5 p( Y9 x" X9 ^
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 );
$ j) c' P% e( {. d }this) t: q4 E3 M4 b
/ {7 o9 s( e9 [" r. i3 `; kCode:
* Y3 d0 i% a$ E* ?8 K& J" d#ifdef __QUGET_SWAP_FIX
4 f2 q; \+ |( Q if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
9 u& D. z2 ?: `8 [1 ~ pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());5 O# ~) u, z1 d9 T; _/ ?% c
6 g# F: k5 G+ }0 J' O5 S; V if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
& J4 T' e/ l* K9 |% `8 t pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );+ r, s( O+ J- ?) o1 _ c
c- D- P* s& o2 l+ e( d if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
- Q5 @9 C1 a8 G$ t) o. H pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );) {8 g, j8 T) k/ F( l) L& f
) n( ^% H) H7 r. n* f
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver + I1 _2 N7 J- F
9 C/ ~; d. q& {# N2 {
% C; u5 A, c1 ?6 V) J2 _
|
|