飞飞世界论坛

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

作者: 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
! n* V$ n9 |6 N8 WI posted this because someone kinda posted a youtube thingy about it :O.+ `: d3 }0 I' I3 q5 o0 p
( X+ a) F; P. B" s1 D: @" C
Find this in DPSrv.cpp @ worldserver; K+ S" G( ]0 z2 S/ a
$ V; x4 [5 j# |- H! l
Code:* T. H7 K7 h0 u( ~9 B' y; D1 p0 ?+ ?
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )' e; ]& f2 r  A% I9 P9 m) d
{# l" c: }9 }! j2 O- X0 C6 Z
        DWORD nId;
- k* x5 q" ~' K' F7 r" h        int nPart;
2 y0 n. M8 W" ~
- W* R; r5 y% Z% R        ar >> nId;
) T) n6 n5 }! o! N        ar >> nPart;               
$ N! I" d* M8 S# s% V        ; ^+ [8 \) }. T  n0 Z
        if( nPart >= MAX_HUMAN_PARTS )       
. j+ L# J4 |# L8 r. @- p+ f# N                return;3 H* [" H  L/ K) z7 @7 H" F( u

: Q$ ^: S. q' J$ d+ |" D3 o, `        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
5 c0 V- j/ X2 ]7 F- s
8 e; i+ x* h  _- y$ I
+ y8 q% n3 D+ W% g% M5 z7 l  t9 M* BCode:
- y% X8 j5 j# ?5 B$ \( k  A* r#ifdef __QUGET_SWAP_FIX- E! B  f1 }4 z  z' ]! ], I0 j

; y( W1 }- m6 A% P4 R4 l( R8 _                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() ). j- j9 b  @$ p5 w, x7 c+ R, X$ |
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
" W( \6 ]4 W1 `% I! Y8 Q
* u  \" B0 g8 A                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
8 b5 S7 T0 d. D; w                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );9 w9 P& f5 Z  u3 }
+ d7 C) R/ s6 G) B+ {7 C
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )# W% a! d1 M2 K2 F$ Y
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );. C5 q1 {/ f) c( h2 }! j( O& l6 s% G
% |& z6 V! I  {% {6 p. N- {7 k
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp0 t% D5 ?' q+ R5 J$ C
and add under( \+ z  w; z; N! E: ?

% h5 G. r  G* ]( \8 Z0 U* p/ o" `Code:3 V8 a' h3 H7 U! f7 T2 L
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )( i. w; ]& Q* T* g0 C; \% O
                        {( ]3 C8 J! _& q6 s3 x; K$ B. o, I
                                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 );# g/ A" z1 b$ `# S: ^+ t
                        }this
( T. c9 S8 f  u$ \2 @& k
& s0 J# T. Z3 P& `# eCode:
+ T, {) p, j' P# L#ifdef __QUGET_SWAP_FIX
: Z7 P4 I( T, T& T) l, x  v* v( U4 b                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )7 M, ?6 w0 @  m7 {# Y- b
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
+ v1 P) T2 p1 y& {3 `; E# g. \- ~
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
' P& t4 P1 S' P( U- b5 W# ^. K2 q                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
8 j' o. T8 S. g! S
# ~2 a2 I+ J- j6 c( D+ {5 W                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )! R% L2 f$ M; A. n; @7 X
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
) Z$ T6 M9 ?9 ^  V7 d, o- L! j
4 M* l0 I7 Z* {#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver " q* ^* A  b2 l, E
, Y. w: j9 q$ a# I+ `" b1 m/ E

2 x6 N. Q5 f9 r$ J# X




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