add ai config
This commit is contained in:
parent
b959b8b332
commit
3f0a482ea2
@ -15,13 +15,13 @@ const int SHUA_RANGE = 580;
|
||||
|
||||
ai级别
|
||||
1: 木桩(不射击)
|
||||
2: 站桩间隔开枪
|
||||
3: 站桩描边射击
|
||||
4: 站桩扫射(连续射击)
|
||||
5: 跑动间隔开枪
|
||||
6: 跑动描边射击
|
||||
7: 跑动扫射
|
||||
8: 跑动射击
|
||||
2: 站桩间隔开枪 param1: 攻击距离 param2:攻击间隔
|
||||
3: 站桩描边射击 param1: 攻击距离
|
||||
4: 站桩扫射(连续射击) param1: 攻击距离
|
||||
5: 跑动间隔开枪 param1: 追击距离 param2:攻击间隔
|
||||
6: 跑动描边射击 param1: 追击距离
|
||||
7: 跑动扫射 param1: 追击距离
|
||||
8: 跑动射击 param1: 追击距离
|
||||
*/
|
||||
|
||||
AndroidNewAI::~AndroidNewAI()
|
||||
|
@ -34,6 +34,11 @@ struct OldAiData
|
||||
long long series_attack_frames = 0;
|
||||
};
|
||||
|
||||
namespace MetaData
|
||||
{
|
||||
class AI;
|
||||
}
|
||||
|
||||
class Human;
|
||||
class AndroidNewAI : public AIComponent
|
||||
{
|
||||
@ -64,12 +69,7 @@ private:
|
||||
private:
|
||||
OldAiData old_ai_data_;
|
||||
|
||||
double param1_ = 0;
|
||||
double param2_ = 0;
|
||||
double param3_ = 0;
|
||||
double param4_ = 0;
|
||||
|
||||
MetaData::AI* ai_meta = nullptr;
|
||||
AINode node_;
|
||||
bool moving_ = false;
|
||||
|
||||
};
|
||||
|
@ -215,4 +215,9 @@ namespace MetaData
|
||||
const metatable::KillPoint* i = nullptr;
|
||||
};
|
||||
|
||||
struct AI
|
||||
{
|
||||
const metatable::AI* i = nullptr;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -59,6 +59,8 @@ public:
|
||||
std::list<MetaData::KillPoint> killpoint_list;
|
||||
std::list<metatable::Robot> robot_meta_list;
|
||||
std::vector<MetaData::Robot> robot_list;
|
||||
std::list<metatable::AI> ai_meta_list;
|
||||
std::vector<MetaData::AI> ai_list;
|
||||
|
||||
std::map<std::string, MetaData::Parameter*> parameter_hash;
|
||||
std::map<int, MetaData::Map*> gamemap_hash;
|
||||
@ -85,6 +87,7 @@ public:
|
||||
std::map<int, MetaData::EquipUpgrade*> equipupgrade_hash;
|
||||
std::map<int, MetaData::Robot*> robot_hash;
|
||||
std::map<int, std::vector<MetaData::AirLine*>> airline_hash;
|
||||
std::map<int, MetaData::AI*> ai_hash;
|
||||
|
||||
void Load()
|
||||
{
|
||||
@ -130,6 +133,7 @@ public:
|
||||
f8::ReadCsvMetaFile(res_path + "rankPoint@rankPoint.csv", rankpoint_meta_list);
|
||||
f8::ReadCsvMetaFile(res_path + "equipUpgrade@equipUpgrade.csv", equipupgrade_meta_list);
|
||||
f8::ReadCsvMetaFile(res_path + "robot@robot.csv", robot_meta_list);
|
||||
f8::ReadCsvMetaFile(res_path + "ai@ai.csv", ai_meta_list);
|
||||
BindToMetaData();
|
||||
#if 1
|
||||
{
|
||||
@ -513,6 +517,12 @@ private:
|
||||
robot_hash[meta.id()] = &item;
|
||||
}
|
||||
|
||||
for (auto& meta : ai_meta_list) {
|
||||
MetaData::AI& item = a8::FastAppend(ai_list);
|
||||
item.i = &meta;
|
||||
ai_hash[meta.ai_level()] = &item;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
@ -728,12 +738,8 @@ MetaData::Robot* MetaMgr::RandRobot(std::set<int>& refreshed_robot_set)
|
||||
}
|
||||
}
|
||||
|
||||
double MetaMgr::GetAiParam(int ai_level, int param_idx)
|
||||
MetaData::AI* MetaMgr::GetAI(int ai_level)
|
||||
{
|
||||
if (ai_level >= 0 && ai_level < (int)ai_params.size()) {
|
||||
if (param_idx >= 0 && param_idx < (int)ai_params[ai_level].size()) {
|
||||
return ai_params[ai_level][param_idx];
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
auto itr = loader_->ai_hash.find(ai_level);
|
||||
return itr != loader_->ai_hash.end() ? itr->second : nullptr;
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
||||
int GetKillPointParam1(int kill_num);
|
||||
int GetKillPointParam2(int kill_num);
|
||||
MetaData::Robot* RandRobot(std::set<int>& refreshed_robot_set);
|
||||
double GetAiParam(int ai_level, int param_idx);
|
||||
MetaData::AI* GetAI(int ai_level);
|
||||
|
||||
int gas_inactive_time = 10;
|
||||
int newbie_gas_inactive_time = 5;
|
||||
@ -123,6 +123,5 @@ class MetaMgr : public a8::Singleton<MetaMgr>
|
||||
|
||||
std::string level0room_spec_things;
|
||||
std::string level0room_spec_airdrop;
|
||||
std::vector<std::vector<int>> ai_params;
|
||||
friend class MetaDataLoader;
|
||||
};
|
||||
|
@ -235,6 +235,16 @@ message KillPoint
|
||||
optional int32 parameter2 = 3;
|
||||
}
|
||||
|
||||
message AI
|
||||
{
|
||||
optional int32 ai_level = 1;
|
||||
optional int32 pursuit_distance = 2;
|
||||
optional int32 attack_interval = 3;
|
||||
optional int32 attack_times = 4;
|
||||
optional int32 attack_type = 5;
|
||||
optional float shot_offset_angle = 6;
|
||||
}
|
||||
|
||||
//end
|
||||
|
||||
message DoorObjJson
|
||||
|
Loading…
x
Reference in New Issue
Block a user