From f4823c9ca98511b43624a2b6b6ee451616c1c97a Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 13 Dec 2021 11:51:43 +0800 Subject: [PATCH] 1 --- server/gameserver/metamgr.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/server/gameserver/metamgr.cc b/server/gameserver/metamgr.cc index 24ab449..df33101 100644 --- a/server/gameserver/metamgr.cc +++ b/server/gameserver/metamgr.cc @@ -198,6 +198,7 @@ public: std::map safearea_type_hash; std::map> safearea_pos_hash; std::map item_hash; + std::map item_heroskin_hash; std::map equip_hash; std::map equip_slot_hash; std::map player_hash; @@ -725,7 +726,11 @@ private: for (auto& meta : item_meta_list) { MetaData::Item& item = a8::FastAppend(item_list); item.i = &meta; + item.Init(); item_hash[item.i->id()] = &item; + if (meta.playerid()) { + item_heroskin_hash[item.i->id()] = &item; + } } for (auto& meta : equip_meta_list) { @@ -1204,10 +1209,12 @@ std::vector>* MetaMgr::GetTextElements(const std::s MetaData::Item* MetaMgr::GetItem(int id) { - return nullptr; + auto itr = loader_->item_hash.find(id); + return itr != loader_->item_hash.end() ? itr->second : nullptr; } MetaData::Item* MetaMgr::GetHeroSkin(int hero_id) { - return nullptr; + auto itr = loader_->item_heroskin_hash.find(hero_id); + return itr != loader_->item_heroskin_hash.end() ? itr->second : nullptr; }