添加ai基础
This commit is contained in:
parent
cdbfd129da
commit
f84d35b8e6
@ -245,7 +245,7 @@ void AndroidAI::UpdateNewAI()
|
||||
return;
|
||||
}
|
||||
if (!ai_meta && GetAiLevel() != 0) {
|
||||
ai_meta = MetaMgr::Instance()->GetAI(GetAiLevel(), 0);
|
||||
ai_meta = MetaMgr::Instance()->GetAndroidAI(GetAiLevel(), 0);
|
||||
if (!ai_meta) {
|
||||
abort();
|
||||
}
|
||||
|
@ -116,3 +116,11 @@ enum EntityType_e
|
||||
ET_Unuse = 30,
|
||||
ET_MAX
|
||||
};
|
||||
|
||||
enum AIKind_e
|
||||
{
|
||||
kAI_Begin = 0,
|
||||
kAI_Android = 1,
|
||||
kAI_MineSweeper = 2,
|
||||
kAI_End
|
||||
};
|
||||
|
@ -76,7 +76,7 @@ void HeroAI::UpdateAI()
|
||||
{
|
||||
Hero* hero = (Hero*)owner;
|
||||
if (!ai_meta && GetAiLevel() != 0) {
|
||||
ai_meta = MetaMgr::Instance()->GetAI(GetAiLevel(), 0);
|
||||
ai_meta = MetaMgr::Instance()->GetAndroidAI(GetAiLevel(), 0);
|
||||
if (!ai_meta) {
|
||||
abort();
|
||||
}
|
||||
|
@ -1110,6 +1110,11 @@ namespace MetaData
|
||||
}
|
||||
}
|
||||
|
||||
void AI::Init2()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int AI::GetMoveIdleTime()
|
||||
{
|
||||
return a8::RandEx(
|
||||
|
@ -291,9 +291,26 @@ namespace MetaData
|
||||
{
|
||||
const metatable::AI* i = nullptr;
|
||||
void Init();
|
||||
void Init2();
|
||||
int GetMoveIdleTime();
|
||||
int GetMoveTime();
|
||||
|
||||
float param1 = 0.0f;
|
||||
float param2 = 0.0f;
|
||||
float param3 = 0.0f;
|
||||
float param4 = 0.0f;
|
||||
float param5 = 0.0f;
|
||||
int int_param1 = 0;
|
||||
int int_param2 = 0;
|
||||
int int_param3 = 0;
|
||||
int int_param4 = 0;
|
||||
int int_param5 = 0;
|
||||
std::vector<int> int_list_param1;
|
||||
std::vector<int> int_list_param2;
|
||||
std::vector<int> int_list_param3;
|
||||
std::vector<int> int_list_param4;
|
||||
std::vector<int> int_list_param5;
|
||||
|
||||
private:
|
||||
std::tuple<int, int> random_move_idle_time_;
|
||||
std::tuple<int, int> random_move_time_;
|
||||
|
@ -99,6 +99,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<long long, MetaData::AI*> android_ai_hash;
|
||||
std::map<int, MetaData::AI*> ai_hash;
|
||||
std::map<std::string, std::string> text_hash;
|
||||
|
||||
@ -691,7 +692,8 @@ private:
|
||||
MetaData::AI& item = a8::FastAppend(ai_list);
|
||||
item.i = &meta;
|
||||
item.Init();
|
||||
ai_hash[a8::MakeInt64(meta.ai_level(), meta.ai_mode())] = &item;
|
||||
ai_hash[item.i->id()] = &item;
|
||||
android_ai_hash[a8::MakeInt64(meta.ai_level(), meta.ai_mode())] = &item;
|
||||
}
|
||||
|
||||
for (auto& meta : text_meta_list) {
|
||||
@ -963,9 +965,15 @@ MetaData::Robot* MetaMgr::RandRobot(std::set<int>& refreshed_robot_set)
|
||||
}
|
||||
}
|
||||
|
||||
MetaData::AI* MetaMgr::GetAI(int ai_level, int ai_mode)
|
||||
MetaData::AI* MetaMgr::GetAndroidAI(int ai_level, int ai_mode)
|
||||
{
|
||||
auto itr = loader_->ai_hash.find(a8::MakeInt64(ai_level, ai_mode));
|
||||
auto itr = loader_->android_ai_hash.find(a8::MakeInt64(ai_level, ai_mode));
|
||||
return itr != loader_->android_ai_hash.end() ? itr->second : nullptr;
|
||||
}
|
||||
|
||||
MetaData::AI* MetaMgr::GetHeroAI(int id)
|
||||
{
|
||||
auto itr = loader_->ai_hash.find(id);
|
||||
return itr != loader_->ai_hash.end() ? itr->second : nullptr;
|
||||
}
|
||||
|
||||
|
@ -55,7 +55,8 @@ 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);
|
||||
MetaData::AI* GetAI(int ai_level, int ai_mode);
|
||||
MetaData::AI* GetAndroidAI(int ai_level, int ai_mode);
|
||||
MetaData::AI* GetHeroAI(int id);
|
||||
std::string GetText(const std::string& textid, const std::string& def_text="");
|
||||
|
||||
int gas_inactive_time = 10;
|
||||
|
@ -91,7 +91,7 @@ void ZombieModeAI::UpdateAI()
|
||||
return;
|
||||
}
|
||||
if (!node_->ai_meta && GetAiLevel() != 0) {
|
||||
node_->ai_meta = MetaMgr::Instance()->GetAI(GetAiLevel(), GetAiMode());
|
||||
node_->ai_meta = MetaMgr::Instance()->GetAndroidAI(GetAiLevel(), GetAiMode());
|
||||
if (!node_->ai_meta) {
|
||||
abort();
|
||||
}
|
||||
|
@ -187,6 +187,7 @@ message Player
|
||||
optional int32 default_weapon = 28;
|
||||
optional int32 dead_drop = 29;
|
||||
optional int32 delay_delete = 39;
|
||||
optional int32 ai = 46;
|
||||
}
|
||||
|
||||
message Robot
|
||||
@ -337,6 +338,7 @@ message KillPoint
|
||||
|
||||
message AI
|
||||
{
|
||||
optional int32 id = 13;
|
||||
optional int32 ai_level = 1;
|
||||
optional int32 pursuit_radius = 2;
|
||||
optional int32 attack_interval = 3;
|
||||
@ -348,6 +350,12 @@ message AI
|
||||
optional int32 attack_range = 10;
|
||||
optional float attack_rate = 11;
|
||||
optional int32 ai_mode = 12;
|
||||
optional int32 ai_kind = 14;
|
||||
optional string param1 = 15;
|
||||
optional string param2 = 16;
|
||||
optional string param3 = 17;
|
||||
optional string param4 = 18;
|
||||
optional string param5 = 19;
|
||||
}
|
||||
|
||||
message Text
|
||||
|
Loading…
x
Reference in New Issue
Block a user