飞飞世界论坛

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

作者: 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 + _' s- a$ T- e: o4 v' U
I posted this because someone kinda posted a youtube thingy about it :O.; ~. t! }: h9 O7 R. K  W
% K0 G: c! V* D+ l+ _9 B. z) w
Find this in DPSrv.cpp @ worldserver
" J4 g7 ]" N. ^- X% y/ I, q
3 F4 L9 P+ F* [; f! t* zCode:, ~$ a4 ?  j% J
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
4 h* _  V% s& }4 r! M$ S{- s; Q* s; N# E7 t# @8 B0 K3 w# n
        DWORD nId;% t' n& t" j( l+ V3 `! r
        int nPart;
; M3 l6 T9 l. R* a9 m  ]) j4 n" H7 y( C6 e6 t* f7 g- x$ X6 _
        ar >> nId;
, l6 K1 R( i! _" L. v. c0 @        ar >> nPart;                9 G. J8 y; V" H9 ~* a- ^
        - g& A# G, Y* Y% v
        if( nPart >= MAX_HUMAN_PARTS )       
  I; q0 W2 ?) K3 G0 P                return;
$ [, D( [* y3 _/ u4 ?+ `) ]4 O4 d+ \5 P
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
8 @  p9 T" L: U$ x: P
( L5 @; A3 \. w) t5 ]8 H  X4 f% T# Y6 P
Code:4 U: `/ U7 K/ c; R9 B& Z' h
#ifdef __QUGET_SWAP_FIX
# v4 C# F5 R0 _% j
& o: ?1 w5 w# [) {                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
0 i1 {6 m( j. n8 I                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
3 v" M  Z. j# t2 i6 x: G1 v; k/ i6 O  L& M$ i
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
/ l* ~1 A  }0 t. }, i                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );  y( F3 ?' f- v( K; \
9 y' q. x% A6 G
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
. v6 y* g9 ]8 u# u                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
/ z7 q" n5 X& m9 A$ \6 }2 y' N! e" f5 `1 f
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp+ Y& a% V: x0 w1 o: @3 ~) x4 O* e
and add under% d: D* W+ z/ B0 x  w7 v

% U: T' p9 D1 e7 GCode:
( ~% u2 L+ G8 a2 o! E4 tif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel ), ]- ]2 n! E7 k
                        {  I. }' e* |6 {- q% l: w2 _
                                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 c+ U5 z+ K! t$ g2 \1 c                        }this0 u+ c) T4 `" D' o/ x0 t

* L( Y4 v8 q4 h- W; c" Y/ N) N6 lCode:# Q6 J" {( Y- Y* b" M
#ifdef __QUGET_SWAP_FIX
; J$ ?6 F0 j" D                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() ). ~3 ~5 b, d9 g0 P5 V
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
# C& Z3 C* f+ _5 f- H* l  K" b, J1 q$ N( ], c$ l0 H" G
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )* `1 X3 R7 F# P: K
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
- x; {0 u7 ~+ U. F; O$ n+ F3 B4 m7 B& n6 X, i% L' B; t% |( x
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )% ~$ n% r9 j* s/ j/ o
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );5 L6 a+ K3 d7 K7 i
7 J' G9 p2 H% v" @7 p6 q$ Z" h/ O: S
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 4 o- x# M6 X1 o+ D8 K: L* \: d: I
% [8 F1 O" _* p" p

% S$ T4 E" J1 y4 i. W: g4 ~2 a! U4 t




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