飞飞世界论坛

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

作者: 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
/ s# z3 i5 z/ O& C3 V+ V/ |* \I posted this because someone kinda posted a youtube thingy about it :O.1 q6 O( M3 J+ j0 M+ H/ t6 O

% B9 X5 c- v) L2 M: _Find this in DPSrv.cpp @ worldserver6 R; V! s% \5 C% n' M9 ]* S& |
6 P9 `( m& @. p( Y
Code:/ R( u; y  C0 g& b2 ^% H6 T
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )7 D+ D& w* ^7 ^' h; K
{
3 M! ]9 i, U; r7 \3 }+ Q        DWORD nId;
. h- A: P* Y4 Z$ M3 v        int nPart;) ^2 q4 W' j  \% k. e/ d
# B3 {& `, r7 V
        ar >> nId;
2 L/ _" p: F2 r& U) P        ar >> nPart;               
5 B4 o6 @- {5 k/ b$ z       
5 `( Y1 n* a4 G+ N$ g- ]        if( nPart >= MAX_HUMAN_PARTS )       
* H' K2 E/ K3 q) F                return;
9 X- _1 X5 ~4 x3 J& Y- c) o# G( ]- b
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
& {0 z# ?) y9 c1 @) t% A' \: B6 m! J4 j

0 ?& [2 W# i7 `7 Z: M0 ACode:2 B' @7 P/ Z3 l
#ifdef __QUGET_SWAP_FIX
' D. Q( t; }3 C! X; I$ P' j- X; m) o
+ B. I! v/ o9 r# L* c                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )' Z% A' |9 U2 W; V
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
5 F) `. Q$ O: G" ]0 H: L5 A
) H+ U- h; I& j' |                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
$ b/ z$ P8 Y4 E4 |                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );+ |9 W. R& \2 B8 a6 B3 N0 X! i4 Y
2 Z' S+ B$ c" @. D3 j/ T% @3 |
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )! j4 ]* T% Y) u8 h$ l: @6 l
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
  p# |6 U8 `( k7 x) d; _) r0 [4 {
" X" I6 t- F' L; E: I7 V#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp: z0 ]& J; G3 F, Z; \+ z! b+ t
and add under. j. u) K# y# d* J* R# D, J$ I! K
  g2 \8 @  R1 q- L: r4 j
Code:
9 G7 {& p3 O" G8 hif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )& U' w, _! Y5 q9 w" ]7 Y
                        {
& n% B( V; n# C: `4 g. v! d                                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 );
( F6 `8 B4 N6 z5 ?. t" h                        }this9 m8 P. ^' W3 k8 K9 l+ D

" v  A" r# ?; u5 s) j/ X6 ?Code:
' @. k0 g* U1 M9 k+ n) j: K- }#ifdef __QUGET_SWAP_FIX
- d: w) y# j' L- m- {: {+ y! p                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
* `& M2 }0 o6 ^) c) k0 h7 P                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());4 ~* X0 g' q. U9 D
/ W% m# h5 j$ \5 _( {6 \/ a2 }
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
: M' ~/ l3 A& m9 B: X- s                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
- F+ i- U3 z7 a& d) }' r9 ]4 D- C3 X8 n' z4 }4 q! t
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
  n0 k: ]* b7 j: y                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );: |7 a% X$ A9 [2 k
* j, ]) d. z* A( j6 L2 n
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 0 |$ ^) q2 q/ G: S! j( `

% u9 Q2 {, C: h6 L9 _/ V
& B, y- a# S5 H9 ]6 f( p% E




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