飞飞世界论坛

标题: 修复交换错误 [打印本页]

作者: 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 0 E4 ]% ^& H$ k1 H% t1 d+ P7 ~
I posted this because someone kinda posted a youtube thingy about it :O.9 ?, ?: B3 L7 X& X
( K: n, d) p$ P
Find this in DPSrv.cpp @ worldserver1 Q: j" h; C- z  R7 X

6 j4 `- z! L" t) G/ ZCode:% A) @9 q0 w% g, F0 L+ d* l7 K
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )8 v. O! B/ v9 N6 F% ^1 A1 ?& s8 b' m
{( @( f" w1 t& T' P
        DWORD nId;# U6 G) t( Y4 I* j3 g' }7 Z
        int nPart;
) M; \( l% S0 n! N- T9 ?8 |( _+ m& F. R* g5 i
        ar >> nId;0 M! o# |/ z9 ^; `& @4 S4 D  u
        ar >> nPart;                ' x5 F) X( v4 I# _
       
+ V/ A$ x) ^6 z1 N+ r( U8 K        if( nPart >= MAX_HUMAN_PARTS )       
/ L0 y: Z4 _1 s6 A                return;
* X- X$ b; z! e; I% u
2 j7 S8 Y9 g. K" C. t        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it$ r$ R3 @" t7 e0 |( w$ L
9 F' U0 V  {$ I3 r# w$ t
6 [% H2 x; d# Q5 T9 u" o0 p# k# k0 V
Code:
. i, Q- O- u+ |/ t# b#ifdef __QUGET_SWAP_FIX$ ?, h( O, c$ z0 N

( S' c+ t7 k" F' @5 m: |; p                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )' U6 {0 g' B0 {" J
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());# }; [  v* q' A9 }. _
% l3 |) I6 ]+ q) X/ `7 }
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )7 \/ q# O$ ~' ~
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );! d0 D7 z& k3 Q" F8 V* Y
9 ~" H/ X  {( ^$ Y+ x2 c( T
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )5 X! n2 \2 a0 j( f7 l
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
+ p* c- i4 h2 _; Y  P
, _/ V2 p9 f( b, U9 X0 h#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" ?  z( A# s( E! f! k  e2 t2 Kand add under9 e2 l% P; F1 W5 p
/ N4 z1 J& i* i( c2 @1 `' ^- t
Code:) R; m5 K" s) k  b1 Q# I8 I
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )- K2 L( ]: b) l% a7 n, b
                        {
1 s6 |+ g1 v$ C" v% Z: A# 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 );- V' ~  N0 ?2 U8 q8 P4 n  ]8 v
                        }this
! B' b  D  d0 y. O$ H3 s7 |- N; V6 R% p8 J/ K  ?( _
Code:
* [' n7 D2 Z' q( j  U! K; F#ifdef __QUGET_SWAP_FIX# b: m" w! [9 |# r4 ?2 x+ F" Q6 s! e
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )2 D: m; t& g( l) b( X
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
0 b$ [4 e6 p3 y. z9 c) Y
. O1 A, V8 L* h3 H) L5 D( S                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )& r. P2 I/ R3 C" \
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
4 o" v9 Y/ g# k4 @+ X2 i1 K+ {( T) }2 O( _! T
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )4 [9 X; |3 |( m) E7 K4 E3 O
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
) s, t) j( ^2 ]+ Z
/ J, w5 g- x6 }' m#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 2 L6 Y7 m0 O- x& V& c
* S2 Y0 t7 Q  D+ b1 T
3 h  `4 U4 f. x; _& {# X+ `# P





欢迎光临 飞飞世界论坛 (http://www.ffwold.com/) Powered by Discuz! X3.2