飞飞世界论坛

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

作者: 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 ' E. `' A+ E( {& W
I posted this because someone kinda posted a youtube thingy about it :O.7 ~5 S% e7 ]$ j6 c5 ~3 f

5 f/ r$ f0 O) W* WFind this in DPSrv.cpp @ worldserver
7 w) f. J& u+ X: Y
9 w( Z4 d) i: o, ]7 }+ VCode:
% {6 v" l: r2 M1 Pvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
- M# P( u& `9 Y( A' K$ m{5 ^1 T9 J6 B) {
        DWORD nId;' q4 ^' l$ b" I6 G1 P- w
        int nPart;
6 d3 ]% H( A# V
3 E$ a5 U: X; |) p, v$ r        ar >> nId;% u( A7 _, E3 j, U' j- `. ?1 f$ r
        ar >> nPart;                : m4 \# T1 ~8 R0 K+ y# P
       
% ~5 W' j2 j( a: e: _  _' j( P        if( nPart >= MAX_HUMAN_PARTS )        0 j# b0 R6 \! g# `  }
                return;
& w, ?6 y1 |% @$ j. S8 l& v' _- i" {- z8 B
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it5 m' u1 l" u% }- g% i0 U7 ^6 C
+ S8 Q9 C' D7 A+ _
6 D, O+ s' [2 T$ _! N1 T$ f/ [0 b
Code:) b8 v$ n2 \9 V! O& G* _
#ifdef __QUGET_SWAP_FIX$ B2 f( e. V/ Q% C) g' [4 K( ~

  o- ^2 D2 m5 K# v8 \                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )5 G9 W/ o2 r7 I  O& L  k
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
! `) q- |3 A( P9 d2 b% Y, ]) R& N& a( D8 r! J, j
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() ). O; L5 z+ ~. Y3 @; C+ m  @/ |7 ^3 z
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );* Z  D' g5 S* Z$ ?

6 B( b7 @6 A* r/ N                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
* w  `, p# z: y0 t                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );5 f- z) p" K4 _$ H0 z* r  U

$ ?, v# A+ a2 Q9 g6 K#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp4 |2 w8 K2 x& C
and add under% T! o7 m; x7 X$ P; E/ d& c
. U6 ^6 w3 T; f. _
Code:
- c9 ^9 \' ?! Y; C( I+ ]7 u* zif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ), Z* u* E5 s* V+ s" D
                        {/ d: k( m/ {# n  G& f6 d
                                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 );" N# ^# o" N# Y9 y
                        }this
' l; k3 S4 K& G2 H( q
- f& g. t3 x' `Code:3 y% Y8 _) j6 w/ ?! y
#ifdef __QUGET_SWAP_FIX' g' @9 a. f" ~9 ?- u, c8 T6 a
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
7 y- X, I( U+ i/ E; @+ {                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());/ k1 L9 x" U6 F, m4 x

9 t; A) O. G$ D/ s" Z5 @                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )3 @% l4 F' r5 {. X/ o  o
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
* R/ U9 V" }% w/ g3 X" V6 G# |; I) S2 O5 ~7 c7 m2 s5 h
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )- _% }  j0 |1 g
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );* W* @6 f, r6 Y3 m" J1 H
0 U' R0 I4 |' i1 a
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
2 w; M1 w! O- W5 B6 J" ]; M" ^+ U, m) W& h5 r' }
5 Y& H0 W+ b; `5 E8 h& ?, z7 S: N





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