飞飞世界论坛

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

作者: 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 ( A5 B; O* k  H' s: R/ g, `( g& v+ M
I posted this because someone kinda posted a youtube thingy about it :O.9 f$ p6 h# h9 V! }# t$ B5 `
1 X$ u) d+ _8 g5 [1 L
Find this in DPSrv.cpp @ worldserver
( V- o, s/ J! X! K) x& r( m2 r  P3 O4 a- I: ^5 O0 c
Code:( I( |, p* u& R0 S( V
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )+ v* q9 L* J# `9 P" {% J
{3 K- I3 I8 q+ K& h4 ?0 l* p
        DWORD nId;
  y, q1 ^* Z, S        int nPart;
4 }9 n% X" S/ W" H9 ]9 D0 [( l2 p" j, P& r. G6 P7 p' H4 s
        ar >> nId;9 l8 [  R% E9 B& P, x3 i% T
        ar >> nPart;                5 @: Q. E" i" x
        : D- R, `( Z; a
        if( nPart >= MAX_HUMAN_PARTS )        & P5 N- U& u8 ]& ?, c
                return;# v; G' p# A: G: H5 ~+ a% B2 R2 o

' R6 X9 f. R1 r+ m; u( e% K        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
( N% k2 I; {/ _7 N
, O7 |3 L* x& ?0 f# z& D8 P
9 [- G4 L/ W9 [7 f0 oCode:& x8 Q# t$ z4 C6 w6 ]; U1 H
#ifdef __QUGET_SWAP_FIX
" U- [5 D% N, H2 U
' o0 o% Y' V" @8 K: j                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )) y5 {' D' P; o9 t0 o; \
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());# u3 S$ D0 e2 l3 T' h7 M! f

" i' C. ~+ ^4 A  S                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )& P% O' G( A) L2 w5 q
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );! N) E* [6 t9 Z6 T
+ Y3 l! C' |4 v) F! a" C
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
0 p. u  V. D' H1 N  \2 _6 W                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );6 D& c* w  r3 m' Y
" j1 n0 w+ h& e+ D! S
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
- [& ^! q8 v# \and add under+ u! S. F+ }8 w3 u8 M

+ Y- M7 M1 w# D9 pCode:
# H5 V7 t1 s# O0 w( }if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
& b" g7 u* m! e1 n3 }$ t/ J  K7 }  b                        {
+ M) h& ^8 h" ^7 D2 O0 `) d- K+ ~) k0 I                                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 );
, {$ X, `# b) m6 ]$ u5 k! O                        }this. h/ K/ e+ c+ u4 W

4 M4 F' S( x& }" yCode:  D2 p3 |1 Y2 I! j
#ifdef __QUGET_SWAP_FIX
  @$ m3 k0 B/ r$ g. f" H                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
+ _5 N5 r  x0 [" E  z                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());1 K. a/ o0 k0 I8 N' ?! r$ H1 G. B
5 S' |. c0 j& D0 G" ^% v
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )2 |3 y  w& f6 x% S! h. p
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
1 F1 w( M) K  ?! K' \. N
7 T3 U3 e4 g( R. m                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )7 b2 G( x  M& L, S$ N" v
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
0 {: p) S* d4 L
, e/ r2 {( C( `3 G- r' Q#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
4 u) ]6 u& D- m0 U8 ]- k( N
- {8 W8 b7 j; s: ^5 Z
5 O0 C6 W+ e9 y+ `0 i7 Y+ ^2 x) F2 b




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