|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked & Q6 D w8 k4 E
I posted this because someone kinda posted a youtube thingy about it :O.
- l p" _% E* W+ ~1 J3 e
0 { ~- P+ B: Y5 LFind this in DPSrv.cpp @ worldserver
- W) k4 q7 V& I* y) r4 V! T; { a3 \* b- F0 j
Code:3 M& I5 N! z1 @0 k. i9 G
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )% G- q }( E5 C8 Q" H
{# ~ \6 L( n6 }% U
DWORD nId;
/ i' E5 W. M# a' E7 v# r int nPart;! _% q: [5 f. i+ Q
2 f! ]" N) J3 H- W o* x
ar >> nId;- ]7 M/ }. n5 }' ~1 h9 t# D$ ~. D
ar >> nPart;
9 |$ M/ F5 C( S* e8 k( l2 h9 @; u3 K & K( e3 e7 j8 x E) @7 I. p' y' B
if( nPart >= MAX_HUMAN_PARTS )
9 Z; V, L' T; E+ H return;* ^3 a9 n% t- a$ |8 Y& A$ i4 v/ A
0 t; \# B: ]1 g$ M& X# q CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it/ c# l% H# M: E1 M6 q# ^6 ?+ Y
! l: ^' [* c) P" J6 ]9 E; } w
[: z! p, J7 o9 x9 I: T4 sCode:: y9 @: K) N( k& f
#ifdef __QUGET_SWAP_FIX7 d f0 `# ~: u6 n/ J. _
; x+ e/ `8 M* q% i' N if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
0 Z i/ Y: r0 ]7 Q/ L4 G pUser->SetHitPoint( pUser->GetMaxHitPoint());
- ^+ K l9 n8 G. N0 x% E" u: F q+ m
+ l% J' i. A: [! H4 u" R2 ?5 G& T, J if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() )
+ J1 B4 s3 {+ L4 q) ] pUser->SetManaPoint( pUser->GetMaxManaPoint() );% ?8 b6 a! z: j- O
1 |/ x; D B! T8 o& T1 _# \
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )$ i% R8 D5 z |& {
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! ]2 W! J u/ _
# {2 H8 U) J7 e6 B' l. F+ A. K7 j#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp F6 I. p9 p: L: x+ O- O
and add under
3 j) M# x0 L5 h% k3 E) a1 _: f9 ^* p: f" W6 F3 Y, B7 I
Code:
- z) h! O% T$ k Sif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
' B0 u& W! W/ e, A. G O! o( @5 | {+ l7 @' i. z! C' s
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 );8 b; D6 D# j; O- P6 a( d: R
}this
" z, _% \" I( i% x5 ^ |- ?! F- U' C' S
Code:
& e2 r9 j; l% d! w) j& o/ L#ifdef __QUGET_SWAP_FIX
2 y9 K: e4 f3 m5 y/ T3 _% j if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )
- U/ T m; F1 f) [2 r pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());! @$ n/ Y3 c- B' R8 X
; A" v; A: w# D) @7 N if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )7 I0 h9 O; {; P4 B9 f# z& ~+ {
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
8 i* q3 l/ n; @; h8 U# R5 q# S A- ^, A1 j9 R3 d; }
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
, @- s( J* h, R& ^* Z pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
! H" `0 C7 d2 R5 l0 v# E- _. I) q' c/ X9 j" z1 F6 T1 c
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 8 v* o4 `2 E: x) m; Z( B0 K# |
% G) g {7 C$ `5 _* v
1 t) {- _( i. g0 o6 F) M, ] |
|