飞飞世界论坛

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

作者: 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 - _5 M" U% _' X7 |2 q& Q$ L# Z
I posted this because someone kinda posted a youtube thingy about it :O.0 h4 {8 G/ |1 c

9 l5 l1 j1 T. g. {9 wFind this in DPSrv.cpp @ worldserver
' `8 @; U# ?) x  ]9 t% K8 `0 Y* s
Code:' S  s3 |: x' Z) r
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
2 a; j, d+ k/ J5 i6 U  ]" Y) z{& H1 Z- E  b" f2 Z8 E
        DWORD nId;8 W/ D- U- ]' B; t6 R% F+ u
        int nPart;3 B% k7 q, R8 K, G* i

! }3 n( X  ^* S$ K8 n4 j        ar >> nId;# f9 B7 I4 |$ w! w2 u
        ar >> nPart;               
2 Z: ^7 I4 ]5 E        4 Y; ^& o5 A' c7 `8 a$ v4 h
        if( nPart >= MAX_HUMAN_PARTS )       
* m6 c+ L8 s. ?/ c" V8 ^8 R, I                return;
  E( ]4 m6 T4 {6 Q" A: M3 S' k/ t9 T" y5 n* V
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it0 A. |/ ]) Q5 |& ^, J' _# ?. k
. Q8 U$ k- ~7 C
( M+ e9 w% f$ a/ Q1 V
Code:
# w  b5 S% g# I1 h, j) _) t#ifdef __QUGET_SWAP_FIX
3 G* B6 A$ j* Z& N6 g8 j8 n2 P/ R1 i. a% S) _
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )3 |, A2 S! [5 Z
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());7 V  [" n( k& m+ t2 o! N6 n
; @* r2 N" q( x; @& b2 C" d" L3 c7 `
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )+ N5 `9 X. c0 y9 k
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );6 @& l' T/ r' Z4 i
5 G" e3 q2 U/ U8 t- J* r
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )* o8 ?+ ?% t% q* ?9 {& T* G* [2 E
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
; Q$ j7 n$ M8 ~- t5 [. X' A& c  Z# D( M/ `
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
# X) X; b( k" L- r  M5 t: N+ o! uand add under
! w: K" j3 h) B* O/ S- Z. q- P" l9 y. M, k
Code:* V' [9 E  _0 _% p& i  X2 R
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
' g' l8 S9 ^! \. y  n) ?                        {
% J# i3 ?. \" ^) c' ~  ?                                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 );
, p" m" ?0 c9 G$ Y2 j( f                        }this/ O2 Y7 P6 N* P! d- {
9 F% {% Z/ B& [: D& [
Code:8 j! x# U; J' M
#ifdef __QUGET_SWAP_FIX2 S" C# b1 u* `0 V- Q
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )* m, Z( b% [; p! s4 V, R2 |
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());+ Y9 q  ], N8 |" M

/ l3 a& K* a: r& h- w2 H8 d                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
; ^' C+ ^- {7 L                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
, e* o  M! j; y) l# _1 i3 v# n* g3 b
; C8 N" q  W$ z                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
7 o5 g+ v& S+ S5 r/ c                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );5 M8 Y' ]: V/ u0 Q/ P+ `

8 Q- q% ]' I0 Q) f2 f/ h2 |#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
& _1 k% N$ i1 r" g, @* x# r( X$ A/ o" x
! A5 p" i* f" ]! h& u





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