|
|
Hi I fixed the swap bug a long time ago it got tested on my server and it worked 6 Y# ] W" J" @
I posted this because someone kinda posted a youtube thingy about it :O.# w/ y# [: [3 s# }/ ?
5 t4 n3 a$ O! o+ GFind this in DPSrv.cpp @ worldserver" ]' M5 N5 O9 K0 V/ c! m$ z' J( p
; M: J' e% D+ w& e
Code:3 k# J0 q% B* H% P- D4 c
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )6 d& @; A1 n6 f7 ?1 p6 F
{
( x4 A; o& c* H$ n& D1 G DWORD nId;
; l3 [% Z) K* r; G int nPart;
. B' L# x, s2 h! b6 ^# G. m, B# `7 M: `
ar >> nId;$ V `2 A* s* ]4 X
ar >> nPart;
/ g9 u, C$ v1 H+ {* W% @ 3 h+ h( y& X" c/ X
if( nPart >= MAX_HUMAN_PARTS ) H0 K( D. C: k0 d# k
return;
! q i6 ^9 G7 j2 [! J
6 {1 v$ i( m5 f" i CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it, u" ~/ U- ]+ c+ v5 Y& P% B8 y
1 C+ z2 d# S- I' @: `: K+ w2 E4 Q2 x9 t4 `2 X
Code:6 w: L) o% B3 ~, D( a
#ifdef __QUGET_SWAP_FIX5 m" b7 _: Q P5 R; U" T s
: Z( Z. o/ d- i' s( B
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )
) F- E4 ?+ A$ z8 H pUser->SetHitPoint( pUser->GetMaxHitPoint());
1 i0 k. ], g- b" {3 X7 N5 {3 l7 c, W
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ). i: {! ?. Q! n7 u: _% r7 H
pUser->SetManaPoint( pUser->GetMaxManaPoint() );. N; {+ W5 b1 M. j( M& T( l
+ i2 {; F- N$ n' q' I8 B if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )
$ } }+ i8 }9 W pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );5 }3 e& P" _, y. O0 {) ]* i7 L
7 ^( c4 d: o6 z% K9 U( u! v#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
% H$ f6 M. s0 m6 c0 a( C- l5 yand add under
# Y( S8 d4 T# W: K; q
# s; S: D$ X; y1 R. e t& iCode:
' N3 z2 Q1 i. G% q5 O Q" J6 Sif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
3 ?# @. t5 K7 [$ f- j, l. n3 j {
8 a! o4 q8 [% ?; I7 }: y 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 );
( M- p, B. j& [ }this+ m+ t/ h- \+ Q8 W/ b
_( Y! U+ b- @) x7 K6 g% ]3 b3 @* VCode:4 D& q0 Z" m$ c( y) E7 t' ^, d
#ifdef __QUGET_SWAP_FIX5 V1 N, p; D/ E- G& m% g
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )# I% n& D3 F# n9 u8 n4 c; W' Z+ k
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());8 ]1 ^6 u9 w) Z5 s. e2 u
" g2 i) X: v5 v if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )
0 y, Z% I- R/ Q pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );5 Z, d# E; g8 g/ S2 ?! ]3 `
' D, j5 o: |# f0 P. i; d6 j: S
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )
8 R7 N! R8 M* T( D pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
8 z7 j5 ]7 J1 E8 |! j) V
1 y7 L9 U% w' _7 r8 r#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
3 `# P4 O+ c' h' L( v& r4 @4 X8 @9 N1 u! G
9 e+ I3 ~& n8 \4 K/ Q. G |
|