飞飞世界论坛

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

作者: 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 % h  `8 v* }8 l3 ]  s
I posted this because someone kinda posted a youtube thingy about it :O.% h( _( P( F/ q4 W8 x/ V/ x, U

% G+ ^- _+ B; rFind this in DPSrv.cpp @ worldserver4 [+ T7 R' D( Y, M$ ~

6 W/ J% F4 k! B- v. S3 _) V( D# MCode:( S! w) ]: b; n; |! U
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
3 ]* _9 Y5 J; M5 S$ j3 p$ ?{, \' E- L5 O9 L  O
        DWORD nId;
6 \* H- Q; p+ N        int nPart;; }/ P* q! a  _( D. }" x& T% ~

+ e1 G8 r; W' ~% l! G        ar >> nId;
5 y3 K6 O% e& f: M& X/ \        ar >> nPart;               
9 K6 H5 ?. c; q3 O% C( `       
8 `8 H. w* i* E6 a* W$ y6 P( O, D        if( nPart >= MAX_HUMAN_PARTS )        5 H( e) @5 `, p7 P1 q5 k! U* y1 c2 P
                return;3 B/ ?% j! T' Y# e0 {

  ?) G% p) a1 {# q/ `1 `! |5 V2 z  V        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
) L4 B& h6 s, G! K1 j7 C
+ c% G: ]* t# \8 \: y, ^9 o' n, @8 X# j/ Y) U3 d0 `/ v& a5 w
Code:
" D/ S' K1 p5 V. ~9 o0 j5 ~" F#ifdef __QUGET_SWAP_FIX
8 F0 v2 }( ^6 V' h$ s% {' G, N" b4 y3 E9 a/ z+ }
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
. d( y6 i1 w8 O$ p- n* Q                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());8 t( j% Y) {) j5 f* c

$ `/ y; K- n7 k3 S                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
6 o" X/ G7 n0 }6 D* ~: k1 K$ u                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );0 V# k9 r# J# e7 m  e) S

7 S1 j  ~# e$ ]% D7 k1 o7 X                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
& `5 ?6 Y  v) k) `6 z. [/ ^                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
6 a/ r+ Q+ ~# G
* s7 I, {$ i! g- A#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp; A# v& o$ C2 p
and add under
, E$ ]; ~" x7 U
9 l# z/ c- j( `# a- ZCode:
$ q) ?3 [1 \% T) {if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
3 q0 V; `9 u0 E2 j                        {
& M+ G& z  H4 k" T: {2 A& C4 n0 E                                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 );& F5 M( p1 @5 d/ E
                        }this
+ B6 L" f1 U4 U8 \- I
) b" A2 n1 u1 g6 G: A, CCode:
' N- C8 D: q( ~" F$ `# G8 v#ifdef __QUGET_SWAP_FIX
+ E- X: W) O% S  d                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )/ C4 e9 N5 Q3 N* F; @; W
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());. o( A+ f6 e- W* G( p
: G0 x2 L0 ?4 S9 ]9 a3 t4 |6 {
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )2 V, a" n! O; |& `3 ?$ e+ |2 a
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
& |* l6 e2 G1 R0 }' l. }: U+ a& y3 s7 V
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )' D& _/ ]+ t7 C% F8 L
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
+ D  I' |3 r; e9 i4 W3 U; }$ w: ^7 D7 D
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver * v- Z4 F! z$ }- j3 W7 n7 [

( u6 @" D  x/ a; L& }: ?( i/ b& H! y" r& N; L) C





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