飞飞世界论坛

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

作者: 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
& x% X" ?8 I3 ]# A. gI posted this because someone kinda posted a youtube thingy about it :O.* l% G- V- S) y. w, {

" R5 h8 p$ o9 xFind this in DPSrv.cpp @ worldserver
! H/ V2 P9 [( D: R, N- L) ~# K' `( W( ~5 X7 A
Code:+ R- m! }, |: k* ]/ U
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )4 B3 L. V- Z5 y0 l) E. p
{
( {; G" |+ N/ g$ r        DWORD nId;
0 r* @, g9 B+ o# \2 e        int nPart;
3 ]% |# q+ k8 t3 k  F* v4 z- y0 L
        ar >> nId;
2 T2 Q; a9 {9 p- W. l0 C2 H        ar >> nPart;               
, z. [& Z. s+ }+ [5 ?7 v       
3 B  g* N2 q  ?1 n# G        if( nPart >= MAX_HUMAN_PARTS )       
7 N$ }1 c3 f. p# B& p! k: a1 G5 ?                return;9 X7 L' W" o' K' R

0 p# [9 W0 T. r, u3 B        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
. {5 A+ P- b" U; t* r, I
+ B, @" O4 c5 _3 q* {8 z( q
- u! `! b+ R6 ~$ }/ nCode:# d& N6 _" H. ^. K
#ifdef __QUGET_SWAP_FIX
* V: J# h4 d  I8 v" P. r, U- w$ c% |/ n+ N* n
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )7 @# Q4 I8 }+ ^6 A- U
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());2 Y, u) I5 b5 r: ]% n- `

3 C$ a7 [# \+ F5 Y                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
% S" @' t  o  x9 i+ ?4 w                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );) ?( m3 n' U& O3 q

0 M" W: e  I! }                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )5 b" P* T) ?; E# t
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );! p. w* _5 p9 {

7 m. Y- t- u! R' Z6 `#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
& y9 Q0 L$ q# Y* t- M& o2 vand add under
( x5 O' I: g$ d% G0 o& b* I* Y/ I- N6 N( p6 ?
Code:& s7 Q( `6 ~0 O# {* b
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
% c( ^3 L6 Y5 ?( z# \' v: i                        {1 ^0 n9 X3 d. x8 x. |- A
                                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 );; b/ {) C% t. G' M* p
                        }this, }1 G/ t) v5 y9 }2 `9 }
* g" m" F. m1 g: T$ w4 K/ R$ T; J
Code:5 Q1 a- O) w- h
#ifdef __QUGET_SWAP_FIX
. l6 X0 z. y8 w( }- O/ x2 ?                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )# E% y3 K/ |* g. t8 @% I% h: e
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
$ Z- @4 _: T1 f: b
( `, X- F% W; Y) m. _# g4 X, J                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )( c9 K6 L2 i; R2 M* j0 R
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );3 F. k. w8 H% @
/ ]! i5 ?. S( X- x& V( u
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
  g5 B/ _, g* |* {                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
6 |+ x+ I) x" Z2 l3 X; M$ {: R+ H) H
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver # Z8 I6 l4 ]( C6 q  v* s  l" P2 h

: }3 @0 D: P  j% p+ n2 H4 P0 t% a! J6 o0 F6 k" ]





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