飞飞世界论坛

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

修复交换错误

[复制链接]

197

主题

203

帖子

1088

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1088
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 ' H% |0 `- C2 R4 F# i
I posted this because someone kinda posted a youtube thingy about it :O.
: |6 S0 E- W$ U, i' N" V
. N& C- a" F) X7 V# ^; }) D1 I6 `Find this in DPSrv.cpp @ worldserver
% x7 C0 ~, G, O0 T9 B# T6 Z4 Z) \: Q/ C, M) s9 _1 p: F
Code:
4 J& n9 R' J% \! q5 a1 avoid CDPSrvr::OnDoEquip( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
6 ~1 T* ~3 T4 z{
/ R5 n% |5 {- P8 y% Z1 X        DWORD nId;5 i0 r# T5 \6 {2 {
        int nPart;( c7 X, e5 n) R+ u- P

* Q/ R& n  t8 g( |  G/ o# R        ar >> nId;
) t. x) M! o4 X9 }6 f, p5 F* K" G        ar >> nPart;                . s/ g! ]) N% v$ g5 j' C3 N' b- E
        + ~/ Y3 D1 J% }% B: j% {- s
        if( nPart >= MAX_HUMAN_PARTS )        3 B$ A3 a/ N( ]; Y: x
                return;
  v, T4 A$ r2 J* L" H5 d6 j
- J- B1 D5 C$ S( I  U2 O6 A        CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );And put this under it' Z" c2 G) Q2 u$ ]* l  m3 `5 C; C7 i
3 g. Q1 C) Q7 p# ~

: W8 m2 r, ^; WCode:
. G& K6 c3 w; Z#ifdef __QUGET_SWAP_FIX
$ R3 w$ B6 G) q0 v, A/ z0 z! l5 z  y, \9 F& O
                                if( pUser->GetHitPoint() >  pUser->GetMaxHitPoint() )
- H3 ^3 i: q! ]* d* _                                         pUser->SetHitPoint( pUser->GetMaxHitPoint());1 `/ G* n" w7 e& A; a
) e" }( o/ \' |: o" N
                                if( pUser->GetManaPoint() >  pUser->GetMaxManaPoint() )+ t! R3 \2 ]9 d# G+ x
                                         pUser->SetManaPoint( pUser->GetMaxManaPoint() );  s5 S! O# U  L# l7 A5 R
  R9 O3 f! O/ x3 T* u8 l
                                if( pUser->GetFatiguePoint() >  pUser->GetMaxFatiguePoint() )
) e0 r0 y$ W! J) v* J2 m                                         pUser->SetFatiguePoint( pUser->GetMaxFatiguePoint() );
/ B4 Z3 P$ I( Y
0 z5 D& |7 j9 l  V4 K#endiffind this in function void CDPClient::OnDoEquip( OBJID objid, CAr & ar ) @ DPClient.cpp
( o0 I) a. _, G- J$ @# Eand add under
- {: q5 Y- L" E8 `: u+ E( c$ _4 X7 p* N( U) }9 H
Code:
& [+ }3 X4 Z2 K& l1 V  x5 C  Y% o5 Oif( g_WndMng.m_pWndBeautyShop && g_WndMng.m_pWndBeautyShop->m_pModel )1 P3 g+ N1 Q/ r( H+ [
                        {
( ~2 `2 c7 q: S, x: d0 s& 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 );
  H2 z, M% T+ u9 D' V0 U# C9 E                        }this
1 o2 v2 U- r, ~% Y  C* i) k# H: `1 w# N" S2 j3 x
Code:( ]8 F: N( W$ C: c' X4 B$ k* X6 T
#ifdef __QUGET_SWAP_FIX2 V+ }% E$ Z# b8 |* P: ^7 W
                                if( pPlayer->GetHitPoint() >  pPlayer->GetMaxHitPoint() )
" Z( L( o  l% k0 s' y                                         pPlayer->SetHitPoint( pPlayer->GetMaxHitPoint());
1 K2 |0 I# E3 K( f" N: K8 u4 e: n9 j4 b) b/ [# E
                                if( pPlayer->GetManaPoint() >  pPlayer->GetMaxManaPoint() )
# `+ Y  M* o; X1 c: `# [9 S- y$ U' l                                         pPlayer->SetManaPoint( pPlayer->GetMaxManaPoint() );
4 F" ^1 d3 h( w# j2 r
: ~4 u2 Z7 I. Q- J' }# V                                if( pPlayer->GetFatiguePoint() >  pPlayer->GetMaxFatiguePoint() )
& n" ]" {, Y3 \# c$ E5 H                                         pPlayer->SetFatiguePoint( pPlayer->GetMaxFatiguePoint() );
! y" F  i, c8 |6 T
! @$ q/ ?: T% _$ i#endifand then define __QUGET_SWAP_FIX in versioncommon.h @neuz and worldserver 2 o2 Y* L. K: X
: Y0 \8 E- M' R8 }; z* K5 ]9 p

5 }9 h) P' y1 N. k& ]/ W. t. t

相关帖子

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-23 22:34 , Processed in 0.081567 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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