飞飞世界论坛

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

作者: 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 . ?% s6 S, L% H- I4 ?' ?
I posted this because someone kinda posted a youtube thingy about it :O.
" A+ p$ v. `% ~/ d: M
8 O9 A/ z; m  _7 DFind this in DPSrv.cpp @ worldserver$ P) `( @4 \" E! W7 M5 ]; J& M

; x  c( p. e6 R1 Z$ q4 vCode:$ K2 O4 q, f* B+ i4 |; L& q
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )  ?7 [4 O! t5 _* k
{5 ?* Q' r' b  H0 x1 t( Y& `6 L
        DWORD nId;
3 Z  W  L5 \% q- p! C+ R1 m        int nPart;
7 t8 c  ^) z# l' U0 V' D) _" m( Q& s4 U& ^
        ar >> nId;
# i, c; ~; ~, g        ar >> nPart;               
7 E4 B- D5 A! q/ X: o+ G        - Z  `: K# X7 e  T
        if( nPart >= MAX_HUMAN_PARTS )       
, \4 F  t8 M3 `' }5 |                return;! m, I" r( G: a8 f7 G5 D! t& H6 f5 H' a

) _+ o0 g7 E2 B/ k' q        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it, z  r( I2 y) a9 N! j4 \, @" H
7 d# p" m0 f% `
9 f/ K- ?- U" v: u7 R2 Y
Code:
& ^- J% P, ]. }  S! M#ifdef __QUGET_SWAP_FIX
9 B1 l; Z1 S: Y% @, p0 L# o
8 w# [- A& h. ], p) z                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
3 v5 Q3 Z; x! i                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
8 Y% ^2 S; V& Y# `  N' [0 U9 J
, M- R$ @: U, e0 \                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )' N$ w6 s( _6 g( e. _  s
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
4 r) f4 M* e6 b0 U. m, P2 t# \: ^4 Z) b; t
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
5 b! Z# Z0 W- a                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
6 i& r+ f  h1 Q% v  ^1 U
4 ]9 r. m1 F1 [6 @" d: q* L#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
0 V) D; q& I  q9 s* |6 Z. Band add under
7 I5 N* j  `: g6 j0 m: u% t* [, R( e9 ^2 B
Code:
3 m7 u/ m. T7 R5 Pif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )$ p5 v' H) \/ I. S
                        {! U  O, g8 a  \# r+ l- e
                                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 );$ A5 Q7 @. R% w! D$ f* T, a2 R  B
                        }this" d6 T9 E! z( @3 [' P$ }

0 m8 z4 ?5 ]) z7 _1 @; O7 E! vCode:. }/ b8 q6 A: Y$ {( t
#ifdef __QUGET_SWAP_FIX
( h; N, M' X2 l/ [1 a+ V                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )( Q% w5 W! J! E2 m* n" p
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
, {. h& Y2 J5 t. b* d8 _& }5 p% l: e* P  h8 i  `" P2 D* [
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
$ \5 U/ T) }/ F* B                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
1 i( |; P$ A% D  e( s! s) f
, X- Z0 A. D7 L$ a) y                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )2 V0 _. A, D9 M
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );; D$ E3 L) G( Y: g9 g
  v6 z4 a& o1 p7 p6 \0 m
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
  f6 u- v( H& z/ R' d9 y) W8 q( K/ k- }% C

" T! S4 N% h0 J3 @




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