From 6a64ee20c64f845ce4fbfde77fb68c750bd8c883 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 12 Oct 2024 11:12:19 +0800 Subject: [PATCH] 1 --- server/gameserver/bag.cc | 8 +++++--- server/gameserver/bag.h | 2 +- server/gameserver/netdata.cc | 2 ++ server/gameserver/netdata.h | 4 ++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/server/gameserver/bag.cc b/server/gameserver/bag.cc index 90cc4300..fde63ca2 100644 --- a/server/gameserver/bag.cc +++ b/server/gameserver/bag.cc @@ -20,9 +20,11 @@ int BagItem::GetCdTime(Human* hum) (potion_meta->cooldown() * SERVER_FRAME_RATE - (hum->room->GetFrameNo() - last_use_tick)) * FRAME_RATE_MS); } -void Bag::Parse(const std::list& items) +void Bag::Parse(const std::list>& items) { - for (auto item_id : items) { + for (auto tuple : items) { + auto item_id = std::get<0>(tuple); + auto item_num = std::get<1>(tuple); auto item_meta = mt::Item::GetById(item_id); if (item_meta) { auto potion_meta = mt::BattlePotion::GetById(item_id); @@ -30,7 +32,7 @@ void Bag::Parse(const std::list& items) if (potion_meta && equip_meta) { auto p = std::make_shared(); p->equip_id = equip_meta->id(); - p->equip_num = 10; + p->equip_num = item_num; p->item_meta = item_meta; p->potion_meta = potion_meta; p->equip_meta = equip_meta; diff --git a/server/gameserver/bag.h b/server/gameserver/bag.h index 8a2a8b2a..bc8b73a1 100644 --- a/server/gameserver/bag.h +++ b/server/gameserver/bag.h @@ -26,7 +26,7 @@ class Bag Bag(Human* owner) { owner_ = owner; }; void UseItem(int equip_id); void PushBagInfo(); - void Parse(const std::list& items); + void Parse(const std::list>& items); std::shared_ptr GetItemById(int equip_id); private: diff --git a/server/gameserver/netdata.cc b/server/gameserver/netdata.cc index 9061edcd..5c97c0b2 100644 --- a/server/gameserver/netdata.cc +++ b/server/gameserver/netdata.cc @@ -546,11 +546,13 @@ void BattleDataContext::ParseResult(a8::XObject& obj) avatars_.push_back(290001); } } + #if 0 if (hero_dto->HasKey("items") && hero_dto->At("items")->IsArray()) { for (int i = 0; i < hero_dto->At("items")->Size(); ++i) { items_.push_back(hero_dto->At("items")->At(i)->AsXValue()); } } + #endif } if (obj.HasKey("honor_info") && obj.At("honor_info")->IsArray()) { auto honor_info = obj.At("honor_info"); diff --git a/server/gameserver/netdata.h b/server/gameserver/netdata.h index 6d2484c7..4d572d9f 100644 --- a/server/gameserver/netdata.h +++ b/server/gameserver/netdata.h @@ -100,7 +100,7 @@ struct BattleDataContext int GetHonor(); int GetElo() { return elo_; } const std::list& GetAvatars() { return avatars_; } - const std::list& GetItems() { return items_; } + const std::list>& GetItems() { return items_; } std::shared_ptr GetHeroAbility() { return hero_ability_; } private: @@ -131,7 +131,7 @@ private: int battle_times_ = 0; std::list avatars_; - std::list items_; + std::list> items_; int skill1_lv = 1; int skill2_lv = 1;