use dyn prio

This commit is contained in:
ineed bots 2023-07-15 14:58:58 -06:00
parent b7254c0131
commit 2d719726dc
5 changed files with 13 additions and 12 deletions

View File

@ -6,9 +6,9 @@
init()
{
level.bot_objectives = [];
level.bot_objectives[level.bot_objectives.size] = CreateObjectiveForManger( "revive", maps\bots\objectives\_revive::Finder, maps\bots\objectives\_revive::Executer, 1000 );
level.bot_objectives[level.bot_objectives.size] = CreateObjectiveForManger( "powerup", maps\bots\objectives\_powerup::Finder, maps\bots\objectives\_powerup::Executer, 2500 );
level.bot_objectives[level.bot_objectives.size] = CreateObjectiveForManger( "wallweapon", maps\bots\objectives\_wallweapon::Finder, maps\bots\objectives\_wallweapon::Executer, 7500 );
level.bot_objectives[level.bot_objectives.size] = CreateObjectiveForManger( "revive", maps\bots\objectives\_revive::Finder, maps\bots\objectives\_revive::Priority, maps\bots\objectives\_revive::Executer, 1000 );
level.bot_objectives[level.bot_objectives.size] = CreateObjectiveForManger( "powerup", maps\bots\objectives\_powerup::Finder, maps\bots\objectives\_powerup::Priority, maps\bots\objectives\_powerup::Executer, 2500 );
level.bot_objectives[level.bot_objectives.size] = CreateObjectiveForManger( "wallweapon", maps\bots\objectives\_wallweapon::Finder, maps\bots\objectives\_wallweapon::Priority, maps\bots\objectives\_wallweapon::Executer, 7500 );
}
connected()
@ -136,7 +136,7 @@ bot_objective_think()
}
// already on a better obj
if ( self HasBotObjective() && ( best_prio.GUID == self.bot_current_objective.GUID || best_prio.fPriority < self.bot_current_objective.fPriority ) )
if ( self HasBotObjective() && ( best_prio.GUID == self.bot_current_objective.GUID || best_prio.fPriority < self [[self.bot_current_objective.eParentObj.fpPriorty]]( self.bot_current_objective.eParentObj, self.bot_current_objective.eEnt ) ) )
{
continue;
}

View File

@ -34,7 +34,7 @@ Finder( eObj )
continue;
}
answer[answer.size] = self CreateFinderObjective( eObj, eObj.sName + "_" + ents[i] GetEntityNumber(), ents[i], self Priority( eObj, ents[i] ) );
answer[answer.size] = self CreateFinderObjective( eObj, eObj.sName + "_" + ents[i] GetEntityNumber(), ents[i], self [[eObj.fpPriorty]]( eObj, ents[i] ) );
}
return answer;
@ -46,7 +46,7 @@ Priority( eObj, eEnt )
base_priority = 0;
base_priority += ClampLerp( get_path_dist( self.origin, eEnt.origin ), 300, 700, 2, -2 );
if ( self HasBotObjective() )
if ( self HasBotObjective() && self.bot_current_objective.eEnt != eEnt )
{
base_priority -= 1;
}

View File

@ -47,7 +47,7 @@ Finder( eObj )
continue;
}
Answer[Answer.size] = self CreateFinderObjective( eObj, eObj.sName + "_" + Player GetEntityNumber(), Player, self Priority( eObj, Player ) );
Answer[Answer.size] = self CreateFinderObjective( eObj, eObj.sName + "_" + Player GetEntityNumber(), Player, self [[eObj.fpPriorty]]( eObj, Player ) );
}
return Answer;
@ -58,7 +58,7 @@ Priority( eObj, eEnt )
base_priority = 3;
base_priority += ClampLerp( get_path_dist( self.origin, eEnt.origin ), 500, 1200, 2, -2 );
if ( self HasBotObjective() )
if ( self HasBotObjective() && self.bot_current_objective.eEnt != eEnt )
{
base_priority -= 1;
}

View File

@ -2,13 +2,14 @@
#include maps\_utility;
#include maps\bots\_bot_utility;
CreateObjectiveForManger( sName, fpFinder, fpExecuter, iProcessRate )
CreateObjectiveForManger( sName, fpFinder, fpPriorty, fpExecuter, iProcessRate )
{
Answer = SpawnStruct();
Answer.sName = sName;
Answer.fpFinder = fpFinder;
Answer.fpExecuter = fpExecuter;
Answer.fpPriorty = fpPriorty;
Answer.aBotProcessTimes = [];
Answer.iProcessRate = iProcessRate;

View File

@ -75,7 +75,7 @@ Finder( eObj )
continue;
}
answer[answer.size] = self CreateFinderObjective( eObj, eObj.sName + "_" + weapon_spawns[i] GetEntityNumber(), weapon_spawns[i], self Priority( eObj, weapon_spawns[i] ) );
answer[answer.size] = self CreateFinderObjective( eObj, eObj.sName + "_" + weapon_spawns[i] GetEntityNumber(), weapon_spawns[i], self [[eObj.fpPriorty]]( eObj, weapon_spawns[i] ) );
}
return answer;
@ -102,14 +102,14 @@ Priority( eObj, eEnt )
base_priority = 0;
base_priority += ClampLerp( get_path_dist( self.origin, eEnt.origin ), 0, 800, 2, -2 );
if ( self HasBotObjective() )
if ( self HasBotObjective() && self.bot_current_objective.eEnt != eEnt )
{
base_priority -= 1;
}
if ( eEnt.zombie_weapon_upgrade == "zombie_kar98k" )
{
base_priority -= 99;
base_priority -= 999;
}
return base_priority;