飞飞世界论坛

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

作者: 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 " g1 O% y# ~+ o
I posted this because someone kinda posted a youtube thingy about it :O.$ A0 f* p0 N3 y# I( [  ^
/ K- d# a9 A( J- ]6 b
Find this in DPSrv.cpp @ worldserver
5 t  j6 T; {' }/ f( ~, Q
. l, Z) |: l; }- b1 N2 DCode:$ k) s2 t$ b/ l- i2 W4 C$ G% ]1 V. N: i; T
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
% W: L6 z2 c$ S' }{9 g4 }, W) X9 V! I$ l9 Q
        DWORD nId;
* j9 ?8 O& B* V1 B9 p* z! Q% F6 x1 \        int nPart;/ Y& R1 ~1 p2 a" @. [& `+ D
2 N( ]- B* `3 z& l9 W8 U  U+ s
        ar >> nId;
7 Y7 B7 P7 Y+ B' [3 ~        ar >> nPart;                0 n0 }# e; }7 ?# ~6 J$ A4 P
       
/ i+ c" L0 E$ U# T        if( nPart >= MAX_HUMAN_PARTS )        5 z$ Z- F# W9 t, y8 L" L; O
                return;
* I* m# O. c: g. ~7 l$ d7 w# R: T) l
+ N7 G1 Y' A5 e3 v+ ?7 U. d$ l        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
( p/ r. N" f9 j1 D) ^1 L3 C, \5 c& H+ X( }+ X

1 y% ?/ n. q8 v% ?Code:
1 _: w4 F0 C1 ]6 v5 f0 u% U0 Z5 Z' Q2 _#ifdef __QUGET_SWAP_FIX
/ b# E" W5 R+ ^7 ?( H5 _1 C; W7 U0 l  u7 d' r
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )$ F6 }. k( W  c' L; ?9 J; e+ n
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
0 H: f: L& N7 U3 b
1 q- O% J0 F# K& @                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )7 R1 Q' d" W0 Z- n/ c6 D
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );" @2 G$ Z& I: S* }, }# \
1 Z6 \4 Y  a+ t0 O3 Q7 w
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() ); H# Y+ w- [3 R1 W: R& ]8 t
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
2 X3 |2 l# q  b+ C' C9 ]; i& g
3 b4 r6 k# l# M( t  L9 u  c#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
. C" D# c0 [9 B0 Q1 Y( xand add under
8 E1 @  X! d( t6 `- e3 i* k3 e$ L) ?& k3 z1 G) D
Code:
9 Q) P$ _7 |3 g! {% m4 |3 }7 pif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
; q* j7 _; K+ c" }3 g  A) o                        {% }0 ?/ I8 w* A2 ~) U/ p
                                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 );, z" e0 V( T5 |+ f
                        }this
- Y  B- ?7 J6 S, @# F4 t
5 [, |) ^" P8 _, g, Q  J7 Y% J0 jCode:1 E/ H# p( H4 V; z) r
#ifdef __QUGET_SWAP_FIX& @; H& d4 E# {# O; n" H% W
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
7 ^' Y5 y# w! m& G' |3 G- r. ^                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());& N, d/ I- C' Y

( i+ S; O4 M6 ]- l: O                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )+ Z! }# T# g$ ?8 Z% X+ u0 @* O
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );% W! {& z9 w5 _. C- b) y( y* q

3 o& q! F$ z' i6 r  R  ?7 q                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )- n) }; i. a; M2 ]% Z
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
  Y1 A' O" R# s8 T! ?' A$ l
; v' D2 Y9 O& M3 p. U& y! b0 s#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
# Y4 `1 \2 u' H  W
: C$ O, g7 j8 [: @* J' U' {+ O# o; ^8 M) j: }) e$ q8 O  @





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