飞飞世界论坛

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

作者: 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 : x& t4 g$ C! A' K
I posted this because someone kinda posted a youtube thingy about it :O.
+ {6 E9 O9 {2 O; M$ p  C( {& I9 ~  q" ^
Find this in DPSrv.cpp @ worldserver
5 T9 B# E. ?6 ^- y% j' t
7 W$ w; K, G; J  FCode:! z" K/ E% {# t% X& n: ]# m+ P
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
# l% L& ^& j, t$ q0 ]0 `{
; Q+ D  y9 ^. m$ }8 w3 T* O  C. ^        DWORD nId;/ ~5 [5 z* w$ w% W5 F
        int nPart;' _* N. N; h0 p" G  `$ {  ~

5 f5 _$ _  a! E1 Q        ar >> nId;
. r- D; c  x$ v+ N( u        ar >> nPart;               
" @" ^& |- G7 E" D. ]* h' ?7 ^        + Q4 J$ V1 M# \
        if( nPart >= MAX_HUMAN_PARTS )       
5 B$ Q3 k; J1 \+ R8 L                return;
; V2 ^9 T5 _- l* X3 N9 H* r
/ D* ?8 q* {' ]4 T        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it: o0 A8 C) A$ m* L
6 I/ N4 v& R! N& D4 F0 J, p  T3 `
( a0 @9 W! w* i; j/ A% Y/ L2 o
Code:$ `5 I" I; M9 g; h/ D6 P, s
#ifdef __QUGET_SWAP_FIX! r: k) r  i4 |: b" P

8 O: T7 k) H  H( Q+ C" Z                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
# s4 a# }! e7 [5 y0 f& E                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
1 \: [9 E& T% A8 ]6 ~. m0 D$ A- J8 l2 P$ M# u' W/ G# }
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
0 C" y0 V" l. {) d                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
1 p: \) e1 o' s# K( y  j
' k  @. Q  A' Q+ x% V, s7 f: a                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
* w, O( @  C+ f2 X, g8 ]/ R% a  u, @                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
7 T! h: N  V8 n  Z( S
% l6 C% G3 q# ]/ i2 u- J  N! v& N#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
* I# l! s' j& m7 kand add under
2 O5 {: A- ^- y4 l& U0 o* U0 s$ Y4 ?& B, K1 U0 `
Code:
$ d; P; E' i' Mif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )) W( I% M7 I. m" Q, v
                        {
+ l) E5 W1 D2 W4 e                                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 );
/ |  ]7 `& R7 x4 ?1 t                        }this. h- O9 N8 n6 Y& i# J) E% L

% f3 P; B& Z; A. q5 [" }) JCode:( f) Q1 O7 b3 ~: r- f% j
#ifdef __QUGET_SWAP_FIX
5 C- @% h3 }- m                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )) Q) y0 S  b" O
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
& i3 m- v0 c$ `6 M. c% j$ R& P2 t6 J( _# m+ s1 X
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )  p! o% ]" ?( i1 {$ b' r, ?
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
4 w3 G/ x$ Q1 g& T7 e! H
/ I8 P# t1 n* _# Y  C5 c; a: N                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )1 V% G/ K" C* s) i  U0 X- m9 o
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 @5 c5 y' d4 J' t0 m/ i& q2 Y" u& o
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
  m6 U$ t" ?' i8 }& J0 I* |9 |' F6 b' Z2 @( k

. y; |5 K+ T: {: J, i8 J1 i& t




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