飞飞世界论坛

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

作者: 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
; Q7 m9 [2 K6 iI posted this because someone kinda posted a youtube thingy about it :O.2 ]* Y$ v1 t2 U0 L, k; N

6 f: O' ~& ^, G' |7 ZFind this in DPSrv.cpp @ worldserver
0 C7 P. ^, ~7 x" f
* Q' A" g+ |' u; V5 M& XCode:& D& F5 |0 `% g5 M3 f% ]% t8 d
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ); _. [( I2 Z# I9 U. p# v" r
{
" P+ O$ {9 r1 t3 F4 P* ~- S        DWORD nId;, A/ C) e% U& ~* N7 l. r
        int nPart;# n& c% ]8 q9 Z* d% v9 ~

3 Q' B# E2 c  y3 B  y        ar >> nId;; c% H4 v2 S+ D7 V1 B* x4 H8 J  |
        ar >> nPart;               
6 {+ q' T5 l! |' G/ y        . ^2 S# l- ^! E3 ?9 x; a8 |- j+ \6 R3 K
        if( nPart >= MAX_HUMAN_PARTS )       
# w! W) V" X! [* P; _3 y- k                return;/ E( M, l- n5 `& J7 p& {6 ]. o
. g. c. P: N6 s
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
: o. H4 R; L* d  [& g( r
- o2 N: T2 m+ x- y/ G/ G& w
( K" y; u- n& G5 Z- RCode:
9 P8 K. U$ a9 }% F; J6 r#ifdef __QUGET_SWAP_FIX
. L8 [  _2 n+ b2 j8 e
6 N# u5 T9 Q7 U6 n* X2 d                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
- t- c: z) k7 S! O6 g3 w6 r5 w- H                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());8 ?  }8 c; P7 [& ]7 }( Y
. m4 R  k5 m! H% o+ S; f
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
& K& p: R' d3 M& T                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );4 I7 T6 K! y7 D; \

" B. X7 {1 v; Q9 R8 ]. N                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
" z$ F, I4 i, F! ^# W$ ~! M                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
2 T8 r1 ^* S6 @3 y4 |. ?  N
1 x( T) t4 ~4 T7 z+ E% Z#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
7 u* C, @6 h) E4 ?" V) \: U* `and add under8 a* `" O* J# L1 ~

) ?( m* U8 m" _# R/ x1 OCode:
2 k  X6 a8 _8 y8 W! |. `if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )( |! B- _) q7 F
                        {
, ^. Y  ?- q  ^% B7 n  N9 ~                                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 K4 e+ r* B: ~) l/ p4 T/ B# Z, m6 U                        }this
+ ~5 f1 _4 x( z: s! b* J# X3 Y6 m  X% ~! L
Code:( y! l1 w! P# I$ n
#ifdef __QUGET_SWAP_FIX
) P2 u# |' F# H/ y5 s+ K                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )/ J9 E5 i) b/ U. m
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());( {+ N6 D+ c( ?+ m" v5 P( v  |+ ~& Z
( k$ U4 x- t9 ~5 N+ N5 v8 @
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )# ^' Y. i4 v& J  n, f
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
; u0 j3 c% x# X& _0 z4 b( d9 K: ?5 N# W  ]& T  M- t
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
/ w5 K) S9 i* ~; @* q                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );1 a- Y. h% V0 g# T& x1 I1 A! Z

* l) F1 Q) n+ l! t; |6 Z" B( B( J#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver   [7 f3 ^% p+ w, z4 w+ J
* c2 a7 P1 W5 i/ K, ]! K6 z. {0 ~
) @# s" C! U. D/ i





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