|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ! M) B% s* C+ A! U2 L
I posted this because someone kinda posted a youtube thingy about it :O.
7 z/ f0 a) s- U; g* k
4 L6 K7 R8 D: D$ jFind this in DPSrv.cpp @ worldserver/ y3 X1 Y' i1 F9 M) }8 X7 i
$ ^$ B7 M" ?/ u3 q6 S9 F
Code:
7 N$ B7 X$ c0 o. svoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )# r1 c! W% g, b5 U$ @ J
{
+ U1 U$ G% _5 \0 f DWORD nId;
* J. y2 f2 S A! _0 L int nPart;
, ^; `0 @$ q0 g! Q$ _7 t/ f% Y0 ~! D, o( `
ar >> nId;3 u1 v* n2 P: P; t7 ]
ar >> nPart; 3 ?7 I: g K. t s$ U: u
) _9 m; u; i) P
if( nPart >= MAX_HUMAN_PARTS ) " h+ x' L" t3 C
return;
l; G; o- p1 V; G. W) J* Z1 W# M
% m$ D# K! T$ x7 u CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
% L7 c: T I u( o5 W+ B' R5 v% V5 G2 b }6 S$ L. ?# j! C+ n0 z
, ?; a* U* v, w7 l$ u
Code:$ x$ v3 M5 q6 S
#ifdef __QUGET_SWAP_FIX
5 m+ C% b; k4 F0 P3 E/ d) X i; k/ y) k
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
8 r, n* w# k' T( p1 {/ r pUser->SetHitPoint( pUser->GetMaxHitPoint());
+ Q8 N+ ]3 S" J' j8 Q& @3 T1 y) X$ m+ E- |( T W: X
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
; s; z0 V2 A! o5 i0 w1 s8 | pUser->SetManaPoint( pUser->GetMaxManaPoint() );' ~8 g( U9 a$ f9 P8 t- `
; P* u/ c3 B# _: v3 p7 |
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )2 n8 L+ m) C8 `
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
* K' T. o' w5 U- v$ d' Z: q8 e, Z2 f( e/ I
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
: p3 o# b5 m+ C `$ r2 ^9 Aand add under8 }$ w s+ T9 a. ~
9 d% I" a; p |% B* W8 R& W
Code:( T) ?" T u& L
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )9 a- T9 C* v2 X5 U! y
{+ g$ \* q0 |7 f8 S1 k$ x& o# W
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 );; e2 b0 U$ [* a+ z
}this
* h# d: e. I( z* }8 p1 ~
6 I' I/ ?& Q/ @! A- L- Q9 _Code:
8 u; C) G1 }) C5 }$ E4 y#ifdef __QUGET_SWAP_FIX
1 z% Y' A) z2 v7 v$ s if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )' Z7 X* Y: A" p/ B# p* H, x
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
' ]: S# B- p3 m8 y( C
: A; M* U' o4 K if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )2 W Z, L+ x9 M$ i
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
: }1 z0 p: c$ J) W" G9 D* U Z& |2 @0 A% h k% t0 Z' Z+ Y
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
5 M0 |* V' w, N" G2 ?9 A/ O" s" d pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );6 g: B1 P, s8 m" Y* s* S z
, g8 [' g& T3 w+ W
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver - Y9 d7 ]! T9 x% z) m6 T0 U* y( T
; Y$ }1 G/ h6 i! d5 J
* d2 c& `" E( n2 S. g" [! H8 F, a
|
|