|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
7 S' S5 u) m! G3 h- c, O1 {- LI posted this because someone kinda posted a youtube thingy about it :O.& P& R$ i$ A: z+ ]2 N
* A+ A% \, g4 ?. f1 d& V( h6 D+ k9 LFind this in DPSrv.cpp @ worldserver
) X2 V" h2 a% h) q
4 A$ H2 I8 e g: \& ?5 GCode:
/ n8 f W( E. [5 b p: h- qvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )) k* k6 _' ]* I/ u) b" X6 z8 O- y4 S
{% E' t7 q( S5 F* l9 X! a
DWORD nId;+ t6 b* W4 c5 ^; D; V1 `5 J Z" s( @
int nPart;, i* t7 z/ } N2 A6 {$ L' Y; u* v
1 |7 r" m3 V5 W' a1 n& y2 c
ar >> nId;
# Y5 q# t9 J3 _ V2 \) J6 u ar >> nPart;
' |' S% J. d, G3 w : X" |) O3 r* Q* H! Y$ E
if( nPart >= MAX_HUMAN_PARTS ) * |, z; M, ?+ Z4 X7 I- s1 l* j7 O
return; R. g& s) l* _
7 ]6 D) O% Y4 J+ M- E+ z/ B4 K* G CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
, F3 P9 l' v7 T: n' }8 b' ^
# ~6 Z1 I; p# a: O; @7 X, W4 k8 s {# P( W/ B1 S
Code:# h, I' n$ |; r2 [, j( l' ?" k5 l
#ifdef __QUGET_SWAP_FIX
) h" `9 d/ N3 A# z( t% h" C* w' V/ p
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )# H! w0 G. @7 `! i' }: H; O1 r
pUser->SetHitPoint( pUser->GetMaxHitPoint());
x% F0 ]$ D. n& \0 k, A. m/ n* h. N0 f2 |* U' d
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
& c% K: l6 G! }6 ?1 R5 u pUser->SetManaPoint( pUser->GetMaxManaPoint() ); k6 G- A1 J' o
1 D6 O2 I- ]% f if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )1 q; b9 Z/ Y2 |; N( h% `
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );: {( R* r4 h( v
- z9 O5 \7 o; g0 _. p* L% z
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp8 b6 q F' E* v% _0 q6 z) {* F
and add under
+ s$ s2 f( h" y I* R: d3 q! I( N0 `" U. Q; v
Code:9 T3 J( |) X, J4 L( R9 q) _' j% S2 Y
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
, B* ] Z7 W: i {- B6 e! k5 b- 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 );6 d) C+ L/ i$ w) `& Z; H
}this
, _! I) l: N# j% C. E: h4 J
5 z, a% i* l5 N, D9 nCode:! G( v/ m3 E2 Y1 }5 I
#ifdef __QUGET_SWAP_FIX% ~: n3 Z) p5 Q3 ~5 X+ m
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )9 v5 B0 x# B8 p* i d2 _
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());2 l: ?1 i3 x0 W3 m
L/ B+ \: E+ ]3 Y" F, g9 T if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )& a$ F. J( f8 \0 H
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
- g& h; [+ n4 g5 @! z+ w
6 f$ s$ a5 o: S1 X0 n' x if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )6 H5 c1 C) O& t# {4 w
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );+ P' c: T5 Q, M# B0 Z
5 o0 ~: }4 d# n, E4 ]
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
# w5 r: }" [$ @ F" |! s9 |2 `4 U* X/ }2 _
5 W& B8 z$ Y1 ^$ u |
|