|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked ' ]3 p/ ]% M1 {5 c6 i
I posted this because someone kinda posted a youtube thingy about it :O.* ?* f- a6 p% F' ^/ O
8 S' V M! h; [2 E5 R. C
Find this in DPSrv.cpp @ worldserver
6 B7 U8 p# m/ ?( ?# R; V( s, d/ b
- b. X2 l$ D7 \7 nCode:
: u% a+ N* q7 g2 dvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
3 _+ t4 r( N. f3 l# }( P0 C: x i6 @{+ m9 q0 C' B: b2 S4 M
DWORD nId;
! L1 C d8 @/ M; W- o: w [. I int nPart;9 I& e1 ?, n: `$ X3 F
3 d. T/ }$ B5 v
ar >> nId;
' c5 b( J4 C8 X: A S ar >> nPart; # m8 ~4 b+ x. y" p% T3 p+ r
/ ?9 B/ v) q% B1 ^4 q ?3 i if( nPart >= MAX_HUMAN_PARTS )
/ L# b, r. c7 s2 M return;: c! y2 L0 d0 }
+ F' K, c6 U% h2 G( z/ p0 C+ d CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it5 h0 o$ I) Q2 ?- P( r8 {
# O: b6 {# f1 K3 z+ s* }$ A/ w$ G/ C3 {
Code:
9 ]. S7 }4 f+ F#ifdef __QUGET_SWAP_FIX
) d' C0 s- U, T- O
6 d6 J, e' r; b( L if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )" _$ H7 Z4 B" l, h
pUser->SetHitPoint( pUser->GetMaxHitPoint());
3 L: f _+ Z$ ^& f c: z- y! E: ^& v* [9 x& ~) g
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )1 M. R0 b4 ]- y9 J* j
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
2 a$ U, k- q( B& k8 k- ^8 W( q4 _) d& N8 b! O7 R# p5 U. @
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
9 b; |8 C% F9 R9 S pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );8 j' H8 ^9 a& [ q @
( F6 C! _ J- G5 Z' E4 W
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp4 ]* P" k' D" a" J; v. Q
and add under
4 U7 E+ A8 o C' y6 W" b
- B. e, L4 Z) a } z6 {7 K! ]Code:/ S4 f& s6 w2 n: n I
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
" q( y1 `2 Q" v/ f2 j; { {# E9 I8 K0 K4 x5 S$ B
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 );
! Q4 {* w7 P1 l- j$ q }this0 I# n1 O u7 ^4 {: ^, V
* n5 ~* J) O W% b2 \: _Code:
' v; v1 q* [" }9 g) C* b#ifdef __QUGET_SWAP_FIX
% K+ r) i6 Y# B8 ~7 ]4 F if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )$ X: N3 L( f: T$ c' \- i
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());& \# Q. J1 D9 ~. u1 W
; R3 d5 V+ c3 R7 {. a( h3 `1 m if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
3 ]2 K& y; g& s8 r0 v4 B2 u pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );) X% r( U8 \+ Z m/ J
) f8 T0 W; n9 t! t: \1 f if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )0 Z h. C$ p5 `! f: n
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
* b6 Y+ X% Y* t0 y1 N4 }; H X0 z: ^9 a' s, L! J5 ?7 ]# F
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
$ B) q, {5 h+ r( T6 v3 \* O" I/ G- f( Q
. j; O. }& f( ~3 ~+ K1 U |
|