标题: 修复交换错误 [打印本页] 作者: 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 & x% X" ?8 I3 ]# A. gI posted this because someone kinda posted a youtube thingy about it :O.* l% G- V- S) y. w, {
" R5 h8 p$ o9 xFind this in DPSrv.cpp @ worldserver ! H/ V2 P9 [( D: R, N- L) ~# K' `( W( ~5 X7 A
Code:+ R- m! }, |: k* ]/ U
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )4 B3 L. V- Z5 y0 l) E. p
{ ( {; G" |+ N/ g$ r DWORD nId; 0 r* @, g9 B+ o# \2 e int nPart; 3 ]% |# q+ k8 t3 k F* v4 z- y0 L
ar >> nId; 2 T2 Q; a9 {9 p- W. l0 C2 H ar >> nPart; , z. [& Z. s+ }+ [5 ?7 v 3 B g* N2 q ?1 n# G if( nPart >= MAX_HUMAN_PARTS ) 7 N$ }1 c3 f. p# B& p! k: a1 G5 ? return;9 X7 L' W" o' K' R
0 p# [9 W0 T. r, u3 B CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it . {5 A+ P- b" U; t* r, I + B, @" O4 c5 _3 q* {8 z( q - u! `! b+ R6 ~$ }/ nCode:# d& N6 _" H. ^. K
#ifdef __QUGET_SWAP_FIX * V: J# h4 d I8 v" P. r, U- w$ c% |/ n+ N* n
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )7 @# Q4 I8 }+ ^6 A- U
pUser->SetHitPoint( pUser->GetMaxHitPoint());2 Y, u) I5 b5 r: ]% n- `
3 C$ a7 [# \+ F5 Y if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ) % S" @' t o x9 i+ ?4 w pUser->SetManaPoint( pUser->GetMaxManaPoint() );) ?( m3 n' U& O3 q
0 M" W: e I! } if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )5 b" P* T) ?; E# t
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );! p. w* _5 p9 {
7 m. Y- t- u! R' Z6 `#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp & y9 Q0 L$ q# Y* t- M& o2 vand add under ( x5 O' I: g$ d% G0 o& b* I* Y/ I- N6 N( p6 ?
Code:& s7 Q( `6 ~0 O# {* b
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ) % c( ^3 L6 Y5 ?( z# \' v: i {1 ^0 n9 X3 d. x8 x. |- A
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 );; b/ {) C% t. G' M* p
}this, }1 G/ t) v5 y9 }2 `9 }
* g" m" F. m1 g: T$ w4 K/ R$ T; J
Code:5 Q1 a- O) w- h
#ifdef __QUGET_SWAP_FIX . l6 X0 z. y8 w( }- O/ x2 ? if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )# E% y3 K/ |* g. t8 @% I% h: e
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint()); $ Z- @4 _: T1 f: b ( `, X- F% W; Y) m. _# g4 X, J if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )( c9 K6 L2 i; R2 M* j0 R
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );3 F. k. w8 H% @
/ ]! i5 ?. S( X- x& V( u
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ) g5 B/ _, g* |* { pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() ); 6 |+ x+ I) x" Z2 l3 X; M$ {: R+ H) H
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver # Z8 I6 l4 ]( C6 q v* s l" P2 h