标题: 修复交换错误 [打印本页] 作者: 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& t4 g$ C! A' K
I posted this because someone kinda posted a youtube thingy about it :O. + {6 E9 O9 {2 O; M$ p C( {& I9 ~ q" ^
Find this in DPSrv.cpp @ worldserver 5 T9 B# E. ?6 ^- y% j' t 7 W$ w; K, G; J FCode:! z" K/ E% {# t% X& n: ]# m+ P
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ) # l% L& ^& j, t$ q0 ]0 `{ ; Q+ D y9 ^. m$ }8 w3 T* O C. ^ DWORD nId;/ ~5 [5 z* w$ w% W5 F
int nPart;' _* N. N; h0 p" G `$ { ~
5 f5 _$ _ a! E1 Q ar >> nId; . r- D; c x$ v+ N( u ar >> nPart; " @" ^& |- G7 E" D. ]* h' ?7 ^ + Q4 J$ V1 M# \
if( nPart >= MAX_HUMAN_PARTS ) 5 B$ Q3 k; J1 \+ R8 L return; ; V2 ^9 T5 _- l* X3 N9 H* r / D* ?8 q* {' ]4 T CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it: o0 A8 C) A$ m* L
6 I/ N4 v& R! N& D4 F0 J, p T3 `
( a0 @9 W! w* i; j/ A% Y/ L2 o
Code:$ `5 I" I; M9 g; h/ D6 P, s
#ifdef __QUGET_SWAP_FIX! r: k) r i4 |: b" P
8 O: T7 k) H H( Q+ C" Z if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ) # s4 a# }! e7 [5 y0 f& E pUser->SetHitPoint( pUser->GetMaxHitPoint()); 1 \: [9 E& T% A8 ]6 ~. m0 D$ A- J8 l2 P$ M# u' W/ G# }
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ) 0 C" y0 V" l. {) d pUser->SetManaPoint( pUser->GetMaxManaPoint() ); 1 p: \) e1 o' s# K( y j ' k @. Q A' Q+ x% V, s7 f: a if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ) * w, O( @ C+ f2 X, g8 ]/ R% a u, @ pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); 7 T! h: N V8 n Z( S % l6 C% G3 q# ]/ i2 u- J N! v& N#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp * I# l! s' j& m7 kand add under 2 O5 {: A- ^- y4 l& U0 o* U0 s$ Y4 ?& B, K1 U0 `
Code: $ d; P; E' i' Mif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )) W( I% M7 I. m" Q, v
{ + l) E5 W1 D2 W4 e 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 ); / | ]7 `& R7 x4 ?1 t }this. h- O9 N8 n6 Y& i# J) E% L
% f3 P; B& Z; A. q5 [" }) JCode:( f) Q1 O7 b3 ~: r- f% j
#ifdef __QUGET_SWAP_FIX 5 C- @% h3 }- m if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )) Q) y0 S b" O
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint()); & i3 m- v0 c$ `6 M. c% j$ R& P2 t6 J( _# m+ s1 X
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ) p! o% ]" ?( i1 {$ b' r, ?
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); 4 w3 G/ x$ Q1 g& T7 e! H / I8 P# t1 n* _# Y C5 c; a: N if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )1 V% G/ K" C* s) i U0 X- m9 o
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() ); 5 @5 c5 y' d4 J' t0 m/ i& q2 Y" u& o
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver m6 U$ t" ?' i8 }& J0 I* |9 |' F6 b' Z2 @( k