飞飞世界论坛

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

作者: 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 5 s( ]" }' W/ J& W1 j, A
I posted this because someone kinda posted a youtube thingy about it :O.
% S; g  h' ^# B; ?. E' a4 x
; g- c3 V9 ~& j' q  rFind this in DPSrv.cpp @ worldserver! T3 f- M9 C9 V/ r

  t9 F4 f  d0 u# [, q& _* `Code:
3 a3 a$ ]: x4 h9 O9 ]void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
, t9 q* b7 K: A4 S$ ^( S7 R{9 K4 l1 D/ j4 j( z
        DWORD nId;9 @( Q3 x8 i% y/ L! v; @) ~: M' L
        int nPart;: Y/ {4 L3 q6 A2 B& {/ |. {' ]
" h! w* u: [9 Z; M0 ?# |
        ar >> nId;
, S' e* u$ V% a' o8 Z# e        ar >> nPart;                $ k" L. c! B0 z* \" H
        7 ~% I, {: E% r+ q0 D
        if( nPart >= MAX_HUMAN_PARTS )        ) I& z/ e' R7 C! @# c
                return;
+ G9 k- \% u8 N& ]& a& X  w8 w0 s' M8 ^& k6 v$ I  L6 \( \. y
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it' S8 X3 W) w' d! v9 u: v& `

0 T- g+ |: D; Z8 }3 X8 `1 g3 J
/ ]1 C+ }! U$ B' i) `, JCode:9 F) B3 x: o4 D
#ifdef __QUGET_SWAP_FIX; b4 }9 K; Z( h7 }1 g% d
! k5 R  {# y; V
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() ). P9 ]$ G: C' u( C3 b1 ^" E
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
& o: f+ P! }+ s8 _6 Z5 e
* }" J8 g( R3 D                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
! u0 J: \! b8 r. P                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );4 c* O& m+ p# F/ M# J

: f; s" I1 r3 c' k" w  C9 v3 y3 J                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )0 ]8 B/ I- B. m9 p7 z( P
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
& M# \" C! X1 n6 i. O
  a- G# L: [8 ]+ E2 ^( z8 ^#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp4 v1 L: E$ Q) R' u6 s
and add under6 N7 C" W$ G2 k. S% v7 d1 X# ^
1 N' L8 r1 G' Q+ c5 T5 j7 v+ R
Code:: U' q1 U* p; O6 w# Y9 a
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )  C9 x$ s& _; H5 a( \' m
                        {" c& B$ q5 U+ B+ c: X* |
                                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 );+ T' K2 n: `& O0 Y7 g. Y
                        }this. F: C1 @4 r, k5 {% [3 j  ~

  [( I: Y( g8 m1 nCode:7 Y7 X$ V& w+ d; U
#ifdef __QUGET_SWAP_FIX! y. M3 V8 N2 j* K
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )# @6 k- L4 q$ a0 K/ B
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());! [4 \/ B6 M& i( ^; ?
, L) ^+ W2 s" j) e9 N" z, U
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )  f- |4 S) b% v- X
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
, J  j; z4 V; ~4 B% U: ^8 a; \
! a# {! f% b2 D- g& N  ^                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )8 B) H2 }! n1 O$ p
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
) h- e7 h1 V, s  [! r7 l6 p5 d! k
& _, @9 x: Z/ g5 q5 n#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
! z& j' _; ]4 J& S' ^2 h. U+ Y, H
% u6 j$ ]- V( V2 i# [, w. S2 ?/ Y" \5 ~2 W" V1 J& h1 z/ ]





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