|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked $ ]; [9 b; u; X7 ]
I posted this because someone kinda posted a youtube thingy about it :O.
2 i. m; C( o0 q" H0 r. I G \" i( a7 Z8 _7 |. k/ T8 H3 ^/ s1 q
Find this in DPSrv.cpp @ worldserver
2 d+ N( m3 `' I$ e: h- O& f# k. {7 K/ g" Z# a, \. i+ [& _
Code:
' s' w0 J2 d/ b' x- k+ ~/ nvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
, X' T) x3 Q+ w* {! ]{
* y. I8 X6 R6 p1 t2 H8 j" ] DWORD nId;
$ P$ q- g1 F. D/ e5 r' O& @, a* A( D4 ] int nPart;
% ?8 h! Y( G9 L! y0 X: Z' J e: d+ l7 ]5 k0 Q5 ~" _
ar >> nId;
5 m% ?- x- ]) Y% X& \ ar >> nPart;
( d5 L% @* E' Y$ h8 V , T, S" ^2 I: N: V8 V3 V/ x
if( nPart >= MAX_HUMAN_PARTS )
* O% u3 L- b" L. v) V return;' y3 H) Z6 l! Y
: ~3 t L2 m2 q# { CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it& Z$ O4 }6 L8 W0 O, w. l
+ L, M! q" H, x' p- A6 Y+ _. F$ `9 a! J' n, }- y& r
Code:
8 z& {3 T! Y A; T5 \6 J#ifdef __QUGET_SWAP_FIX
( L1 U) @( ~- L
7 h- B* q5 r( j if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
1 I" T* h! t2 }* S6 z' W pUser->SetHitPoint( pUser->GetMaxHitPoint());( Z9 i* G* ]- R" G$ F; k" Q
7 n- a# `- ]8 C3 P+ W3 m6 m if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
' T- d! v3 Y3 K' L/ i ^ pUser->SetManaPoint( pUser->GetMaxManaPoint() );( o1 X: Q, B. E w7 I3 A3 j6 b
i% ?. Y3 p+ J8 M/ a# m
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
: O& k+ U6 ~1 P2 `) r) @$ i1 h0 R1 o4 T pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );- r& K" r: F: B* G! i! S4 m
$ W- T3 N+ i8 j5 Q% R
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
. q" k+ r& J/ f' n0 R( w' Rand add under
& D1 l* G* y; j+ H3 H1 v: ^( R3 D( S# L
Code:
' f$ J6 ~6 i' l+ g% @if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
4 ^5 y; {4 r9 }2 ~+ u# p/ ? {
* C% b' ]2 y4 o! i& 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 );* o6 R0 ^% h4 {( f* s; f! D2 B
}this
0 T, r+ x- G2 q I" K
6 |; m% P! l8 D" rCode:
. [; @5 ^% t4 [#ifdef __QUGET_SWAP_FIX( T l: }" ]. d" k6 g
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
; V& Y' M0 C/ J pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
) L1 J( J9 n8 j) A4 K4 d* v0 W+ R
9 |+ h9 q. d: f: t# B4 Z; s# g if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
4 f; H/ q5 a# W& F pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
8 l. G( W& B4 c/ |6 S$ x7 _+ A3 a" t8 }. T- j+ W- }+ _+ Y/ O
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ) _# l9 S; k d: }. m: n" r" F; n
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
X2 [' Y; O, f' X* Y' p2 W$ m! h. C. I# C
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
4 C$ f0 Y+ N( f! b, t- ]* M8 ]+ L5 O* a0 e
% U% Y9 J# e O* g* A
|
|