飞飞世界论坛

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

修复交换错误

[复制链接]

200

主题

203

帖子

984

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
984
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
' l, b9 V' c# Q3 }6 k9 `" X0 NI posted this because someone kinda posted a youtube thingy about it :O.
8 y2 q: Z, {( v9 Q2 D3 _4 R0 k. P6 n7 c" `
Find this in DPSrv.cpp @ worldserver
- Y7 M; U: V0 W  h
" P1 F. B7 I( P/ C. ^Code:2 k% A8 f2 l2 |$ V$ n$ w
void CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )6 a4 F* I6 k% \7 G% i0 c
{. |  i& W0 G$ p9 v" W4 b( g9 {
        DWORD nId;
4 H: x' K, C* E. r9 z2 Q        int nPart;
  n# v* }6 Y* ~5 A2 \# n1 u+ w" p' _6 Z' a* q" L
        ar >> nId;
  {" k7 B7 x5 v1 }5 p" B  w        ar >> nPart;               
' k  o) n! E+ l# U* k' o          n" T" d* t3 u6 L% |- I% ]; }
        if( nPart >= MAX_HUMAN_PARTS )       
4 p& A2 r( l. w                return;  k4 e+ M5 C% w: w/ b
. _; g; l% R+ b+ x0 S) o$ d0 {
        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it0 J3 j" _/ u9 W8 i7 |

4 @; H9 J. ~$ `' ~* B) i: k5 F) {
( C) V% ?  I  b% C' n5 h9 {) ^/ u( MCode:
. ^' X% e0 W" h' i#ifdef __QUGET_SWAP_FIX. w# p; a% E6 c+ F2 K9 |7 e- e7 l. z

: o6 s4 B  L! i$ z% x5 s4 b                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )3 B: N) T- q7 x3 [2 K
                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());) E8 r3 U( h6 K' G4 ^
' j( f; w2 Z4 |
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )
! X2 X9 h& e+ i6 m. W* `                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );! ~8 v, [6 X: b6 F, G1 q

! K" S7 ~4 p3 O                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
: X' _3 o8 i* I# `6 @8 G                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );9 N9 s  w+ _$ b! m9 D. Z: I

4 o, B5 L( X, p- s5 l#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp  W) [1 w3 d: I% `, H4 B8 e
and add under8 i+ M9 Z/ ?* Z' N+ A" M2 s; Q
2 f, w: f  L& O8 l  R* e5 m9 s
Code:5 L4 g' N8 ?  j
if( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )
6 I: y3 c# Z0 @2 [0 x3 q9 U: M                        {
; N6 Y7 C" \3 B! u                                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 );
) @# U  e4 O+ v, {9 H                        }this
3 G. o2 {/ X; @: Z! y
( Q! U# b$ v: T& C1 ^( H, lCode:
) E) m3 U% Y$ e6 ^/ ~+ x) d/ f#ifdef __QUGET_SWAP_FIX7 k- U5 Z" F3 h, ~( B; [
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )) F$ X7 e6 W& x3 z, B- O) P/ d) N1 P
                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
5 |/ c& X) I$ a7 V2 e+ r  j7 O! M3 F, |8 S7 l' {& f9 U1 m) y& j
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )1 j$ o! v% }: S( \9 N* [
                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
! D) O2 b3 W1 r6 N$ \) w9 ^
, S0 |+ j& B/ F                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
  [- a+ X. {3 Q* w                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
+ w  C. D! J, l
% L4 Z7 q* X" H* i#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver
" m+ M; l- G4 ?+ n0 X$ r9 Z
. i8 i/ T/ @; x- t; Z) D% ?
8 G5 Q9 j, ^+ o6 N5 A8 T

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 18:01 , Processed in 0.066572 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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