飞飞世界论坛

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

作者: 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
% W# l! y& A5 {' d# I* v& d5 \I posted this because someone kinda posted a youtube thingy about it :O.- f% C" @2 {) W9 h
2 c' W. _; C1 D: s- k1 D
Find this in DPSrv.cpp @ worldserver( C0 x; W. Z  p" m0 d
' k; |! t+ M" S. Q6 _
Code:
# O8 R- }1 c7 O. d0 p' Zvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% p  v  `* C' e6 v' e9 {" f: \8 [. i$ \{
3 Z' I' N) F9 V: w: b' g        DWORD nId;
. O( a2 k" }" j3 V  P        int nPart;
9 Q$ \: C6 B. I; e* a! D1 m; x. R. Q" b
        ar >> nId;" u" ?- x2 c- d9 D: ?) F
        ar >> nPart;                , X0 ^+ C9 ~6 h( \3 X+ Q7 U
       
& D- V0 X. F8 D. P9 \& o3 ^        if( nPart >= MAX_HUMAN_PARTS )       
4 g8 _5 l* M( c0 J                return;! _. R' e; Y' [9 `8 t
6 i; L' X9 }1 R4 k- R* i$ V; c
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it6 L% ^' w" F, U2 u! \+ X* C+ D5 @

1 t7 Z! j( f& R. g
$ W' m7 ]& ]8 x% B: k- ]* }Code:, ^* N! V8 B) C6 ]
#ifdef __QUGET_SWAP_FIX" {2 s. ]" @: ^; e

4 E% A& H4 G# L2 y( j! l                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )7 N' z' [2 T4 f" g
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
9 ~" e9 T" T( i7 ^3 ~' s: Y: Z1 r) ^8 p( _
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
5 O' X4 ?+ F- n/ F3 b4 }                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );* h. _: `7 |5 x! l  q- i! B
& k3 F0 \. i  a! @7 t2 e
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
" r6 d9 U2 w6 ]' n                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
+ s9 U8 G# w( U% |7 q: O2 C) W0 C7 w' C
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
8 U5 I9 ]4 R- A6 hand add under( s+ [) u$ }% M( j  W

- p  G* f* D, yCode:4 Y9 C9 k* _0 y* m, n% M3 W
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
: h) z9 V9 c8 ~- }/ Z                        {
! B. W. v$ f7 G3 P) q% x" U& M                                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 );& c+ V+ H. ~, C5 `
                        }this% L! X* D/ V1 o6 T3 ^: t
$ M4 q& T7 T, n1 S; ~
Code:
: B% H8 ^" S/ Y" p! e5 o#ifdef __QUGET_SWAP_FIX
" `. O% X& c& |! l6 p4 |                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )9 A3 ]7 E+ E& v- B# e9 t
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
2 ~2 e5 R1 W! K( m6 Z  t3 b0 f& f9 P$ d8 l+ x+ L
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )- U/ N" |' W! X) t  e4 B0 S
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
8 k: l  Y  c% n5 V0 h
5 V+ ~+ P. V0 l& P                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )9 k1 |( e) E0 u4 O1 `$ p
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );5 l8 {  h6 G/ M7 g/ O  {( f
  H% G4 A0 [2 ^% y' h! c
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
: V" _2 C2 X, l$ E
7 k7 E4 m* o1 L$ k$ Q0 J- d7 v7 W: k9 H( C& L$ W3 Z2 \





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