Fix lag in choose rpg target

This commit is contained in:
Yunfan Li
2024-08-14 23:24:44 +08:00
parent 0eba23d738
commit 7772f2a3a7

View File

@@ -54,24 +54,14 @@ float ChooseRpgTargetAction::getMaxRelevance(GuidPosition guidP)
GuidPosition currentRpgTarget = AI_VALUE(GuidPosition, "rpg target"); GuidPosition currentRpgTarget = AI_VALUE(GuidPosition, "rpg target");
SET_AI_VALUE(GuidPosition, "rpg target", guidP); SET_AI_VALUE(GuidPosition, "rpg target", guidP);
Strategy* rpgStrategy; Strategy* rpgStrategy = botAI->GetAiObjectContext()->GetStrategy("rpg");
if (!rpgStrategy) return 0.0f;
std::vector<TriggerNode*> triggerNodes; std::vector<TriggerNode*> triggerNodes;
rpgStrategy->InitTriggers(triggerNodes);
float maxRelevance = 0.0f; float maxRelevance = 0.0f;
for (auto& strategy : botAI->GetAiObjectContext()->GetSupportedStrategies())
{
if (strategy.find("rpg") == std::string::npos)
continue;
if (!botAI->HasStrategy(strategy, BotState::BOT_STATE_NON_COMBAT))
continue;
rpgStrategy = botAI->GetAiObjectContext()->GetStrategy(strategy);
rpgStrategy->InitTriggers(triggerNodes);
for (auto triggerNode : triggerNodes) for (auto triggerNode : triggerNodes)
{ {
Trigger* trigger = context->GetTrigger(triggerNode->getName()); Trigger* trigger = context->GetTrigger(triggerNode->getName());
@@ -115,9 +105,7 @@ float ChooseRpgTargetAction::getMaxRelevance(GuidPosition guidP)
{ {
delete trigger; delete trigger;
} }
triggerNodes.clear(); triggerNodes.clear();
}
SET_AI_VALUE(GuidPosition, "rpg target", currentRpgTarget); SET_AI_VALUE(GuidPosition, "rpg target", currentRpgTarget);