标题: 修复交换错误 [打印本页] 作者: 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 / v. S/ }3 q' z# r2 U3 B9 ?* J) `I posted this because someone kinda posted a youtube thingy about it :O.: O g7 U& }. `! |% d( N
% x% `9 L$ Y; a# B% eFind this in DPSrv.cpp @ worldserver 3 L1 U; R% N) n$ Q0 p+ \. O0 Z% @+ h) h G* @. H
Code:: C& Y+ O4 M& `0 |7 L- a$ ~* C+ m
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )* O$ s$ [) X. f% |1 x
{ l$ D: j" ~/ s$ c# i$ j1 G% z: w
DWORD nId;* X7 Z# G x. e) v
int nPart; + P" Y! T+ S) U o1 t/ w* \ " O, b& `6 C1 ~! J5 n3 c0 n! f# t ar >> nId; 2 E C- Y2 ~$ p0 E% o ar >> nPart; & S! r& F$ a K; Y8 l: r
+ p" p, O3 t# ~0 t: a/ s. w if( nPart >= MAX_HUMAN_PARTS ) % I% i2 o. l, B
return;+ Z( a* C% M: @; V
& M! d& f4 I& G( z3 f
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it # X) O; B- F5 U& f" Y; c' x4 K8 r* A; M
& Z6 y+ n1 ?+ F4 U
Code: # S, ]' L2 |5 {$ w: x#ifdef __QUGET_SWAP_FIX- J( Q2 |+ k' w3 ]2 k- H, {
4 S: D h3 Q4 G+ ?# i K, \
if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() )1 Y4 j- Q; o' n( A( t' _
pUser->SetHitPoint( pUser->GetMaxHitPoint()); ; H* Q& M+ k6 r3 N* H1 ~7 Q2 J; `: n: ^6 v5 v
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ) $ l5 f/ A% g0 a pUser->SetManaPoint( pUser->GetMaxManaPoint() );3 M' b4 t, ^4 R
, D& A1 a7 D- i% f# C
if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() )% j$ u; M$ }; W7 R. M$ @3 Q& t0 ~' t
pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );3 j4 |8 a( W g% [ V; m
" H4 e6 Y& Y$ F8 u0 H( N% B @5 J
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp/ P! r+ o& X& ?
and add under& Q0 c' c# A5 O
* H% h4 V& w! W9 R7 H$ _
Code:/ f: d3 \6 w; ]( M1 E
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ) + i" X0 u& b. n% |; g { 3 r: U- R4 I7 O- I! B8 y/ J 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 ); $ y' W9 P$ i$ M$ T# w2 p% O }this * {- R. b2 @0 p* ~& G* f$ @% T3 ? 5 M) H. t. r& zCode:5 ]3 o$ G- a% s u3 D; v$ E3 }
#ifdef __QUGET_SWAP_FIX: |2 X$ Y, W2 ]+ S, s, C2 Y
if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )$ U, c, I$ `) K1 }$ r: q. g
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint()); , g$ @0 f5 E% W4 j0 X d8 X/ k8 @ ' _3 {8 l3 e' Z) b" i# M2 B if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() ) - s% @8 t& S' R pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );' G. f, O) t$ S5 F, l% k
. o8 U8 r4 l4 _! F& j# N
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() )8 G4 N0 E. r* B6 H/ Y7 {7 Q0 p; h
pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );" X; m- d( T/ d
0 g7 J. B( g0 |+ [8 j) X' s#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 8 o j1 p3 }8 G4 z2 b* x