飞飞世界论坛

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

作者: 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 3 e% \1 Z: z! T1 {- v0 H
I posted this because someone kinda posted a youtube thingy about it :O.4 u: X3 I3 f1 F! W% z+ ~9 F
2 Y; }6 B  E9 F# {+ P
Find this in DPSrv.cpp @ worldserver8 B  `2 O9 @1 m" B  r& l

% r! Y: u: `) s( L7 lCode:2 F: l& Z7 M6 k/ |
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
! g5 z9 |7 L, _5 I3 J9 g! H{- k& z8 X, a, ]1 h; G' `7 s
        DWORD nId;
8 P( p3 X! Z- c! K0 j        int nPart;
. k" l- W- U% o/ D4 x7 \/ G' i( ?; z8 ^  a+ ]& U
        ar >> nId;; b$ I( q7 V- u4 a2 F! L
        ar >> nPart;                - o" i9 ^% E9 n4 p$ K5 V! f2 `8 }
       
: m; E6 n* ?0 m. {/ C        if( nPart >= MAX_HUMAN_PARTS )          n0 s. k  f) A6 @# a% U
                return;- e* Q6 K  v# K

" P0 U8 |4 ?; H7 d        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
; ~5 S+ M! F3 w3 N+ R
; d2 a7 x$ Y% q1 i; o2 v" b; i$ W9 w- v
Code:' E6 x: i3 U# W
#ifdef __QUGET_SWAP_FIX
6 }5 E7 y: z) H  y7 K; @% x6 h( i& ]# L2 O, B( `. t* s3 [' {
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )1 n, k. K+ j+ i8 Y6 l) K; n7 j
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
, ?/ I4 G  m5 i8 @
5 b% [/ G1 f4 i( u, x/ q4 R                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )2 T  `6 D% n: D/ U. u' y4 f
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
1 p3 o, b8 l+ R  U. o% ?- y( j+ e, G; F, l; W" ^
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )# C# \* F0 D4 S! P% [
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
! K5 Q2 p0 o( s$ p! P: A5 g
. N0 D0 P9 }! R' [#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp* u3 @% u" z. b9 j* K5 [2 _! w) s
and add under
; s! W2 T9 P6 ?' R7 i  i6 `5 }
" ]- V' X6 d; v5 RCode:
* n0 Q9 `; r5 Gif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )6 q) i6 ]/ i0 q  E: a
                        {. F9 `9 R: v$ t  V4 _- w
                                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 );+ x- T& D4 e: h+ D% e
                        }this) D  }$ q  @# P" k
* V! o, l" R9 Y1 C. [. j
Code:
. S) B* F7 z* D) r#ifdef __QUGET_SWAP_FIX
0 m1 M9 d/ s* A4 F+ ~' m                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )( F. K3 S! h$ L! y+ d+ Z1 p
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());0 m( ?1 \5 b5 u4 @* Y

$ ^2 i- z0 m& \6 |' i9 ^                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
: |- K2 w+ K. M7 s' J- T2 K* j4 b                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );2 v7 t0 B5 r' Q
. i) G1 n# W( {. b5 Z0 d  {  J
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )$ O/ S. m& `1 m- i4 f
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
7 o' M9 C+ J8 w6 C/ k' w' T4 i5 E0 w  l. p  F. I- u+ F! J
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver ( O: R7 o3 W  o% m( E; ^# S$ ?
* u( o) c0 \) @* Y( m

( ~% ?8 a3 Y; J9 T




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