完成技能读表

This commit is contained in:
aozhiwei 2019-04-26 17:12:59 +08:00
parent bcf06862ca
commit 3aa3594977
4 changed files with 59 additions and 1 deletions

View File

@ -120,4 +120,14 @@ namespace MetaData
void Init();
};
struct Skill
{
const metatable::Skill* i = nullptr;
};
struct Dress
{
const metatable::Dress* i = nullptr;
};
}

View File

@ -32,6 +32,10 @@ public:
std::list<MetaData::AirDrop> airdrop_list;
std::list<metatable::AirLine> airline_meta_list;
std::vector<MetaData::AirLine> airline_list;
std::list<metatable::Dress> dress_meta_list;
std::list<MetaData::Dress> dress_list;
std::list<metatable::Skill> skill_meta_list;
std::list<MetaData::Skill> skill_list;
std::map<std::string, MetaData::Parameter*> parameter_hash;
std::map<int, MetaData::Map*> gamemap_hash;
@ -45,6 +49,8 @@ public:
std::map<int, MetaData::Drop*> drop_hash;
std::map<std::string, std::list<metatable::MapTplThingJson>> maptpl_meta_hash;
std::map<std::string, std::vector<MetaData::MapTplThing>> maptpl_hash;
std::map<int, MetaData::Dress*> dress_hash;
std::map<int, MetaData::Skill*> skill_hash;
void Load()
{
@ -66,6 +72,8 @@ public:
f8::ReadCsvMetaFile(res_path + "airdrop@airdrop.csv", airdrop_meta_list);
f8::ReadCsvMetaFile(res_path + "airline@airline.csv", airline_meta_list);
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);
BindToMetaData();
#if 1
{
@ -189,6 +197,19 @@ private:
building_hash[item.i->_building_id()] = &item;
}
}
for (auto& meta : dress_meta_list) {
MetaData::Dress& item = a8::FastAppend(dress_list);
item.i = &meta;
dress_hash[item.i->id()] = &item;
}
for (auto& meta : skill_meta_list) {
MetaData::Skill& item = a8::FastAppend(skill_list);
item.i = &meta;
skill_hash[item.i->id()] = &item;
}
}
private:
@ -300,3 +321,15 @@ MetaData::AirLine* MetaMgr::RandAirLine()
}
return &loader_->airline_list[rand() % loader_->airline_list.size()];
}
MetaData::Skill* MetaMgr::GetSkill(int skill_id)
{
auto itr = loader_->skill_hash.find(skill_id);
return itr != loader_->skill_hash.end() ? itr->second : nullptr;
}
MetaData::Dress* MetaMgr::GetDress(int dress_id)
{
auto itr = loader_->dress_hash.find(dress_id);
return itr != loader_->dress_hash.end() ? itr->second : nullptr;
}

View File

@ -30,6 +30,8 @@ class MetaMgr : public a8::Singleton<MetaMgr>
std::vector<MetaData::MapTplThing>* GetMapTplThing(std::string& map_name);
std::list<MetaData::AirDrop>& GetAirDrops();
MetaData::AirLine* RandAirLine();
MetaData::Skill* GetSkill(int skill_id);
MetaData::Dress* GetDress(int dress_id);
int gas_inactive_time = 10;
int jump_time = 10;

View File

@ -85,7 +85,14 @@ message Player
message Skill
{
optional int32 skill_id = 1; //id
optional int32 id = 1;
optional int32 type = 2;
optional int32 condition = 3;
optional float value1 = 4;
optional float value2 = 5;
optional int32 area = 6;
optional int32 cd_time = 7;
optional int32 last_time = 8;
}
message Drop
@ -114,6 +121,12 @@ message AirLine
optional int32 weight = 5;
}
message Dress
{
optional int32 id = 1;
optional int32 skill_id = 2;
}
//end
message DoorObjJson