From ebbb7de7039981571afea7245c71fc37f076ff77 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 9 Jun 2021 15:51:37 +0800 Subject: [PATCH] 1 --- server/gameserver/human.cc | 14 ++++++++++++++ server/gameserver/human.h | 1 + server/gameserver/player.cc | 26 +------------------------- 3 files changed, 16 insertions(+), 25 deletions(-) diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 1aa316f..3355e8a 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -3775,3 +3775,17 @@ void Human::SendRollMsgEx(KillInfo& info, } ); } + +void Human::ProcUseItem(int item_id) +{ + if (downed) { + return; + } + MetaData::Equip* item_meta = MetaMgr::Instance()->GetEquip(item_id); + if (item_meta && GetItemNum(item_id) > 0) { + if (item_meta->i->buffid() != 0) { + TryAddBuff(this, item_meta->i->buffid()); + } + DecItem(item_id, 1); + } +} diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 980e603..e9616d2 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -244,6 +244,7 @@ class Human : public Creature virtual std::string GetName() override { return name;}; void UpdateViewObjects(); void GMAddItem(int item_id, int item_num); + void ProcUseItem(int item_id); protected: void _InternalUpdateMove(float speed); diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 3e39e59..47108af 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -337,31 +337,7 @@ void Player::UpdateUseItemIdx() void Player::UpdateUseItemId() { - if (downed) { - return; - } - MetaData::Equip* item_meta = MetaMgr::Instance()->GetEquip(use_item_id); - if (item_meta && item_meta->i->equip_type() == EQUIP_TYPE_CAMOUFLAGE) { - int item_num = GetItemNum(use_item_id); - if (JsonDataMgr::Instance()->channel == kTouTiaoChannelId) { - item_num = 1; - } - #ifdef DEBUG - if (channel == kTouTiaoChannelId) { - item_num = 1; - } - #endif - if (item_num > 0) { - MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(item_meta->i->buffid()); - if (buff_meta && !GetBuffById(item_meta->i->buffid())) { - if (HasBuffEffect(kBET_Camouflage)) { - RemoveBuffByEffectId(kBET_Camouflage); - } - AddBuff(this, buff_meta, 1); - DecItem(use_item_id, 1); - } - } - } + ProcUseItem(use_item_id); use_item_id = 0; has_use_item_id = false; }