local cooldown = 360 -- через сколько времени после попадания биттеры должны забыть о шипах? local accuracy = 1 -- насколько точной вы хотите сделать перезарядку (1 для идеальной точности, чем больше число, тем быстрее). storage.spikes = storage.spikes or {} -- storage.spikes[id] будет последним тиком, когда шипы с указанным идентификатором ударили по чему-либо script.on_event(defines.events.on_script_trigger_effect, function(event) -- будет запускаться каждый раз, когда шип наносит урон кому-либо if effect_id == "spike-effect" then event.target_entity.is_military_target = true -- биттеры теперь должны атаковать шипы более агрессивно storage[event.target_entity.unit_number] = {entity = event.target_entity, tick = event.tick} -- нужно проверить, что шипы еще не уничтожены end end) -- Теперь периодически биттеры должны забывать о шипах script.on_nth_tick(accuracy, function(event) for id, record in pairs(storage.spikes) do if event.tick >= record.tick + cooldown then if record.entity.valid then -- нужно проверить, что шипы еще не уничтожены record.entity.is_military_target = false end storage.spikes[id] = nil -- не беспокойтесь о проверке этих шипов снова end end end)