飞飞世界论坛

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

作者: 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 * V3 O/ u0 B8 Q# @
I posted this because someone kinda posted a youtube thingy about it :O.
: t" u- p% x3 L, Q% ^/ P+ t& b, ]& o9 ~1 b  q8 w6 Y3 h( u1 h+ k
Find this in DPSrv.cpp @ worldserver
" X/ ^, V! \. ~/ w" [0 [5 x0 W1 m& h& [. C
Code:
, H3 L3 }9 `" ~( @" y4 _$ R- b- Qvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
# d" f. o- A; Q* V. A% r, q8 B{3 c& l5 J( ~4 N$ j
        DWORD nId;
& c. O7 B% F, c" D        int nPart;* T5 q, x: ]6 f, y* h# s
9 t8 ?. l) R9 g; Q: a* A
        ar >> nId;3 k- N4 q8 r9 E: v9 L4 L
        ar >> nPart;                : @, l) D; ]7 O* C- |+ ]
       
5 j& k- O9 {* U# w" c4 A        if( nPart >= MAX_HUMAN_PARTS )        ! R  C" Z! d$ m
                return;  U5 [5 C- {) y, x

! m, |! q2 [, {        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it% B) z( c1 K# e( \& x* L
/ p" M3 e1 l. e4 V/ q* O

& W% s4 _* o8 W  b) hCode:
) ]) s4 ?# z. W2 E#ifdef __QUGET_SWAP_FIX8 W& X9 q9 @6 g1 D% o  @
; Z- y, W, z! J$ v, O
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
) w5 h: |0 b% E                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());- m" c) L! i5 t  s

# @( R+ Y$ G# m8 {                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )3 J0 i1 k2 c* h* [) N, m# \
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
, q( z: Z+ K, G1 s' S  W& W
8 J! t3 U+ o. X                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )# r: {; v6 r1 z9 `( F7 o
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );$ F2 ?4 {0 T' |5 D* O7 U& _
: L# n- @- J5 }
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp! l+ ~# Y, R5 t
and add under+ }) }3 C" P- B) j
+ v9 z/ {) U; r2 Z
Code:8 I  l" |' `" D1 D3 O7 o$ q( H
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )" I" m1 W* o: i- S$ k- u
                        {
+ [4 D& p' c# w. s! e8 m                                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 );
! i2 L! x$ G, i) E- ^7 h2 G4 k                        }this
0 }, N7 u7 ^$ n  G( F% n6 |" p& u) Z$ h- _+ k
Code:8 W9 V- X4 ?9 B1 U* z
#ifdef __QUGET_SWAP_FIX( X: ^- t- h4 A
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
3 z  o# M3 o0 B                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());  e3 \+ g& a4 e2 s( P

' w4 r' P; T( T" L) t6 O                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
( u: P1 m. K/ k* ]; s                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
) d& G; c. p; `% u- @4 b# l7 |4 e/ v9 ]
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
$ F- D9 N) a8 Q                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );9 N# C4 q* k5 ^; U1 W3 T. K
/ C) B. Z& N& O) e  r4 h
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
! Z' o. o% |- z7 d
; N1 j. U6 l# y: l2 ]) t* Q9 i
: D0 b4 A9 w9 X; }




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