标题: 修复交换错误 [打印本页] 作者: 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 ; Q7 m9 [2 K6 iI posted this because someone kinda posted a youtube thingy about it :O.2 ]* Y$ v1 t2 U0 L, k; N
6 f: O' ~& ^, G' |7 ZFind this in DPSrv.cpp @ worldserver 0 C7 P. ^, ~7 x" f * Q' A" g+ |' u; V5 M& XCode:& D& F5 |0 `% g5 M3 f% ]% t8 d
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ); _. [( I2 Z# I9 U. p# v" r
{ " P+ O$ {9 r1 t3 F4 P* ~- S DWORD nId;, A/ C) e% U& ~* N7 l. r
int nPart;# n& c% ]8 q9 Z* d% v9 ~
3 Q' B# E2 c y3 B y ar >> nId;; c% H4 v2 S+ D7 V1 B* x4 H8 J |
ar >> nPart; 6 {+ q' T5 l! |' G/ y . ^2 S# l- ^! E3 ?9 x; a8 |- j+ \6 R3 K
if( nPart >= MAX_HUMAN_PARTS ) # w! W) V" X! [* P; _3 y- k return;/ E( M, l- n5 `& J7 p& {6 ]. o
. g. c. P: N6 s
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it : o. H4 R; L* d [& g( r - o2 N: T2 m+ x- y/ G/ G& w ( K" y; u- n& G5 Z- RCode: 9 P8 K. U$ a9 }% F; J6 r#ifdef __QUGET_SWAP_FIX . L8 [ _2 n+ b2 j8 e 6 N# u5 T9 Q7 U6 n* X2 d if( pUser->GetHitPoint() > pUser->GetMaxHitPoint() ) - t- c: z) k7 S! O6 g3 w6 r5 w- H pUser->SetHitPoint( pUser->GetMaxHitPoint());8 ? }8 c; P7 [& ]7 }( Y
. m4 R k5 m! H% o+ S; f
if( pUser->GetManaPoint() > pUser->GetMaxManaPoint() ) & K& p: R' d3 M& T pUser->SetManaPoint( pUser->GetMaxManaPoint() );4 I7 T6 K! y7 D; \
" B. X7 {1 v; Q9 R8 ]. N if( pUser->GetFatiguePoint() > pUser->GetMaxFatiguePoint() ) " z$ F, I4 i, F! ^# W$ ~! M pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() ); 2 T8 r1 ^* S6 @3 y4 |. ? N 1 x( T) t4 ~4 T7 z+ E% Z#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp 7 u* C, @6 h) E4 ?" V) \: U* `and add under8 a* `" O* J# L1 ~
) ?( m* U8 m" _# R/ x1 OCode: 2 k X6 a8 _8 y8 W! |. `if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )( |! B- _) q7 F
{ , ^. Y ?- q ^% B7 n N9 ~ 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 ); 6 K4 e+ r* B: ~) l/ p4 T/ B# Z, m6 U }this + ~5 f1 _4 x( z: s! b* J# X3 Y6 m X% ~! L
Code:( y! l1 w! P# I$ n
#ifdef __QUGET_SWAP_FIX ) P2 u# |' F# H/ y5 s+ K if( pPlayer->GetHitPoint() > pPlayer->GetMaxHitPoint() )/ J9 E5 i) b/ U. m
pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());( {+ N6 D+ c( ?+ m" v5 P( v |+ ~& Z
( k$ U4 x- t9 ~5 N+ N5 v8 @
if( pPlayer->GetManaPoint() > pPlayer->GetMaxManaPoint() )# ^' Y. i4 v& J n, f
pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() ); ; u0 j3 c% x# X& _0 z4 b( d9 K: ?5 N# W ]& T M- t
if( pPlayer->GetFatiguePoint() > pPlayer->GetMaxFatiguePoint() ) / w5 K) S9 i* ~; @* q pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );1 a- Y. h% V0 g# T& x1 I1 A! Z
* l) F1 Q) n+ l! t; |6 Z" B( B( J#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver [7 f3 ^% p+ w, z4 w+ J
* c2 a7 P1 W5 i/ K, ]! K6 z. {0 ~
) @# s" C! U. D/ i