1
This commit is contained in:
parent
da6df7256c
commit
23124ca3da
@ -42,8 +42,19 @@ void Bag::Parse(const std::list<std::tuple<int, int, int, int>>& items)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<BagItem> Bag::GetItemById(int equip_id)
|
std::shared_ptr<BagItem> Bag::GetItemByEquipId(int equip_id)
|
||||||
{
|
{
|
||||||
auto itr = items_.find(equip_id);
|
auto itr = items_.find(equip_id);
|
||||||
return itr != items_.end() ? itr->second : nullptr;
|
return itr != items_.end() ? itr->second : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<BagItem> Bag::GetItemByItemId(int item_id)
|
||||||
|
{
|
||||||
|
for (auto pair : items_) {
|
||||||
|
auto item = pair.second;
|
||||||
|
if (item->item_meta && item->item_meta->id() == item_id) {
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
@ -27,7 +27,8 @@ class Bag
|
|||||||
void UseItem(int equip_id);
|
void UseItem(int equip_id);
|
||||||
void PushBagInfo();
|
void PushBagInfo();
|
||||||
void Parse(const std::list<std::tuple<int, int, int, int>>& items);
|
void Parse(const std::list<std::tuple<int, int, int, int>>& items);
|
||||||
std::shared_ptr<BagItem> GetItemById(int equip_id);
|
std::shared_ptr<BagItem> GetItemByEquipId(int equip_id);
|
||||||
|
std::shared_ptr<BagItem> GetItemByItemId(int item_id);
|
||||||
void UpdateItemNum(int item_id, int item_num);
|
void UpdateItemNum(int item_id, int item_num);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -2948,7 +2948,7 @@ void CustomBattle::NotifyState()
|
|||||||
|
|
||||||
void Bag::UseItem(int equip_id)
|
void Bag::UseItem(int equip_id)
|
||||||
{
|
{
|
||||||
auto p = GetItemById(equip_id);
|
auto p = GetItemByEquipId(equip_id);
|
||||||
if (p && p->equip_num > 0 && p->GetCdTime(owner_) <= 0 && p->equip_meta && p->potion_meta) {
|
if (p && p->equip_num > 0 && p->GetCdTime(owner_) <= 0 && p->equip_meta && p->potion_meta) {
|
||||||
--p->equip_num;
|
--p->equip_num;
|
||||||
p->last_use_tick = owner_->room->GetFrameNo();
|
p->last_use_tick = owner_->room->GetFrameNo();
|
||||||
@ -2978,6 +2978,7 @@ void Bag::UseItem(int equip_id)
|
|||||||
p->potion_meta->buff(),
|
p->potion_meta->buff(),
|
||||||
p->potion_meta->duration() * 1000);
|
p->potion_meta->duration() * 1000);
|
||||||
}
|
}
|
||||||
|
owner_->GetNetData()->UseItem(p->item_meta->id());
|
||||||
|
|
||||||
cs::SMUpdateBag notify_msg;
|
cs::SMUpdateBag notify_msg;
|
||||||
auto pb_item = notify_msg.add_items();
|
auto pb_item = notify_msg.add_items();
|
||||||
@ -3020,7 +3021,7 @@ void Bag::InternalPushBagInfo()
|
|||||||
|
|
||||||
void Bag::UpdateItemNum(int item_id, int item_num)
|
void Bag::UpdateItemNum(int item_id, int item_num)
|
||||||
{
|
{
|
||||||
auto p = GetItemById(item_id);
|
auto p = GetItemByItemId(item_id);
|
||||||
if (p) {
|
if (p) {
|
||||||
p->equip_num = item_num;
|
p->equip_num = item_num;
|
||||||
cs::SMUpdateBag notify_msg;
|
cs::SMUpdateBag notify_msg;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user