飞飞世界论坛

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

作者: 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
2 e! G! s5 R0 Z; a; z; C+ ?  [I posted this because someone kinda posted a youtube thingy about it :O.2 f! G' D: l3 B* |8 ^2 u0 G- b

& D+ R  x' Z% C$ A  j6 r0 jFind this in DPSrv.cpp @ worldserver/ P4 Q% _5 }! ^% s$ s5 d) U8 `
- d" J; r$ |  @6 k9 Z2 }9 u+ t
Code:
9 z9 B6 ^( W9 @% @void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
4 z" T8 K8 R  E4 r4 @# J, A{# P4 p  Q5 O7 Z
        DWORD nId;, @1 S- W; o" j6 r* R
        int nPart;
0 {2 g) Z5 }8 t8 G$ O1 u7 ]5 f, L1 z0 \$ c0 Q3 b( o1 i
        ar >> nId;" Y6 u, |0 o1 Q. c% o! \  }
        ar >> nPart;                " ^7 n- ^) @& y, E
       
, q6 t: o. ]. S+ |5 j3 w2 r6 W        if( nPart >= MAX_HUMAN_PARTS )       
2 `8 `: W1 A0 n, \! Z                return;
4 v; q4 q0 U+ l6 T; I4 Q: A0 u" r$ {  q: S0 m
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it# v! ^& j, M3 c3 P% X' j/ q5 v
. V) }" L: y" U" ?) Y
- i- I- l- v3 n6 A; \
Code:
# Q! d$ D$ S8 T' {4 Y) D3 o6 v#ifdef __QUGET_SWAP_FIX: n) ^: P5 `& V4 ?. |$ j
# @! q* f5 i8 ~/ `* R: ]6 i" \
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
1 r( w% ~4 @" g$ i" v6 X1 ^; Q0 x                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());2 f- C  x- h3 h- B

- D$ H( K. X2 K. W) E                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
! F7 g/ w) i0 ?' r6 z3 d; D3 I                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );; E: h1 s* I0 M+ v
- L) Y2 X$ w7 h
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
9 W4 q3 o: n& k4 A; F# T                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );4 i$ X$ [8 \7 j) n* d/ L7 M; D- b+ a
0 G' C$ X+ O! F; c0 L- b
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
" R0 q$ \. ~7 c( R3 Mand add under
% l4 E3 A4 ]* ~; M
' \% h8 ]* R+ m6 d1 SCode:
# X7 d+ G) V$ Wif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
2 Z8 Q' T7 S1 C                        {
4 c. P) _5 y2 Q1 ^, Y4 L5 y9 W1 X/ _5 |                                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 f/ k7 }" B
                        }this
" [; `$ f, M( M  ~! \
3 r9 ^  U5 g# g$ I) F' fCode:
6 N: z; c5 r: W- E#ifdef __QUGET_SWAP_FIX- J8 h( r, [" I1 @
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )' D$ e2 y" W: c: y* U
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());  T" _) z. x) a  o
- x4 F% \5 W  T2 i) e% r
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )6 u  _4 T( @  ]( x0 ^
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );/ S3 e$ A4 g( o

$ M( S! a9 D# @% j                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() ). K, X. P5 e7 ^; b
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
" c. d, D7 [/ h1 g& k1 ~. c
1 Z& m7 J8 w0 Q5 s& F5 Y: z* p#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
5 B: v# q2 E% _0 |' |0 v
) U) s) R  f: J0 k( m
% n* I# M  G' k( K3 N  y




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