飞飞世界论坛

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

作者: 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 : I$ {2 Q1 D  c; d$ X# X' X4 `
I posted this because someone kinda posted a youtube thingy about it :O.
' ~6 V9 r8 v- F& T# A! `% m+ w; Q. o& W' u& i# A7 k' u+ [% I
Find this in DPSrv.cpp @ worldserver
% S* E: W( H# l5 |5 g/ ~" o7 P  o! u- D  S
Code:
* A1 T2 a! P' I3 e5 uvoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )4 _' r% l+ A4 s1 ]! e( ]' S
{
6 ]8 ?8 i. D' j6 a$ C, x6 H        DWORD nId;9 _: p  [7 M$ p. f9 t
        int nPart;
/ x. T3 ^8 Q1 z! u0 e6 V3 G2 ~. w: J& ]: j- x
        ar >> nId;5 @5 p% Y8 ?+ H) j7 K
        ar >> nPart;                3 S! Z8 e1 j0 L: |2 y( b* s
        + Y* _5 c, ~) l4 ^% u9 M5 U2 [
        if( nPart >= MAX_HUMAN_PARTS )       
: H  h* n; c" I+ W. I2 `, J                return;7 e1 k' J/ T  T. {2 h

1 [5 K) a5 F* s9 q+ o7 ?        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it2 Y; z: [# a7 y1 ?- f6 z* Z
3 Z# ~3 a+ m  `. Y+ }' ~
0 w) ?2 e: u' r  t' E' [* y
Code:* `# f: y% }* h: O4 k. ~$ L
#ifdef __QUGET_SWAP_FIX
. @& L% \8 E0 F( Q6 w; T4 x. R
  \. K5 B  O/ B# m9 x                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
' t7 N9 |) U& ?                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());, t2 w6 J" a3 r3 C' m. {
: E4 o- q* ~4 y2 Q$ W1 r4 R) G
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )! T& c. G3 L% a, i& f% g
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );
  `  X  d1 x4 Y: j
+ `0 G; F& k% T& ~8 M& {                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )2 z; N" A0 F! }" G* }; E& E; s4 [
                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );; J8 T* x, r% ^3 x2 Z
: o% S" S* O6 e+ v
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp' [! `0 x6 x+ y8 q0 A" v' p0 x
and add under0 {, z) J3 J3 P% N. u/ `) w
$ s0 k9 b+ x, L9 K3 U3 B
Code:- o; i% s3 D. t! E2 D1 ~/ w% b. w( r
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
* ~: {! i" w1 b1 P- y: V" |                        {
, v+ C3 x1 S$ u2 }3 D( D: c                                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 );' w' e- `% A* B+ }' J+ k1 V
                        }this
; ]5 P0 u( N9 I( I  ?, H4 S# v2 y: T/ {
Code:: y6 q6 D8 }3 H) n8 m
#ifdef __QUGET_SWAP_FIX
- F5 h; |* u9 P# y) ]                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )1 z7 K$ ]" i2 v8 \
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
- Q/ D% Q  h2 x1 W" U6 A# }" x$ b/ f. d+ U6 K# ^$ x
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
+ C* A6 {6 ?) o$ ^) g                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
$ }3 }8 L6 V7 e$ L7 N# W1 |
- e5 Z+ w+ Z) b0 @) {3 o                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
% r+ ^. _; ?' U" Y                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );1 {% ?6 _2 M6 K6 y7 h- A) M

9 M6 z1 S. Q$ E* |) K' d#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
4 Y/ ^# K& V% S' p3 H
: o" v% A# ^4 ^$ l. h* d: X/ F0 k& ^/ H  [1 d: h





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