飞飞世界论坛

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

作者: 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
  D7 w& W) y$ o" |+ R  y; xI posted this because someone kinda posted a youtube thingy about it :O., v, m# |  L$ ~; z! C$ J$ z

' ~0 S7 b6 z" f. M. A) wFind this in DPSrv.cpp @ worldserver
( n; w; X1 t- \3 V$ E! l+ t+ l/ T0 D
Code:* p8 e' v% K3 g+ `
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )3 y" z6 n( l2 ]# _. `( ?1 [
{, `# {" x5 g5 b) Y
        DWORD nId;
' a8 e! [9 R) P: d        int nPart;
9 G  j0 j% H4 f4 H' n( [6 v, z% K
9 T9 x# ?' i6 K        ar >> nId;  l% ?0 M8 \, m
        ar >> nPart;               
3 `' n$ ^2 r  J' k6 L; Y       
1 r* t9 s, C1 g  ]* r( r* c        if( nPart >= MAX_HUMAN_PARTS )        9 b; E2 u+ X5 Z" U2 m
                return;
: y$ F3 X$ P6 i1 j/ [! _  l( ]$ I5 v2 K: l% w+ m
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it7 ]+ E" I5 K, L2 {

6 k8 p3 H3 E4 ]4 R* J6 Y$ w5 \$ J0 g  d' B. ]$ S- ?- f: h- N
Code:7 l" j0 D& A/ _
#ifdef __QUGET_SWAP_FIX4 ]$ P6 h) c3 D$ T5 n

6 t7 o/ C5 R$ w6 t  d! R                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
- g& H% B9 k% w+ c& \3 L                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
5 Q0 a$ Y3 k' x9 O- F' v
8 W6 H1 n* f$ H% O. f0 b: C                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )" s8 Z( @% |/ _- s
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
7 }1 T# r% r* M0 h: B6 W; x0 U( i! S. h: _  U: {/ A8 [) C# i
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() ). m$ E7 M% _7 l% o( E
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
$ h4 h6 U) B, I8 W& A; t# E) W6 ]9 M4 p  e
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp. f7 J# s2 l  L1 X; K7 z$ @. u6 T
and add under9 }) P6 M9 d; r8 [
9 v: x& I8 k7 t6 I
Code:
2 {2 J, i% u, Y% u  oif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )& O1 o! D) U! R( k6 @! b9 E
                        {
7 g  I( N8 w( d, d& D4 ?" H                                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 );1 e, g  T; V  U  T- Y' _, n
                        }this
! w5 K' @; f4 v5 q* P/ ?0 ~6 t+ w% ?6 [- J: y
Code:5 Q: H1 k/ m! H5 e7 X
#ifdef __QUGET_SWAP_FIX( O" X7 ^: b* U8 O' G- {; D
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
; s% k/ r$ _( {                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
6 g! t( r9 ~# y9 I, v
; D# l$ l3 a7 [4 a( X                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )4 |/ f8 P! R. @* y8 u
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
% J, f7 @8 `  e
  F0 _4 g1 O8 n$ z2 n8 L; p; |0 q                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
3 F  H+ ^1 v4 _                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
( t( W  X: i( N) T9 t# o% r+ C5 c( ~3 [5 F
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
% i% N% r* ]3 l. M+ b7 N& |( N- u2 _7 U4 u+ f0 o
8 h5 c% `' B* [3 _* r' ?; Q- ^$ E( j





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