飞飞世界论坛

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

作者: 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 3 B  |* B0 v. Z5 ~" r
I posted this because someone kinda posted a youtube thingy about it :O.5 F( R* f; y0 w* v/ l

5 E' U) m. j# b1 v% CFind this in DPSrv.cpp @ worldserver
+ s: E* K/ ]4 C- ^& b8 m" V
1 \. E5 A2 t8 v; B" j9 ]& dCode:- j; \; r4 a( l
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
( F( Y! q" O. S; {+ B' H0 B{
# y. n$ C6 @" w( u4 e        DWORD nId;& V: ?0 g0 q' Q0 i5 v4 @  Z
        int nPart;
7 w6 U" A7 V: r% f1 _% u2 q# A' s* i
        ar >> nId;
& p, ^8 F/ A* Z$ ~        ar >> nPart;               
% \. P1 t( G" t       
( D- V7 Y/ {0 }- w: H        if( nPart >= MAX_HUMAN_PARTS )       
# v% T, e/ N) g  K& I+ r                return;
$ E/ K) g6 r+ z" u- c5 {) A8 v" P) p& T% q* B0 r% P
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it/ K1 ~* T" b  ?  X% Y$ `' n
5 `4 k2 j( r7 @- y5 p

; G6 a: h7 b% {, T# r0 v$ ~Code:0 h8 N) q. {7 J. X# B+ h% H: i+ E
#ifdef __QUGET_SWAP_FIX
% w8 e# M  |. ?' }# A
3 B3 \8 m1 ~, O. n& m                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
- T' [* Z* H6 U; I1 ?/ E* Z  P4 P                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
- W- P- I* q( r% a$ C+ b. Z7 ^
: f: c' D( v. ~                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )9 z& W9 l1 D' @  s1 [
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );4 f. `) I3 J/ R" o* W& C
$ m2 B' F' H2 _- c6 W" j
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
) z: e' F6 ^; Q8 B5 A                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );9 g, _! e/ ^! e

5 x8 g7 r) o2 |" Q% I# j#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp+ s8 s2 u' A4 i. u1 l, `
and add under; }: z: L  b+ H7 H7 d0 n
. ?  K9 Q. h, r) a8 D6 F# E! G
Code:( `7 h5 b& U4 |7 S* `/ I, P
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
, S) E1 [. k( C  p                        {
9 ~( I4 N9 y- \* v+ f                                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 );2 ?' o9 A3 a% z6 P' q3 O3 M, h
                        }this
/ Y. p0 i/ c4 v% L/ ^
, `& w- p' C. Y/ x5 W# `- T/ OCode:2 @6 R3 |1 N( ~# K: j
#ifdef __QUGET_SWAP_FIX% |6 s5 Z, {0 v; n
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() ): Z4 z6 C. G5 ?1 s( o: v8 b8 ~) \
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());& r4 V# }1 G: ^# P2 `8 `; k9 p2 M
- d# {. j( t- i; c& C5 Z) M! m2 f
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
& F3 _" u/ |7 O1 X. v  K                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
# a" r% e( O% F, n+ P& f. J. h6 l7 P5 k9 U# R, F+ B
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )$ u4 a- f" n1 |8 M5 `( u1 i
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );# ~* `& D; B+ i/ c5 `
% i" e" @; K  L% l- p
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
; F: K# {& W5 y" g3 R( C8 M+ [: k5 G
, L. ^  N+ N9 z2 E% f0 C" q( z6 W





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