|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
" C! q/ |, o2 K+ ?I posted this because someone kinda posted a youtube thingy about it :O.! n& b5 Y! N" M4 j8 D
( b ?7 y+ R6 u4 U: ~8 x% z( \Find this in DPSrv.cpp @ worldserver
0 e! r* w% p; J/ X! A2 u+ Z \
Code:# u. R2 w* b6 [
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
) D! H' v8 l" ^5 E) T% W s% ^{
a: j' u6 C. X$ p2 d DWORD nId;
, @. ?5 ?: o8 A3 x( Z& _ int nPart;
/ M5 I9 n4 N; r) Z/ h0 X& \* O" G
1 n# G+ V& X$ r. {6 T# F ar >> nId;1 s! l0 Z# b% |7 Q( k1 P) p
ar >> nPart; 3 n' @" q# t# c9 v A7 l- e6 B
& j. O' c/ W6 u, y if( nPart >= MAX_HUMAN_PARTS ) 9 a7 E' k: V# c# {1 l$ i6 z% n
return;- A* |) u" q* r: g
% x' x% }) T% y8 ]( H: ?! T4 w CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
- @5 h: T6 L+ a4 b: k8 F$ M& V; Q* n. v* t3 y1 ^% A- a# z
1 }$ b8 ?5 f0 p* O7 lCode:: A" L9 b4 ]) ]+ p. ?: l3 b# G& p
#ifdef __QUGET_SWAP_FIX0 |# Y1 R9 C: H5 V5 N3 m
) O3 a( b$ L/ V* O. K if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
$ y. W/ ?7 _" [( D d- e( q. j pUser->SetHitPoint( pUser->GetMaxHitPoint());
" ?$ {( y A4 {% _ a. O, ^; A7 N' x |2 E, m$ T* [; l
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
& R: z7 S$ q8 B* q2 t pUser->SetManaPoint( pUser->GetMaxManaPoint() );7 }5 I4 Q+ ?; ]' a
7 a$ E. [. A0 H. Z; |: Y if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
; q, p @& `; h5 W2 J* r5 @6 r; u) _ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
) ?5 G/ M, }# x& c. }* D
) ^; Z x. d$ z/ B( u( A#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp7 N6 p- o+ T3 p; G/ p% ~; H
and add under6 H/ k1 O" v( Y8 L2 E" Q$ u- a
5 W! d1 D; [9 O+ z4 {, p( G2 OCode:8 W r3 H5 k# n [/ {+ ~/ _
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )" Y; j: \' n0 Z8 [
{& \- t9 v; x1 M8 \8 h1 j) p; n
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 );
3 v' ]2 ]7 s$ Y3 N, c1 T p9 t8 d }this
6 G, h l7 B0 J/ d2 \% J. F# I
! h0 G3 b; z- s% [Code:% D, A! D5 k3 f0 K5 k
#ifdef __QUGET_SWAP_FIX& d/ X; E- Q7 |) E. x6 c
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
4 O9 ^! Q7 N- p1 e pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
+ g: C/ S) J# F% N P+ W! A8 `* C% I
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )& c8 e! l$ ` i; c8 ?' D
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );/ ?' M) ?& \ r
, ]- |0 j: ^7 ]4 e
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
: U- h; Q* ]% R; g pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );* X+ @) C5 u/ E* g3 B" ]" w
- ~) ^" |/ r0 Y2 ?#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ; _1 H5 x8 P, [' N6 g
/ F% l; y# R6 s1 w9 S7 x
1 F; P* y1 `/ _* G8 T. \+ S |
|