飞飞世界论坛

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

作者: 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 * E' n$ R- A# K; G
I posted this because someone kinda posted a youtube thingy about it :O.
: H2 T* ?. h, [# @9 d; `% ?; _- l/ i$ y* T4 _
Find this in DPSrv.cpp @ worldserver+ C$ j$ F8 x- c) Y5 {, w: C
8 |' h9 R3 M1 {7 [7 r6 l! L) U: }
Code:, J3 ]7 v3 u6 s
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )0 P( ^/ i) |0 e, {+ G. y
{
6 m3 {6 z8 i9 T& E1 k2 Y        DWORD nId;+ X2 E6 ~& w0 r& K8 [3 n
        int nPart;& }4 S1 Z- I- T4 Z3 W

2 [( R1 O8 P. Y7 Z/ O        ar >> nId;4 u0 Z- R1 q2 r; Y5 @& }/ q
        ar >> nPart;                0 G1 Z% G, _! W" V
       
2 @* i0 H- F1 o! f- k7 U) o: r1 Z        if( nPart >= MAX_HUMAN_PARTS )          I- [2 z4 z1 v( D0 u3 c' @
                return;# }- G9 a! r* |5 w! \1 a* w6 A
( M# k9 w$ j( M' K5 l
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it" q4 m+ @) j: h: w3 M
6 M" i: r- Y% F! M( N. L: g
0 ?- D  K& l+ D7 P) a. H- o
Code:
3 I: r. `- Y3 s% a# R7 g#ifdef __QUGET_SWAP_FIX
: M  S% x5 U% K+ b- D0 D
, s" ?4 V1 v, i1 ^& r; S1 ]. K                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
& N- N" L  S1 F! [5 }+ @  R                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());! x" m5 P! n; u$ l# i
) S; c" s( ]2 f/ V3 X1 U
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )3 ]3 B6 h9 A4 k# g5 Q
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
1 N3 H9 i# v- H3 ]: ?. x* B$ p  D, [+ M- g/ T
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() ): n; T* D5 ?+ I. d! H+ U) U/ c
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );8 t6 u' a, X, I! A
  |5 Z  O* N  v( e8 k
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp% ^8 T9 G$ f3 B: B- T
and add under/ R3 w  |. u9 I. Q& p0 w( H

0 S7 a# {  `5 iCode:
/ |+ b: ?. d/ @' z! ^6 }if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )( B% z7 [! X" _& w
                        {
7 X: o, g3 o# O" K4 \( A                                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 );# j4 o8 D: N: G" o! y
                        }this' r5 U3 _$ }+ d' f4 D+ R1 \$ J; b
/ r5 C" z4 J5 b- Y( y+ V3 e
Code:. {! ~- Z; Z* R3 O5 G% \
#ifdef __QUGET_SWAP_FIX
' t5 @3 u! [5 ]" j  `# V                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
( D( V8 |9 e; g) h; I4 {2 J                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());. }& F& {; y3 D; ~& o: g

* F! p  E9 Q/ h2 c" g5 [! G% `                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )5 |! L! G! t" l# C& M
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );+ N$ l2 y7 r6 O

( Z$ F! i; C. E, m" G. ]# i# v% i( i5 J                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
) G$ B/ J2 G( _5 ]2 D                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );  j: i, W9 O! I! {4 r! ]& O8 q# j

( N7 Z7 m& L4 R8 L! ]& U7 ~#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
8 l# v  r6 k) N
0 @7 z$ z* R& X+ Z( G$ U: r! w% G: Q5 y3 Y, e: z* C





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