diff --git a/server/gameserver/metamgr.cc b/server/gameserver/metamgr.cc index 6e9856f..d837bcd 100755 --- a/server/gameserver/metamgr.cc +++ b/server/gameserver/metamgr.cc @@ -35,6 +35,10 @@ public: std::list tank_list; std::list skill_meta_list; std::list skill_list; + std::list buff_meta_list; + std::list buff_list; + std::list attr_meta_list; + std::list attr_list; std::list rankreward_meta_list; std::list rankreward_list; std::list equipupgrade_meta_list; @@ -60,6 +64,9 @@ public: std::map dress_hash; std::map tank_hash; std::map skill_hash; + std::map buff_hash; + std::map attr_id_hash; + std::map attr_name_hash; std::map rankreward_hash; std::map killreward_hash; std::map equipupgrade_hash; @@ -94,6 +101,8 @@ public: f8::ReadJsonMetaFile(res_path + "maps.json", building_meta_list); f8::ReadCsvMetaFile(res_path + "dress@dress.csv", dress_meta_list); f8::ReadCsvMetaFile(res_path + "skill@skill.csv", skill_meta_list); + f8::ReadCsvMetaFile(res_path + "buff@buff.csv", buff_meta_list); + f8::ReadCsvMetaFile(res_path + "attr@attr.csv", attr_meta_list); f8::ReadCsvMetaFile(res_path + "rankReward@rankReward.csv", rankreward_meta_list); f8::ReadCsvMetaFile(res_path + "killReward@killReward.csv", killreward_meta_list); f8::ReadCsvMetaFile(res_path + "equipUpgrade@equipUpgrade.csv", equipupgrade_meta_list); @@ -245,6 +254,20 @@ private: skill_hash[item.i->skill_id()] = &item; } + for (auto& meta : buff_meta_list) { + MetaData::Buff& item = a8::FastAppend(buff_list); + item.i = &meta; + item.Init(); + buff_hash[item.i->buff_id()] = &item; + } + + for (auto& meta : attr_meta_list) { + MetaData::Attr& item = a8::FastAppend(attr_list); + item.i = &meta; + attr_id_hash[item.i->attr_id()] = &item; + attr_name_hash[item.i->attr_ename()] = &item; + } + for (auto& meta : rankreward_meta_list) { MetaData::RankReward& item = a8::FastAppend(rankreward_list); item.i = &meta; @@ -389,17 +412,20 @@ MetaData::Skill* MetaMgr::GetSkill(int skill_id) MetaData::Buff* MetaMgr::GetBuff(int buff_id) { - return nullptr; + auto itr = loader_->buff_hash.find(buff_id); + return itr != loader_->buff_hash.end() ? itr->second : nullptr; } MetaData::Attr* MetaMgr::GetAttrById(int attr_id) { - return nullptr; + auto itr = loader_->attr_id_hash.find(attr_id); + return itr != loader_->attr_id_hash.end() ? itr->second : nullptr; } MetaData::Attr* MetaMgr::GetAttrByName(const std::string& attr_name) { - return nullptr; + auto itr = loader_->attr_name_hash.find(attr_name); + return itr != loader_->attr_name_hash.end() ? itr->second : nullptr; } MetaData::Dress* MetaMgr::GetDress(int dress_id)