飞飞世界论坛

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

作者: 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 0 w3 m- X0 x# Z" l  q- F8 o0 h
I posted this because someone kinda posted a youtube thingy about it :O., {/ f; J. F$ R

7 n5 M! h" m% n: x+ ], `& [Find this in DPSrv.cpp @ worldserver' S: E# _2 b/ m& K2 [3 E

$ B; I5 v8 z. [  OCode:5 u* }- {% `9 w7 g, I7 B; M4 P
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
  f( ~( M9 x% W( l1 J: t{! f+ {4 l' J/ Q- O/ k. j
        DWORD nId;
, a. ~. c4 Y5 M, G        int nPart;
9 V* ?- X$ ?/ l, k, X. o" {; p# {* n* _5 i; r
        ar >> nId;% S9 ]" D& ]- A2 }+ n' N- Y( x: k$ ]
        ar >> nPart;                ; T! C% H3 }: S8 [0 D1 h6 p
        & F( I1 W' c$ c; l3 z
        if( nPart >= MAX_HUMAN_PARTS )        1 h# J) v$ b: j- |6 x
                return;
  O  z8 D0 p; v, a: `! P. F! f6 F1 y0 Z7 j7 T
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it; o% ^% j, J" p7 _7 t$ h2 r

9 B2 S8 `3 s8 X0 m' X2 z0 ?; R$ p! p/ e8 |, f5 U+ Y# Q
Code:
( [# w8 p- B, B' P#ifdef __QUGET_SWAP_FIX( K  _4 O. A' Y. g
! L2 I0 g8 a& e+ j6 D5 q4 u5 O: z
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
9 m6 s* J% N7 H) Q# J                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());5 ^* t/ E* ~5 S0 c

- T! W% E9 S$ k1 X- w9 ~: f5 q$ l                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )! Q3 D: M5 A6 ~# H' N5 ^7 ]$ s
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );7 y  S+ o; Y! }# i0 Z+ C- K, V
7 ^: x6 }6 f- g
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
2 O5 p+ U+ N1 `0 C' Z                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );% |% P( q- q: s* F/ N  w& g* _

& T7 q( Q. O8 m( N6 Q6 A. T#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
. w  W$ h( L  \; b4 X- yand add under
7 @  y' b1 O4 [% b% s9 S! i% l+ O0 s# R- \, u
Code:- h: T: M8 c0 F8 r: w& ~
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
. P" Q4 ~7 d  @$ q                        {
4 Z8 ?5 z' Z0 b9 @: |                                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 );
6 f2 i$ q/ F5 j+ u( p, z) F; x                        }this
% _; a7 G1 S3 W9 |# ~& B: A. u8 z
Code:
6 {4 W0 {+ M% T( @/ H: R7 L! O#ifdef __QUGET_SWAP_FIX$ F3 d6 @4 D, C, m1 ~
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )8 g  A/ w$ e2 n3 U% {
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());$ ?8 W- o+ @2 ^( W- ~1 [

+ P% `( u7 x% B) o. q) s5 a                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() ): I" V1 g( f/ o1 h, K" l# n1 n; j
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
& K% D; ^/ a/ ~9 g1 F$ m) Z
( @/ l" q8 \; h9 J                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )% g/ V1 K: v3 t0 l/ C, R# U
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
5 ~. j, G) z' K
+ ]9 E1 |3 J3 k8 h3 A  G4 w6 F#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver " I5 V" B# B# N) n4 x# i7 K
3 N  j( |6 G" y# e

( ^( X8 V7 ?! d+ i




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