飞飞世界论坛

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

作者: 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
  I& y2 U" C7 ]I posted this because someone kinda posted a youtube thingy about it :O.
/ z2 G  U+ w" @: R* a$ V7 t5 [: E) i* Y
Find this in DPSrv.cpp @ worldserver
. a. t$ K$ y7 w3 P5 m; }( S9 F# H. i' i. m/ j
Code:1 S% E3 e# P3 F4 A9 A
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )6 b+ {' \1 z. Y$ U& i6 @
{
. p! O" {! l" z: o6 P        DWORD nId;2 D0 i, W/ c8 p7 P9 T) ^, N# N6 X+ W
        int nPart;9 E6 u! {9 G, c; R9 ]% G  a4 F5 y

6 X! y5 s1 K! u1 |1 O, k) w        ar >> nId;
" }$ y2 J- ?5 a( L        ar >> nPart;                1 s& w% E8 Z# R& I
       
& ^. T( f; C+ e' ^        if( nPart >= MAX_HUMAN_PARTS )        9 R8 @& R0 P1 f7 N
                return;0 E7 z3 {# n, C" q- g& }& R; S$ l
) C7 {, x% p/ k) O- S5 J
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
0 B3 D1 m# [; Q
! b4 L, V9 w* x, q" ]& ~: F" s/ C, l0 _: d9 ]8 n( A" t! T
Code:. B5 [5 ?! C& l
#ifdef __QUGET_SWAP_FIX
8 M& K: F4 ^; h' B* E; q: e; L1 P
. F3 Z8 u' g  o8 L# q                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )+ ?6 b; t# f+ F+ g7 Y3 k
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
5 b# C% g6 I, n+ `% P1 u! H* S  m" L' h3 z
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
% }+ D3 ~5 r! r4 j! f% @# c6 f; f0 L* B                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
/ g- y4 d1 i/ b- [) D% V7 g; H8 M; c( [% [. G
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )( L! T! g8 {! n+ `2 G& q
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );  [! j5 e: h8 o. K9 X4 D/ b

" H7 |) C- r( J" k7 R0 N( j#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp5 I3 \; v. N8 d9 A4 c& v
and add under
# v. u+ X. v; L, u' x/ h4 M: d5 A: e4 Z
Code:2 z( a( y; L: b4 R( l0 j3 G! C
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
$ m( f; c+ L4 T! j! j* J                        {
7 s) i+ z, n2 E5 m/ x                                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 );' ?* K! h* q- H* b" [: ]
                        }this
' N/ i6 C' ?" e6 o( s
7 m8 Y; M' t' {0 ]% T8 s8 O9 nCode:! l* ?# a1 [6 N& A9 @2 k2 U9 ^4 T
#ifdef __QUGET_SWAP_FIX  P# n5 Q6 f2 p( J4 ]9 |- b/ L
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )1 q7 d+ h) O$ T% Z4 a9 e( |' q3 R
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
9 e& Z( Y* V: g! i9 j  I/ e
  J. N0 _/ j5 O! e" k0 p1 T                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
: i2 Q- O) R# V. o9 Q                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
9 ?  W/ P' G8 I& b$ j/ H* j7 v4 l- \6 A& \; ~) U
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() ): R: W) p: F, Q4 E1 J. X, Q
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );1 t3 z: [4 s& A# g8 H
6 P. N' p+ e9 a$ v1 s# [3 D0 e
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 2 j  L5 c' e+ n; ?

  P5 c1 z& T: R: Z7 D: w* p4 r1 b$ k4 |0 Y+ [: d  y6 M) i





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