飞飞世界论坛

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

作者: 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 ) ]$ y3 a5 I1 O
I posted this because someone kinda posted a youtube thingy about it :O.
4 |5 t: N) f% j2 F- x4 q, U. ]4 w% A5 s8 ?, m+ f3 k
Find this in DPSrv.cpp @ worldserver
; O# \1 m8 G3 N  {- Q) W) {& p! F2 s+ h5 q9 b  o" R' {# ^
Code:5 T2 s0 u8 d+ t0 f
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )0 W: C  r9 u4 S. ^; t! X: G. @5 e
{8 ^8 g8 C3 R. O& t
        DWORD nId;
/ D9 `( o# E0 [4 Z- y1 d; W: r3 j        int nPart;3 i% u5 N( o4 @* }! l

) |( h$ b- k0 ?+ e        ar >> nId;
+ S6 }4 v# i7 a        ar >> nPart;                3 j5 O# z. v5 q) F" L  V
          p# i/ `) E1 ^
        if( nPart >= MAX_HUMAN_PARTS )       
3 m6 a( b. d' p3 Q' h- M5 R+ P" c0 e9 J                return;; M; H# _1 a: z+ a# C

" {; X( |" E) u2 o+ A, b+ L        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
, N+ @3 u9 b% z3 v& A4 R* C0 J, b* U
. U! S! h/ i. m$ L: p/ p9 ]
Code:1 ]: E( Z2 H3 g# ~) \' R
#ifdef __QUGET_SWAP_FIX! C) @. F, ?! e6 v# C9 a* @* D
) ]: @, y9 u; j
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )" i( r. R- a7 j+ R5 L- N% `5 Z
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
4 H" j+ B  G- P1 P# m  S$ L6 j& r3 O% U! A/ x6 q7 o
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )2 ^6 A) F2 ?. P: l6 U
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );  C( O7 \) X) G$ ]6 _7 z
% |. E( F6 ]+ J1 z
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
5 e* E8 O* _5 K$ t1 e- ^                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
* T6 E& L& ]9 n
& r2 J7 ^" G+ E1 Y& \. o#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
% M2 F# v. z9 t5 P' Jand add under% y5 d- u1 ?9 w& N
, c/ ^" f$ |$ l/ y9 x5 c7 n6 g
Code:: s6 |) d$ X- D  B5 {1 S# Y
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
" Q% F: Q/ M, V                        {! A( x$ p/ c/ [8 T1 ~; ~$ Z2 B
                                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 );: A: A! v8 q- Z0 }
                        }this
) c  B% C  R6 o* k
" R/ x1 D" q0 N" z* I3 X; z! \Code:
# j  C& I; p/ W4 Q! u#ifdef __QUGET_SWAP_FIX
( ?% v: m8 A( f/ s$ J9 a                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() ). @+ w: q7 Z$ o6 f
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
( l3 `6 i: y9 Q1 y# ^) u& I) B' N1 ]( W' b
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )' _! \& U5 d+ n: {
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
5 L+ Z5 s/ `: r% o+ l/ {+ V5 f4 e+ N7 d" t2 S, z
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )  g" D% k% D6 B2 M! D
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );9 _1 Q' @) Z( v9 ~& W

5 b3 g% ?0 A' |) @+ s9 `* Q/ W. k#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver - B: T; Q, E/ @. x

0 F: `: u9 T+ @$ t* u3 ^0 @! ~7 O# }3 m3 r





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