飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16385|回复: 0
打印 上一主题 下一主题

修复交换错误

[复制链接]

197

主题

203

帖子

1086

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1086
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:43:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Hi I fixed the swap bug a long time ago it got tested on my server and it worked
( o! d7 l+ S7 F! @I posted this because someone kinda posted a youtube thingy about it :O.$ Y' X) V, H, W* @* p) B; L% b  d
- h0 o! ^# K/ f# H0 x- ?
Find this in DPSrv.cpp @ worldserver
7 L$ b- m6 q3 x4 ^4 ]
% h+ t6 E* w: w( Y5 @+ VCode:
+ M, x" V/ W; }, r% G& M, Avoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )! y1 R: _7 z7 M4 H
{
, F* D; n. ^3 m- t4 |; C" O        DWORD nId;: h6 q0 C6 ?3 X
        int nPart;
# h- L# r* x# ?0 i1 ]) W- F7 y
* ~- b4 k) G/ @3 W( c9 Q        ar >> nId;$ b, G- T* I. I* A  n
        ar >> nPart;                7 U1 T: k3 X! [- M
        $ g8 j+ {. t2 F; y7 [! x0 J: A
        if( nPart >= MAX_HUMAN_PARTS )       
9 `% u: }8 K7 D# ?6 K8 l. d                return;1 i8 w: x6 o, [. ^. M
) f3 F0 H& A" ?4 h1 `2 W
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it
9 {) ^- F. p# B! s$ P  Q( v& K0 H1 E) `. _2 ?

& v# v( @1 t/ ?3 fCode:5 j3 @/ _( S) a5 v5 g' y
#ifdef __QUGET_SWAP_FIX
, S% x0 }. J9 u. n  y% }( v! c5 j+ I6 |1 v% I' q; l, C9 \
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )% ?& O$ y- H1 i7 m
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());! h/ _& ]) y4 {
5 _: R$ {/ A% q+ O/ o  n8 K) y" h
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )* Q* U8 G% h2 ]* |9 n7 m" W1 [
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );/ w$ G& g8 i3 O8 K

% f& @7 W3 q) I! w/ ]                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
5 G) s9 }: S' V                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );  W6 K1 s2 }! g. E9 c; A4 J/ b6 D
! C7 i4 j! |9 |& B
#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
7 x1 i+ P) \4 C9 g  dand add under
$ ~5 |4 N7 Y$ U
) b! w  R, u% ?" L) LCode:: T5 T# z* h/ P: a; Q
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
  i/ I1 x: t( U1 H- o4 c& p  }+ N                        {4 A( b$ C" F  }  [9 z) L
                                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 );0 _5 Z  [' K+ j, u0 F
                        }this
1 p; ?  _/ Y3 h- S" j: b- `! o  L% P
Code:  j# N, q4 b' }. y2 {1 N0 Y% x$ {
#ifdef __QUGET_SWAP_FIX# [2 T: n+ Y  }* d
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
  h9 N6 q( m% E7 g, \                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());: ?2 C$ {% V$ V8 U/ `
0 U3 x' g2 H  }; @
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
5 J, B1 b0 O% x0 H                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
9 ^* ?9 N4 t3 |& @6 G" `4 `# k8 Q1 v( \+ R7 X* [' x
                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )1 o, f3 x; T. Q  \) H( f; M; G! N
                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );; ]5 g8 L: ?& G' ~% Q8 @8 h3 d
. |% a! F+ k  \
#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
  o) H) C! A' @7 K: p  j
" g3 W% q4 x- b5 H2 J" v/ Y# _# w6 o9 b+ j2 ]7 ~8 Z& t4 n& H# _5 T

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|飞飞世界技术论坛  

GMT+8, 2025-12-8 13:18 , Processed in 0.061048 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表