添加ai基础
This commit is contained in:
parent
cdbfd129da
commit
f84d35b8e6
@ -245,7 +245,7 @@ void AndroidAI::UpdateNewAI()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!ai_meta && GetAiLevel() != 0) {
|
if (!ai_meta && GetAiLevel() != 0) {
|
||||||
ai_meta = MetaMgr::Instance()->GetAI(GetAiLevel(), 0);
|
ai_meta = MetaMgr::Instance()->GetAndroidAI(GetAiLevel(), 0);
|
||||||
if (!ai_meta) {
|
if (!ai_meta) {
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
@ -116,3 +116,11 @@ enum EntityType_e
|
|||||||
ET_Unuse = 30,
|
ET_Unuse = 30,
|
||||||
ET_MAX
|
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;
|
Hero* hero = (Hero*)owner;
|
||||||
if (!ai_meta && GetAiLevel() != 0) {
|
if (!ai_meta && GetAiLevel() != 0) {
|
||||||
ai_meta = MetaMgr::Instance()->GetAI(GetAiLevel(), 0);
|
ai_meta = MetaMgr::Instance()->GetAndroidAI(GetAiLevel(), 0);
|
||||||
if (!ai_meta) {
|
if (!ai_meta) {
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
@ -1110,6 +1110,11 @@ namespace MetaData
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AI::Init2()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
int AI::GetMoveIdleTime()
|
int AI::GetMoveIdleTime()
|
||||||
{
|
{
|
||||||
return a8::RandEx(
|
return a8::RandEx(
|
||||||
|
@ -291,9 +291,26 @@ namespace MetaData
|
|||||||
{
|
{
|
||||||
const metatable::AI* i = nullptr;
|
const metatable::AI* i = nullptr;
|
||||||
void Init();
|
void Init();
|
||||||
|
void Init2();
|
||||||
int GetMoveIdleTime();
|
int GetMoveIdleTime();
|
||||||
int GetMoveTime();
|
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:
|
private:
|
||||||
std::tuple<int, int> random_move_idle_time_;
|
std::tuple<int, int> random_move_idle_time_;
|
||||||
std::tuple<int, int> random_move_time_;
|
std::tuple<int, int> random_move_time_;
|
||||||
|
@ -99,6 +99,7 @@ public:
|
|||||||
std::map<int, MetaData::EquipUpgrade*> equipupgrade_hash;
|
std::map<int, MetaData::EquipUpgrade*> equipupgrade_hash;
|
||||||
std::map<int, MetaData::Robot*> robot_hash;
|
std::map<int, MetaData::Robot*> robot_hash;
|
||||||
std::map<int, std::vector<MetaData::AirLine*>> airline_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<int, MetaData::AI*> ai_hash;
|
||||||
std::map<std::string, std::string> text_hash;
|
std::map<std::string, std::string> text_hash;
|
||||||
|
|
||||||
@ -691,7 +692,8 @@ private:
|
|||||||
MetaData::AI& item = a8::FastAppend(ai_list);
|
MetaData::AI& item = a8::FastAppend(ai_list);
|
||||||
item.i = &meta;
|
item.i = &meta;
|
||||||
item.Init();
|
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) {
|
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;
|
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 GetKillPointParam1(int kill_num);
|
||||||
int GetKillPointParam2(int kill_num);
|
int GetKillPointParam2(int kill_num);
|
||||||
MetaData::Robot* RandRobot(std::set<int>& refreshed_robot_set);
|
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="");
|
std::string GetText(const std::string& textid, const std::string& def_text="");
|
||||||
|
|
||||||
int gas_inactive_time = 10;
|
int gas_inactive_time = 10;
|
||||||
|
@ -91,7 +91,7 @@ void ZombieModeAI::UpdateAI()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!node_->ai_meta && GetAiLevel() != 0) {
|
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) {
|
if (!node_->ai_meta) {
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
@ -187,6 +187,7 @@ message Player
|
|||||||
optional int32 default_weapon = 28;
|
optional int32 default_weapon = 28;
|
||||||
optional int32 dead_drop = 29;
|
optional int32 dead_drop = 29;
|
||||||
optional int32 delay_delete = 39;
|
optional int32 delay_delete = 39;
|
||||||
|
optional int32 ai = 46;
|
||||||
}
|
}
|
||||||
|
|
||||||
message Robot
|
message Robot
|
||||||
@ -337,6 +338,7 @@ message KillPoint
|
|||||||
|
|
||||||
message AI
|
message AI
|
||||||
{
|
{
|
||||||
|
optional int32 id = 13;
|
||||||
optional int32 ai_level = 1;
|
optional int32 ai_level = 1;
|
||||||
optional int32 pursuit_radius = 2;
|
optional int32 pursuit_radius = 2;
|
||||||
optional int32 attack_interval = 3;
|
optional int32 attack_interval = 3;
|
||||||
@ -348,6 +350,12 @@ message AI
|
|||||||
optional int32 attack_range = 10;
|
optional int32 attack_range = 10;
|
||||||
optional float attack_rate = 11;
|
optional float attack_rate = 11;
|
||||||
optional int32 ai_mode = 12;
|
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
|
message Text
|
||||||
|
Loading…
x
Reference in New Issue
Block a user