|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
+ b. w6 N2 y; Q, q# `) F" H7 L- bI posted this because someone kinda posted a youtube thingy about it :O.
2 L% p8 M1 I1 W2 e- U+ A1 B, {# t% ?1 n1 Y$ f, Y
Find this in DPSrv.cpp @ worldserver& _( |' U4 a& l1 v. @5 K
1 R1 y4 E! s7 ^7 d; f# y% J1 j0 ~
Code:, ^7 p" f) J/ Q9 R. d
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% ?2 o- S& i. j2 d4 E4 q* _{
/ b Z# t* K# L2 g DWORD nId;
- e" \. E+ c8 T8 T; j5 Z5 U1 v" S2 U' I3 a int nPart;
3 C& D- [8 r8 e' |% \/ P
; }6 y- f- o* P/ X' n" i, h, Z6 S, r9 d ar >> nId;7 P, |* D9 _5 @, x$ l
ar >> nPart; & g6 T/ A. E* h& C, s: X* h
# R5 |6 G5 K0 b) V: j3 B
if( nPart >= MAX_HUMAN_PARTS ) ; D% k* ]* o& y
return;
! p5 W5 ~; f0 m( W6 B: ~! R9 m6 z J- a. t& f) S% i
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it5 M! Y4 n3 x4 r% A+ C
/ l! e, C9 Q4 R5 q& F4 T
0 ^; A) {6 ?# T3 C! B1 h
Code:
9 \9 K( W! F1 Q1 }: J" p" I# G#ifdef __QUGET_SWAP_FIX
6 R; A/ }! ~& s0 M1 L5 P. s) V8 L1 D: L
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
9 [/ i/ w7 |: w; M9 N9 q pUser->SetHitPoint( pUser->GetMaxHitPoint());
4 ]# c% u3 f8 u& g( ^+ s7 n% z
" C* p" m0 f8 d1 x if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )0 l3 l2 D5 ^2 H; @; F N4 p3 N7 N
pUser->SetManaPoint( pUser->GetMaxManaPoint() );
+ V0 @ s" e: |6 X# U1 L0 l$ t" T
& B9 \4 }7 U. n/ z: }5 }) [ if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )% l* J8 e) ~* r7 ?4 _5 n1 o
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );* Y. n6 N* ?& ]" _+ X
* Z- t2 O+ r6 Y, v- s#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
7 j* e# m" ?' b4 uand add under
% E' X4 u/ |/ \. Z9 Y; g$ B
3 k( l/ g& m* I' ], n oCode:
* C, v' {( D1 x' }! Aif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )3 s2 L- i l% W1 ^
{& O) q! ?8 i, x5 k
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 );7 {2 _' Y) Q8 A: S
}this* v1 N. m8 z& {( J% m
) n7 u" D: r+ c& Q& |# lCode:2 @6 h" x s8 p' e, I8 g
#ifdef __QUGET_SWAP_FIX
: s. l. P! E3 G if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )9 Z$ L& P- e/ M- j* U2 _. ^) t
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
, t! e1 a6 i5 I& T: ]2 b
/ r& E! s/ C I2 [" b& Y2 h# o if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
# W* D7 O- A9 b) i, m, C pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );5 y9 X4 _7 ?% _( @9 X
& P; N1 `4 t# [- g( S3 b
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
' `, H- `' L, F# E5 o2 u0 p; p pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
) ?0 m3 H: y8 p: V9 q3 \$ S2 q% l/ N- J X
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 9 l& r5 w+ z- t) b
. `% E" D% }3 e o, ^* b) z7 Y0 S2 t% l
# H& q! s# B/ R% B7 q' Y* x
|
|