飞飞世界论坛

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

作者: 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
. }1 f& F4 O% C9 w" m+ c+ ?I posted this because someone kinda posted a youtube thingy about it :O.
' C+ n; l6 D  G
0 [/ s5 v* j- j( ^6 uFind this in DPSrv.cpp @ worldserver
+ p7 p5 x: Q* Q) g+ [* ?) r; p: s7 o1 P$ n7 }
Code:0 {7 o" ~6 P' r( K3 ]; T. I
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )6 i" \. N* S+ h9 n6 V5 }6 }/ N4 B8 f
{
& x- m- U2 l' s$ X7 |        DWORD nId;& R2 N3 ~4 g. Q" A9 K' ]
        int nPart;
; {% h4 @+ i- B9 O/ h3 p+ y  ^
/ o. t- b) E2 @5 q7 h, a        ar >> nId;
$ i2 I' H! S% V, Y* _        ar >> nPart;                , V# h* h) S/ ~. ]. i" w! g: z
        6 l7 V) o9 @* S, A- T0 z
        if( nPart >= MAX_HUMAN_PARTS )       
* I. q/ F/ O5 m5 r9 S                return;) Y% V% H% {$ v/ Z' g# m

2 v" I% Q* Y5 c& m1 j3 W        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it) r2 u3 O! N) u$ D0 Z* ^: O! T

  t( t% I3 v) b3 ]
' H2 K/ C; X$ JCode:
! m5 f, a3 p3 N1 Q% ^7 b#ifdef __QUGET_SWAP_FIX- n; i1 I* P9 Q) n% b3 @, f
' I, b5 M; k! G" Y4 C
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )0 }: @3 l2 L0 E! M% M( e( i& X* _
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());1 q9 N& q) V: T# i3 z0 J

7 {# w, l! _5 U0 s                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
2 \0 f. o( l9 `, }0 z                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );$ \0 D  v; Y, n6 e$ L
4 e. ^0 ]; m2 H8 }
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
1 N9 U1 Z4 T" y/ s# K, N) F                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );# o1 t) C- |! H8 ~4 R
7 F8 O8 s# h4 R, S: X, x9 C
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
( m$ }$ M9 t5 q3 mand add under
& D8 t) V; D' q; H+ ^. H- p3 H0 h5 B3 j+ ~6 R
Code:9 M6 y  p- I  y9 O
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )( [9 u, t- x0 y
                        {; X! g; B. q2 L/ _8 `
                                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 );+ J/ i$ P- V3 {' e) L; |! c7 H6 ]
                        }this
6 u6 D) ]! A8 }7 ?9 L3 Y6 T7 y* U3 u9 }; I- U3 ]
Code:
8 L6 |4 v( t9 Y0 A# U3 R#ifdef __QUGET_SWAP_FIX
% Y& t4 j# Q( t                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )  M9 _/ `$ L' I- h/ S4 {
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());) ~( g. L' ~) p! y* t# n

: n' s' I7 h# A' N. {+ I5 ^                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
* g+ w) c5 U# K                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );8 S' F4 J4 s! l" C( ^+ U
/ |1 {( A3 s2 d3 N6 c: n
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )# F5 v2 w9 |! q; ]
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
" l+ u( _; q/ A1 t0 D4 J/ e& |
3 L1 i. V- d9 I* Z0 a( e& Y* f#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
; e6 D- F% P2 E+ [3 x& G0 F$ r- q2 w. R5 D. N* L( x

$ e* l' W- U( T4 i  |




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