diff --git a/maps/bots/objectives/_manager.gsc b/maps/bots/objectives/_manager.gsc index a51feb4..2b7bcbc 100644 --- a/maps/bots/objectives/_manager.gsc +++ b/maps/bots/objectives/_manager.gsc @@ -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; } diff --git a/maps/bots/objectives/_powerup.gsc b/maps/bots/objectives/_powerup.gsc index 4961346..4e35f01 100644 --- a/maps/bots/objectives/_powerup.gsc +++ b/maps/bots/objectives/_powerup.gsc @@ -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; } diff --git a/maps/bots/objectives/_revive.gsc b/maps/bots/objectives/_revive.gsc index ec42973..08270f1 100644 --- a/maps/bots/objectives/_revive.gsc +++ b/maps/bots/objectives/_revive.gsc @@ -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; } diff --git a/maps/bots/objectives/_utility.gsc b/maps/bots/objectives/_utility.gsc index 160c598..8cbe053 100644 --- a/maps/bots/objectives/_utility.gsc +++ b/maps/bots/objectives/_utility.gsc @@ -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; diff --git a/maps/bots/objectives/_wallweapon.gsc b/maps/bots/objectives/_wallweapon.gsc index 7dac0fd..cebd8ba 100644 --- a/maps/bots/objectives/_wallweapon.gsc +++ b/maps/bots/objectives/_wallweapon.gsc @@ -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;