1
This commit is contained in:
parent
d3b175bd25
commit
c457815907
@ -1570,12 +1570,27 @@ namespace MetaData
|
||||
|
||||
void PveGemini::Init()
|
||||
{
|
||||
|
||||
{
|
||||
std::vector<std::string> strings;
|
||||
a8::Split(pb->multiplayer_enemy_hp_mul(), strings, '|');
|
||||
for (auto& str : strings) {
|
||||
hp_muls.push_back(a8::XValue(str).GetDouble());
|
||||
}
|
||||
if (hp_muls.size() != 4) {
|
||||
abort();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
float PveGemini::GetHpMul()
|
||||
float PveGemini::GetHpMul(int num)
|
||||
{
|
||||
return 0;
|
||||
if (num > 0 && num <= hp_muls.size()) {
|
||||
return hp_muls[num - 1];
|
||||
}
|
||||
#ifdef DEBUG
|
||||
abort();
|
||||
#endif
|
||||
return 0.5;
|
||||
}
|
||||
|
||||
void PveGeminiContent::Init()
|
||||
|
@ -167,6 +167,11 @@ namespace MetaData
|
||||
int RandDrop();
|
||||
};
|
||||
|
||||
struct NpcStandard
|
||||
{
|
||||
const metatable::NpcStandard* pb = nullptr;
|
||||
};
|
||||
|
||||
struct Robot
|
||||
{
|
||||
const metatable::Robot* i = nullptr;
|
||||
@ -442,9 +447,10 @@ namespace MetaData
|
||||
struct PveGemini
|
||||
{
|
||||
const metatable::PveGemini* pb = nullptr;
|
||||
std::vector<float> hp_muls;
|
||||
|
||||
void Init();
|
||||
float GetHpMul();
|
||||
float GetHpMul(int num);
|
||||
|
||||
private:
|
||||
std::vector<float> hp_mul;
|
||||
|
@ -199,6 +199,7 @@ public:
|
||||
std::list<metatable::PveGemini> pve_gemini_meta_list;
|
||||
std::list<metatable::PveGeminiContent> pve_gemini_content_meta_list;
|
||||
std::list<metatable::PveGeminiMode> pve_gemini_mode_meta_list;
|
||||
std::list<metatable::NpcStandard> npc_standard_meta_list;
|
||||
|
||||
std::map<std::string, MetaData::Parameter*> parameter_hash;
|
||||
std::map<int, MetaData::Map*> gamemap_hash;
|
||||
@ -240,6 +241,7 @@ public:
|
||||
std::map<int, MetaData::PveGemini> pve_gemini_hash;
|
||||
std::map<int, std::vector<MetaData::PveGeminiContent>> pve_gemini_content_hash;
|
||||
std::map<int, MetaData::PveGeminiMode> pve_gemini_mode_hash;
|
||||
std::map<int, MetaData::NpcStandard> npc_standard_hash;
|
||||
|
||||
int curr_group_id = 1001;
|
||||
std::map<long long, int> weapon_group_hash;
|
||||
@ -295,6 +297,7 @@ public:
|
||||
f8::ReadCsvMetaFile(res_path + "pveGemini@pveGemini.csv", pve_gemini_meta_list);
|
||||
f8::ReadCsvMetaFile(res_path + "pveGeminiContent@pveGeminiContent.csv", pve_gemini_content_meta_list);
|
||||
f8::ReadCsvMetaFile(res_path + "pveGeminiMode@pveGeminiMode.csv", pve_gemini_mode_meta_list);
|
||||
f8::ReadCsvMetaFile(res_path + "npcStandard@npcStandard.csv", npc_standard_meta_list);
|
||||
f8::ReadJsonMetaFile(res_path + "terrain.json", terrain_meta_list);
|
||||
BindToMetaData();
|
||||
#if 1
|
||||
@ -784,6 +787,13 @@ private:
|
||||
if (MetaMgr::Instance()->match_lock_time >= MetaMgr::Instance()->match_choose_time) {
|
||||
A8_ABORT();
|
||||
}
|
||||
{
|
||||
for (int i = 1; i <= 15; ++i) {
|
||||
if (!MetaMgr::Instance()->GetNpcStandard(i)) {
|
||||
abort();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BindToMetaData()
|
||||
@ -1109,6 +1119,12 @@ private:
|
||||
pve_gemini_mode_hash[meta.id()] = item;
|
||||
}
|
||||
|
||||
for (auto& meta : npc_standard_meta_list) {
|
||||
MetaData::NpcStandard item;
|
||||
item.pb = &meta;
|
||||
npc_standard_hash[meta.id()] = item;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
@ -1495,3 +1511,9 @@ void MetaMgr::CheckMapSpawnPoint()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MetaData::NpcStandard* MetaMgr::GetNpcStandard(int quality)
|
||||
{
|
||||
auto itr = loader_->npc_standard_hash.find(quality);
|
||||
return itr != loader_->npc_standard_hash.end() ? &itr->second : nullptr;
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
||||
MetaData::Item* GetHeroSkin(int id);
|
||||
MetaData::Building* GetBuilding(int building_id);
|
||||
MetaData::Drop* GetDrop(int drop_id);
|
||||
MetaData::NpcStandard* GetNpcStandard(int quality);
|
||||
MetaData::SafeArea* GetSafeArea(int area_id);
|
||||
MetaData::SafeArea* GetSafeAreaByType(int area_type);
|
||||
MetaData::SafeAreaPos* RandSafeAreaPos(int area_id);
|
||||
|
@ -321,6 +321,15 @@ message SkillNumber
|
||||
optional string cd = 10;
|
||||
}
|
||||
|
||||
message NpcStandard
|
||||
{
|
||||
required int32 id = 1;
|
||||
optional int32 quality = 2;
|
||||
optional int32 hp = 3;
|
||||
optional int32 damage = 4;
|
||||
optional int32 defence = 5;
|
||||
}
|
||||
|
||||
message Buff
|
||||
{
|
||||
required int32 buff_id = 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user