|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
! b* g3 \5 d5 f; o& X* }4 @% wI posted this because someone kinda posted a youtube thingy about it :O.
1 J7 B. w9 ]" Y% F
2 N- ?5 F" E- E3 I' FFind this in DPSrv.cpp @ worldserver
" W3 e: t9 y' Z7 G6 s9 R' ^/ k7 v/ ~+ y$ d+ A: v2 T
Code:! Z+ K5 p, E0 o P* J+ @ ]: q
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
# [6 r1 P1 M4 _) `6 U2 o5 q: o; K+ h8 w{. ?1 S y- j( c2 f
DWORD nId;
; E- U) r( Z d3 z int nPart;6 ]# s( I2 o8 P7 a7 H
, x' Q3 z5 {/ p; o) t- d ar >> nId; x0 S' d) x. k* M2 W
ar >> nPart;
3 Y. n$ a/ E* [$ y" V * w6 O7 `9 E: E. O1 ]! F/ @
if( nPart >= MAX_HUMAN_PARTS )
1 M; s- x) {. p* ]$ H+ k% o return;
; `% F( U- W1 @" l' m% y5 Z% ~- r. u: f2 x+ `! F0 Y4 k% S/ B! R
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it. ^" N" b! b# u6 w5 L
0 S, O7 |" H0 |& q) {$ T7 \
* E- t& E8 E8 l; A1 x8 FCode:
* [& t* L$ Y3 k- j& B#ifdef __QUGET_SWAP_FIX
: n) |1 L: w7 _! O6 R. }
9 f3 t$ D- ^: ~9 E if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
: r$ R0 g( F9 I, B" l- g pUser->SetHitPoint( pUser->GetMaxHitPoint());
1 @. B8 q% M% z6 q
9 p! k: x3 R( b" X if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )5 k) o2 }0 E0 O5 w1 @2 b
pUser->SetManaPoint( pUser->GetMaxManaPoint() );* }; O- s2 C* V% \8 b
0 V1 y* t1 _% T6 w3 ^. h- f
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
: y( x5 S( p5 z2 ^8 f, p3 V pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );; h: s% [* C3 F' |! {
G$ D, d: s5 l- W6 ~
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp3 y0 l% ^4 S/ ~3 q7 h5 h
and add under
# @/ E3 Y9 x3 m) C; P
. M& ]" j+ V3 B6 m& M6 w* z6 ]Code:
9 S& L' ~* l% ?: h# D H+ m2 |if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
% Q0 @8 L# P Z( T- ?; O$ M {
; F% P1 P! C9 Z/ @- u 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 );9 T$ f9 Q5 H& p% S/ {& R
}this8 M: w! `1 C9 o1 C3 M3 g
/ s0 }6 U( P- R4 O8 J' `
Code:
; R: I/ h% g3 J% R$ @#ifdef __QUGET_SWAP_FIX/ b$ f) ^5 m( ]( r# r9 B4 ~* X: U
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
# M( E6 m4 ]5 T) V. a4 f* z* z: u% | pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
: P: G6 L' ~! A* V# t2 [$ L4 |6 O
# F1 j7 @9 \) W3 C' s1 o' b# `( G: S1 X if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )1 i- F+ m# P( ~. | P
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );3 Q5 x: C, W5 }/ F+ B- [) w
$ Q8 d+ U5 R6 @
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )- r' S$ H3 |# i% z
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
1 \9 K8 c' E0 c( k2 U+ v* K! H) T6 w; w* `9 Z: R& _1 z
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver / Y: j' P) w; |
& C4 P2 c+ `' q7 n* V7 Z5 W
/ l: n/ p9 T. g" p1 _5 b- T |
|