飞飞世界论坛

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

作者: 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 : l0 ?7 z# ]0 e9 X! s* a
I posted this because someone kinda posted a youtube thingy about it :O.7 _0 z) R8 y6 F* m

0 q7 ?0 p/ i% N& KFind this in DPSrv.cpp @ worldserver
3 g; q9 `& N. g- [* _8 M+ V  N
Code:6 i1 k8 `7 [! E# _5 {  F, V
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )/ \9 G8 w' E* _' S* _
{% _2 k  o! u" n( b) v* _$ U, |
        DWORD nId;
. p+ E" I( P& T' S" U        int nPart;
  {4 y6 S9 ^2 v. X* j& X) E; m1 `0 b& R1 T. F$ a0 A" j
        ar >> nId;
0 s8 G- U2 Z" D) ^2 U6 }        ar >> nPart;                6 M* n% w; T% w4 N7 _% p" Y
       
3 s- c& j) U- _. @7 k. }5 }$ F        if( nPart >= MAX_HUMAN_PARTS )       
& A5 y9 o6 K9 |                return;
2 K  U! S5 }9 L* p. M: W: A2 v9 {, o6 E- c3 v# k0 O) D
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it0 C9 `1 r" ], u4 m" `6 W$ h- l+ r) B7 _

7 K% i/ T' |+ \! b  Z7 ^  ^9 H6 \* e  r5 A( F" m: r8 i
Code:* u: V3 y9 G3 Q+ J0 ]
#ifdef __QUGET_SWAP_FIX
, O0 u+ T+ ]" s: Q. c! {$ W
, K5 ?+ H( f2 N1 h1 U& w                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
2 r0 a3 I" m* k- k; f% Q- _! F  C( \                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());
- P$ w3 K4 e3 B( L/ A3 [2 J$ w. {
5 I6 C0 h0 m8 _$ U# M" u                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
0 e3 J* x+ n; T1 r2 ?9 \                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );" m+ B, J- y! i( s( N/ C0 e
1 f+ L; s$ N+ I' Q5 b
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )$ O/ W! X$ x3 \' E* n& [0 v
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );. g2 g$ }& |. m
% f/ _- a1 q& g# Q
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp' T; q6 i5 Y- t: k5 t
and add under
5 s- k4 v$ e) V) m: Y/ M- J8 ~
$ a8 j8 P# A9 ]$ M: M4 xCode:
, {( m* \7 a  Iif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
7 }. _1 j3 v8 S. @1 q& O; V' N% |                        {( T7 O5 v. D; A& M& x
                                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 );  z, B# @9 b( v" `& h( w
                        }this3 f1 @4 w6 q, L
5 |" u7 s$ ?0 _/ `: T
Code:2 C* L( i9 a- q  t
#ifdef __QUGET_SWAP_FIX
" k  w6 g) |, X  O  \                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
/ F7 I* A' q3 ^1 o                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());) e( f. i: x' d  d+ o
, _( v9 Y- J- \1 r5 Y
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
" {+ ?! W  y# Y+ O+ ^& H                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );# ]1 I/ P1 [9 u; X9 z! O

: _8 ^# e' z* u4 e' }( I+ H' u                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )- m  I" O; V: L9 y% e  l
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
& Y9 b3 V; W* I  Y% N, j" ~/ C. K- K6 t2 {
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 3 b7 q7 Q- D0 G7 U% n

" a/ z# T, c, a; V4 O
6 ]; n8 i2 s& i& x% ^8 q7 L) N0 l




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