标题: 修复交换错误 [打印本页] 作者: admin 时间: 2016-1-10 03:43 标题: 修复交换错误 Hi I fixed the swap bug a long time ago it got tested on my server and it worked 2 `" E( {+ u. o$ ^/ o7 s
I posted this because someone kinda posted a youtube thingy about it :O. ( ]' J& N( w% D9 ^- k V) O$ J4 ?/ Z0 t2 D: d7 x; D" Q
Find this in DPSrv.cpp @ worldserver& F7 |* _$ I- v+ |: K
: g& k% `8 V8 w* e2 KCode:+ d) ~# {# `# A# _4 y' q. u& B
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )9 u, c7 y. w8 S* V+ l
{& D% S9 }2 ~, S, I8 g
DWORD nId; $ Q7 O1 Z* G+ a: w% v9 Z int nPart; ; ]8 E Z& p$ [+ R+ m$ n+ s2 |1 Q
ar >> nId;0 ^- n: q* H/ O" n8 O
ar >> nPart; : k) e3 H0 O* V) z; b/ v
; {( F8 G9 Z) K4 Q3 I6 F, I6 g if( nPart >= MAX_HUMAN_PARTS ) . z c% V6 m2 j9 K V# K return;% g* ]# m2 [; v# m
7 M) Y( t: R( r Y
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it2 V- O6 Q) k) S& W/ V
$ g i8 r/ {" _1 @
/ u) F/ R0 a) w( o2 {5 O* b7 _' R6 }8 O
Code:+ T4 q; E9 h ^* i+ _3 T7 B9 P- ~
#ifdef __QUGET_SWAP_FIX : K3 b6 I5 `8 ^ * q+ y* i* P8 D' `2 D l if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ) 2 n/ ?0 J+ E) n! d1 r( d/ c pUser->SetHitPoint( pUser->GetMaxHitPoint());8 \2 a t7 b( g; E2 T8 ~
6 G3 {# ?, o2 l4 s
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ) ! \4 [, L" C5 |' [7 \; A pUser->SetManaPoint( pUser->GetMaxManaPoint() );$ h' _; L/ T, v. l
3 {" O- n/ J$ i5 v) W3 z if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ) _4 }5 W$ }7 X: Z7 o6 g0 |- Z
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); ; B+ ^( K- G" y( L& P& A' f2 Y2 E6 h6 j; y
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp6 j3 A( V& A9 |+ n' o
and add under $ F3 E5 v& H; ~4 f4 X/ g; I9 c$ z6 {5 ?, R4 \; N
Code: 2 a$ h) {, C. cif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ) : |- r7 u! M! E5 g8 N {/ O6 j+ A" j* 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 ); * U- Y: g8 r2 W z& a6 b, z9 l }this 7 w+ d- {" M/ J) s9 b4 i6 i# N5 Q2 T* Q0 h3 k' ~- n
Code:6 w+ p3 o) W" z3 s0 x( c- ?8 t8 W
#ifdef __QUGET_SWAP_FIX& T5 U b ]2 T
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() ) - ?! B% K8 _6 w5 `9 A. } pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint()); - s) f) V' p, v& A! t Y0 K$ |- S: i$ u
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )4 p3 I" }- d( I6 q
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );8 g/ t6 Q* ^; c0 U! g
Q1 _/ V5 P! F3 `' M if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ) 1 f. N' l% z3 x, Z# p% d7 T3 j pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() ); ( L, u* A4 X* U0 }8 x; [: Z/ } ]0 r* F2 d2 s% i
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver * R. _3 @* M0 r; c) }7 ]& S- a( `' D' Q9 X7 ]
\$ |2 F0 X3 k& m: ~) M