|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
% d2 C# @$ ]& g' `I posted this because someone kinda posted a youtube thingy about it :O.
" f; s( f/ p. A9 e. W& [8 |( k# i4 ?: d4 l) M4 }
Find this in DPSrv.cpp @ worldserver: A, S$ E/ \) \6 F4 R# m% a, c
% G* G9 K" n0 j3 Q. MCode:, K3 q5 E5 p' K d: f2 x* f
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
' d; S+ g) }! `7 }" w, U{
: y- l6 Q& b5 N DWORD nId;) V5 W- \% T# Z$ @
int nPart;
( V8 } f; s# b. {* @. E6 ?; W% l! J( z7 O0 G$ b- k
ar >> nId;
: i* ~" n4 \$ Q; O" X+ ]6 q ar >> nPart;
! m. h: h6 n \6 O! O 8 `9 ]7 H, f E. S d
if( nPart >= MAX_HUMAN_PARTS ) ; L; V# H, f/ f; G' q2 k* Q
return;* Y4 |. n7 g) q* K, @& T( ~
0 c+ U. Y5 L- P2 W# \9 y CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
4 I: j% W$ n# c `+ k( \4 r8 E0 F- D1 X" A1 M
6 B n. g; A" l# V: ~Code:3 R: ^: w) M8 k1 Y
#ifdef __QUGET_SWAP_FIX
2 ~3 c6 C/ ^2 p& B7 o1 W( F) w
& k/ h* U1 b u3 Z/ I if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
' B7 j, l, [$ W+ E: F pUser->SetHitPoint( pUser->GetMaxHitPoint());, }5 [: h3 _$ Y$ b
$ q8 S' s) `. T4 w( Z& ]0 I& M if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
% l9 b1 Y* H/ D) L0 h% U pUser->SetManaPoint( pUser->GetMaxManaPoint() );3 L9 I' ~3 W& G F
; T7 B3 `# o$ z5 w if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )* l. ~- A- Q. p8 V/ r) w
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
. ?' t4 ?' M, l0 I9 u5 y9 ]9 v: K8 P& E! U; ]5 d/ V7 S# M% l
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
; n( G, @! R$ _# uand add under( H: x3 H2 ~' J" I8 E' t' b7 [8 U5 \% @
0 y% k3 _' o ^, J3 {
Code:
; [( }3 D1 [( [, D+ I7 Nif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
2 }/ j7 `: U* ~: v+ h0 N {
% k: k5 v0 a8 Z& ~ d0 r6 p8 I4 b2 j 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 );! P/ I9 f7 ?& ?. H& T
}this
+ C; \7 H* `: w( N+ I
3 i# ?# ?3 e& v& |7 q, RCode:' f# K. v+ [) u8 r( z: ]+ ~) Q, D
#ifdef __QUGET_SWAP_FIX
1 `; v' d2 t% ? if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
- I( q9 J A& y3 n& z; ^ Y pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());+ A* e) O. g: o
( X1 B4 \5 B' o/ P0 R/ ` if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )8 J, O$ q$ T' |! c/ Z
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
8 C; b3 A. y' |# J) S% N
2 L2 V. b$ y6 T% e; G, A if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
8 E& v7 x$ d+ n( _9 X pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 [1 \; K5 R; Y2 i: g
0 v/ r! B. D% @* G0 u" j; H o- R) I#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
1 ~1 a8 {7 {- v6 t+ S" D
; w% r w# ]$ `" W
+ @' V+ u v& |/ U" y# r |
|