This commit is contained in:
aozhiwei 2021-12-16 15:51:29 +08:00
parent c8261ea620
commit 11f016d4fc
5 changed files with 50 additions and 0 deletions

View File

@ -1535,4 +1535,19 @@ namespace MetaData
}
void GunTalentGrow::Init()
{
std::vector<std::string> tmp_strs1;
a8::Split(i->addattr(), tmp_strs1, '|');
for (std::string& str : tmp_strs1) {
std::vector<std::string> tmp_strs2;
a8::Split(str, tmp_strs2, ':');
if (tmp_strs2.size() >= 2) {
addattr.push_back(
std::make_tuple(a8::XValue(tmp_strs2[0]), a8::XValue(tmp_strs2[1]))
);
}
}
}
}

View File

@ -327,6 +327,15 @@ namespace MetaData
const metatable::KillPoint* i = nullptr;
};
struct GunTalentGrow
{
const metatable::GunTalentGrow* i = nullptr;
std::vector<std::tuple<int, int>> addattr;
void Init();
};
struct AI
{
const metatable::AI* i = nullptr;

View File

@ -191,6 +191,7 @@ public:
std::list<MetaData::AI> ai_list;
std::list<metatable::Text> text_meta_list;
std::list<metatable::TerrainJson> terrain_meta_list;
std::list<metatable::GunTalentGrow> talent_meta_list;
std::map<std::string, MetaData::Parameter*> parameter_hash;
std::map<int, MetaData::Map*> gamemap_hash;
@ -227,6 +228,7 @@ public:
std::map<long long, MetaData::AI*> android_ai_hash;
std::map<int, MetaData::AI*> ai_hash;
std::map<std::string, std::string> text_hash;
std::map<int, std::shared_ptr<MetaData::GunTalentGrow>> talent_hash;
std::map<std::string, std::vector<std::tuple<int, std::string>>> text_element_hash;
int curr_group_id = 1001;
@ -278,6 +280,7 @@ public:
f8::ReadCsvMetaFile(res_path + "robot@robot.csv", robot_meta_list);
f8::ReadCsvMetaFile(res_path + "ai@ai.csv", ai_meta_list);
f8::ReadCsvMetaFile(res_path + "text@text.csv", text_meta_list);
f8::ReadCsvMetaFile(res_path + "gunTalentGrow@gunTalentGrow.csv", talent_meta_list);
f8::ReadJsonMetaFile(res_path + "terrain.json", terrain_meta_list);
BindToMetaData();
#if 1
@ -900,6 +903,13 @@ private:
}
}
for (auto& meta : talent_meta_list) {
std::shared_ptr<MetaData::GunTalentGrow> item = std::make_shared<MetaData::GunTalentGrow>();
item->i = &meta;
item->Init();
talent_hash[a8::MakeInt64(meta.talent_id(), meta.talent_lv())] = item;
}
}
private:
@ -1224,3 +1234,9 @@ std::vector<std::tuple<int, std::string>>* MetaMgr::GetTextElements(const std::s
auto itr = loader_->text_element_hash.find(textid);
return itr != loader_->text_element_hash.end() ? &itr->second : nullptr;
}
MetaData::GunTalentGrow* MetaMgr::GetTalent(int talent_id, int talent_lv)
{
auto itr = loader_->talent_hash.find(a8::MakeInt64(talent_id, talent_lv));
return itr != loader_->talent_hash.end() ? itr->second.get() : nullptr;
}

View File

@ -52,6 +52,7 @@ class MetaMgr : public a8::Singleton<MetaMgr>
MetaData::Dress* GetDress(int dress_id);
MetaData::Dress* RandDress();
MetaData::RankReward* GetRankReward(int rank);
MetaData::GunTalentGrow* GetTalent(int talent_id, int talent_lv);
float GetRankRewardParam(int rank);
float GetKillRewardParam(int kill_num);
int GetRankPointParam1(int rank);

View File

@ -416,6 +416,15 @@ message Text
optional string text = 2;
}
message GunTalentGrow
{
optional int32 id = 1;
optional int32 talent_id = 2;
optional int32 talent_lv = 3;
optional int32 addtype = 4;
optional string addattr = 5;
}
//end
message DoorObjJson