|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked / J- U Q0 j! m! X. [9 V( J5 I. k
I posted this because someone kinda posted a youtube thingy about it :O.* q0 a5 b+ ?9 O% E* }& P
5 F2 J7 c( t3 A; m! _! sFind this in DPSrv.cpp @ worldserver5 v+ k7 N+ L) p% z, P. Z: `
- V% H/ i/ [; o9 N# A( ^. G8 S0 ZCode:
$ c$ D6 ~ i1 `9 m9 [- ?void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )7 F) Z7 L7 R) j3 B1 O7 h5 v
{
; S4 }9 \2 M+ K- T$ E4 U: G- ~ DWORD nId;: x* i+ S4 f+ X
int nPart;
, f: T. m: ^. t- x0 r) _' \: E4 @3 R9 _
ar >> nId;
. y; n @ f* }: A: z- {1 Q* v8 M ar >> nPart; - R0 _( E* b, Q
/ G7 C1 |7 G7 G- e7 S9 M$ Y1 t if( nPart >= MAX_HUMAN_PARTS )
2 J! |% u* e! e# \6 N9 ] \# { return;) D4 \" V3 N% q. ^5 X+ Z7 g3 p4 [
5 r3 u8 [* m! Z0 U! c CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it( A0 m# a/ s* C% L2 u
% \$ [6 q& m3 }0 f( }8 e9 \9 W9 r- h% J3 t1 [6 v
Code:
) |0 `+ t$ T2 u+ @4 g9 C#ifdef __QUGET_SWAP_FIX
, x* m- M/ Z! Z1 d
2 t1 N9 A; g& L* y& U6 A if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )2 w+ ]; I B' K: [0 a7 F3 d- c3 Y
pUser->SetHitPoint( pUser->GetMaxHitPoint());( U0 u( n( h" t! x6 m
) F3 e, t+ u1 a1 m6 {% V5 B if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ); Q2 a! |6 f; N4 b' ^7 x, P0 E) F
pUser->SetManaPoint( pUser->GetMaxManaPoint() );/ u- @+ J4 u E( v, G
" w- V4 b: \ Z6 v" U1 D, M f W& g
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ), H: l% a& }/ z4 P" C+ M! J
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); g& l( y( c+ i
T T) }/ _; @/ q; p8 A
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
' T |9 `; s1 R/ Cand add under
+ _! i+ k# v1 d% i6 Q' e& Q* K i, S8 l; L
Code:
. c3 f. }% y3 R8 }# oif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
d: I1 P: n* T# y/ V& I {8 Q. D( s9 `+ B P3 c- O9 l
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 );
) C3 v5 I# N, `# t1 W3 W }this
/ P- {0 ~* r& n) w5 l" V$ ?
5 T, B) B" ?( w7 h4 _' tCode:) F3 L, e9 E' @1 S5 R
#ifdef __QUGET_SWAP_FIX
7 \; T5 X9 A5 @% h0 L5 B; J if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )1 |' {; W8 [3 A; n$ z5 k
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());, ?, I/ \8 r; f. V( g
2 c( R) K- i5 g0 V6 G if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )3 Q+ ~4 N; d" G5 s
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
, W" m/ y& { D8 Z1 f! O5 A; A3 Q- d( y2 s) j7 m- D7 w
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
5 n! b- e* d1 c+ h2 L+ t/ C5 [ pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );/ H' w& F8 g. R7 t' a
! i. v& M8 A0 p, y#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver % W$ r2 i: G5 h$ X
/ N& h/ v# P, {% Y8 ]; T
- S0 n1 ?/ {2 p( c |
|