飞飞世界论坛

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

作者: 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 : r7 @5 G5 y  d" P  s; }6 h
I posted this because someone kinda posted a youtube thingy about it :O.
; V9 x0 L: r! n) `, }
$ `$ B+ \* p# r- D7 UFind this in DPSrv.cpp @ worldserver
& f! S  T0 v- O+ S2 p4 k
" z# E/ D; c- L) aCode:. P8 }8 q! U7 H! w$ Y) v" X- k1 U
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
: ~* s2 g3 |' M/ j. \0 L{! _6 w. e+ S% M& n" s
        DWORD nId;
1 m( A5 }! r& d5 ]2 D0 N" N; W        int nPart;
' t2 D. X' z- z* h5 U% {& F
1 ]5 i8 M7 ]& ~4 u        ar >> nId;
( `  E( M5 l/ L/ {        ar >> nPart;               
5 u* s- P& V. S; [9 V9 Z       
1 P; y- o4 G) U( P7 }! q5 N& j& n! e* b        if( nPart >= MAX_HUMAN_PARTS )       
4 m, Y8 B2 {) Y  K5 }, {( d( ^8 G                return;. |; w" K7 G# c# e. A

4 L( H1 j, |( x/ P4 e7 N9 t        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
" X8 j) J* i0 `. \
8 {% ^5 E( D0 G* u
! A' e2 q# U! t, y0 i; {Code:( e7 f0 d2 A. S6 y  H
#ifdef __QUGET_SWAP_FIX
0 i5 M1 [# e1 M# O! |% X. m2 g# a1 a; L9 n! ?/ P
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
7 ^" h! o, Q' ~0 l0 z+ y                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());* b3 b8 H1 v" U/ d1 Y$ b  n
5 k% W4 B# \- ^; P$ ?$ i
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )  K+ J* f( ^4 X. W( N) ~- Y0 n
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );' ~- ~4 w8 @6 @0 I* s. y0 U
6 ]. d, w( Y1 n4 f" @2 J& n4 H
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )- r1 d( I5 w8 P$ \; v: @
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );. [6 h" F3 p, @6 J/ A% @0 _* N

) G2 {/ A& [, l1 g% D) L/ {5 ^2 h#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp; X6 j3 ]3 m! B+ W
and add under& ]% L/ v) }2 U$ L$ m* e
- j, }: O4 H) r+ E- i5 ?
Code:
8 |( P/ x  |7 c$ o& Hif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )5 C0 z9 d& k# e* @" l3 @
                        {
# t$ L. q9 B# i                                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 );
! b, N, d0 L$ }$ k  ~+ [+ z5 C3 z- N                        }this9 }( G2 Q7 p' B" P6 L7 r
* j) m7 D3 v/ J) X
Code:1 ?5 R' c' u+ N- d
#ifdef __QUGET_SWAP_FIX
  [, G! S9 c4 F/ f  k2 _4 M) }+ `                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
* U9 o' V# p: i! p# K, I1 n1 P                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
2 C3 L  Y; K9 t) Y( [. J
7 P: M8 h) m' Z  |( X                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
* \5 B3 A+ m- v: G8 E" @7 ^8 C                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
1 Q! |- O/ |, T: K( m$ ?% M3 C/ a4 x8 A: L. y3 Q) L
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
8 @5 U. V9 F, _, ^5 ?+ L                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
$ m. n3 @7 }$ Y) t- m, S+ c- S: H0 p. }  I
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver & z0 O; D2 x: K2 D0 _3 I+ a

  B: W' n0 @) R) w5 i
# i8 ?3 k# e. M




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