Сетевая игра
Содержание:
- Продвинутый загрузчик поездов
- Явления
- Приоритеты дронов
- Поезда
- Враги и эволюция
- Умножение и словари/массивы
- Инструменты для моддинга
- Солнечные панели и аккумуляторы
- Мультиплеерные команды
- Как пользоваться Планом Обновления
- Подземные конвейеры
- Типы конвейеров
- Совмещение комбинаторов в разных условиях
- Enemy/evolution scripts
- Базовый таймер
- Переработка нефти
Продвинутый загрузчик поездов
Эта схема решает проблему равномерной загрузки предметов в сундуки на станциях погрузки, из-за которой погрузка предметов в вагоны поездов происходит медленнее.
Для установки этой схемы потребуется арифметический комбинатор и красный и зеленый провода. Все сундуки соединяются проводом, который заводится на вход комбинатора. В арифметическом комбинаторе введите: количество предметов / -количество сундуков — это дает среднее значение предметов в одном сундуке; результат деления передается по каналу тех предметов, что находятся в сундуке. Все используемые манипуляторы соединяются проводом, который заводится на выход комбинатора, причем его цвет отличен от цвета провода, соединяющего сундуки. Далее, в манипуляторах необходимо установить условие: предмет < 1.
Вот как работает эта схема:
в манипуляторах производится сравнение среднего значения количества предметов с количество предметов из сундука напротив манипулятора (суммируется отрицательное среднее с положительным числом предметов из сундука). Манипулятор включается, когда среднее значение больше количества в сундуке.
Явления
Дронстанция |
Центр Роботизированной сети, в пределах покрытия которого дроны формируют логистическую сеть. |
Транспортный дрон |
Перемещает предметы между Логистическими сундуками]]. (*) |
Сундук активного снабжения |
Сундук активного снабжения: Снабжает логистическую сеть своим содержимым. (**) |
Сундук пассивного снабжения |
Сундук пассивного снабжения: Пассивно снабжает логистическую сеть своим содержимым. (**) |
Сундук хранения |
Сундук хранения: Содержит предметы, которые сейчяас не нужны. Снабжает логистическую сеть своим содержимым. (**) |
Сундук запроса |
Сундук запроса: Заполняется логистическими дронами пока не будет достигнуто заданное число предметов, либо сундук не заполнится. Может быть настроен на несколько типов предметов. (**) |
(*) В начале каждый дрон может переносить только 1 предмет. Это количество может быть увеличено после изучения Грузоподъемность логистических роботов.
(**) Логистические сундуки также используются в логической сети при помощи проводов, например красного или зеленого.
Приоритеты дронов
Этот обзор показывает приоритеты, по которым сундуки наполняются/опустошаются.
Логистическая сеть использует сундуки в следующем порядке:
- Запрашиваемый предмет вначале ищут в активных сундуках снабжения, затем в сундуках хранения, затем в пассивных сундуках снабжения. Таким образом, сначала опустошают активные сундуки снабжения, затем сундуки хранения, затем пассивные сундуки снабжения.
- Если дроны свободны, в сундуках хранения есть место, а в активных сундуках снабжения есть предметы, на которых не требуется запрос, предметы начинают перемещаться из активных сундуков снабжения в сундуки хранения.
- При помещении предмета в сундук хранения, в начале дроны ищут сундук, в котором уже есть такой предмет. Если такого нет, либо он заполнен, дрон помещает предмет в новый сундук. Это позволяет избежать мешанину в сундуках, позволяя организовать место лучше.
В сундуки хранения попадают предметы из активных сундуков снабжения, а также от строительных дронов, в случае, если они несли предметы, когда приказ на строительство был отменен.
Порядок движенния
Дроны дейстуют согласно условию все запросы имеют равный приоритет. Алгоритм ищет следующего свободного дрона, затем следующий запрос в очереди и после передачи запроса дрону, этот запрос помещается в хвост очереди.
Поезда
Поезда можно составлять из таких элементов, как:
Локомотив |
Грузовой вагон |
Вагон-цистерна |
Железнодорожное артиллерийское орудие |
- У любого поезда должен быть как минимум один локомотив, чтобы перемещаться по путям.
- Вы можете устанавливать на поезда не только больше одного локомотива, но и неограниченное количество вагонов любого типа.
- Локомотивами можно управлять вручную для передвижения вперёд или назад, хотя назад они обычно едут несколько медленнее. Для того, чтобы выбирать направление движения поезда на стрелочных переводах, используйте клавиши движения влево и вправо.
- Поезд, двигающийся в автоматическом режиме, может это делать как вперёд, так и назад, при условии, что к нему прицеплены как минимум два разнонаправленных локомотива.
- Для того, чтобы ваши локомотивы могли передвигать поезда, в них нужно загружать топливо. Вы можете делать это как вручную, так и при помощи манипуляторов. Имейте в виду, что погрузка топлива в локомотивы при помощи манипуляторов возможна только тогда, когда поезд припаркован на ж/д станции, либо управляется вручную. Так, если поезд находится в режиме ожидания перед стрелочным переводом, пополнить его запас топлива при помощи манипуляторов вам не удастся.
Установка грузового вагона таким образом, чтобы он прикрепился к локомотиву.
Слоты инвентаря локомотива предназначены исключительно для топлива. Для того, чтобы транспортировать предметы или жидкости, вам потребуется прицепить к составу грузовые вагоны, и/или вагоны-цистерны. Для того, чтобы прицепить локомотив или вагон к составу, вы можете установить новую часть поезда непосредственно рядом с ним. Если же новая часть поезда находится далеко от состава, вы можете воспользоваться клавишей G, чтобы присоединить вагон к поезду, либо клавишей V, чтобы отсоединить вагон от поезда.
Враги и эволюция
Изменяется от 0 (новая игра) до 1.
c game.forces"enemy"evolution_factor=X
Отключение эволюции с течением времени и увеличение эволюции от загрязнения
c game.map_settings.enemy_evolution.time_factor= c game.map_settings.enemy_evolution.pollution_factor=game.map_settings.enemy_evolution.pollution_factor*2
Двойка в последней строчке удваивает изначальный фактор эволюции. Это значение можно менять по своему усмотрению.
Имейте в виду, что эта команда убьет только самих юнитов, а не их улья.
c game.forces"enemy"kill_all_units()
Уничтожение всех врагов
Этот скрипт уничтожает всех кусак, плевак и их улья. Любые враги будут уничтожены. Применяется только для врагов, находящихся на открытой части карты, т.о. на не открытых участках, которые будут сгенерированны после, враги остаются. Если это неприемлемо, воспользуйтесь следующим .
c local surface=game.player.surface for key, entity in pairs(surface.find_entities_filtered({force="enemy"})) do entity.destroy() end
Уничтожение ближайших врагов
Убивает всех кусак, улья и червей в заданном радиусе. По умолчанию равен 250 клеткам, что соответствует двухкратному увеличению Full HD экрана. После уничтожения, выводит количество убитых врагов.
c local surface=game.player.surface local pp = game.player.position local cnt = for key, entity in pairs(surface.find_entities_filtered({force="enemy", radius=250, position=pp })) do cnt = cnt+1 entity.destroy() end game.player.print(cnt)
Мирный режим
В мирном режиме, кусаки не атакуют до тех пор, пока их не спровоцировали. Замените «true» на «false» для отключения мирного режима. Не применяется к уже существующим кусакам.
c game.player.surface.peaceful_mode = true
Экспансия кусак
При активированной экспансии (включено по умолчанию), кусаки создают новые гнезда. Замените «true» на «false» для отключения экспансии.
c game.map_settings.enemy_expansion.enabled = true
Отключение появления кусак в новых чанках
Отключает появление кусак в новых чанках; не применяется к уже существующим чанкам. Эквивалентно настройке «Вражеские базы» в генераторе карты при старте игры.
c local surface = game.player.surface local mgs = surface.map_gen_settings mgs.autoplace_controls"enemy-base"size = "none" surface.map_gen_settings = mgs
Умножение и словари/массивы
Перемножение двух сигналов операция простая и требует всего один комбинатор, чего нельзя сказать о перемножении нескольких сигналов, схема которой представлена на рисунке. Ниже представлено доказательство, почему эта схема работает.
Словарь — это система, которая позволяет получить доступ к значению определенного сигнала из некоторого множества сигналов по ключу. К примеру, (см. на рисунок) A хранит некоторое множество сигналов (либо из постоянного комбинатора, либо из ячейки памяти), а B содержит один сигнал-ключ (например сигнал синего цвета). На выходе схемы, остается только значение из множества A соответствующее синему сигналу, т.к. остальные были умножены на 0.
Массивы похожи на словари, но вместо использования сигнала в качестве ключа, используется число. Постоянный комбинатор нумерует некоторое множество сигналов (например, значение сигнала конвейера равно 1, быстрого конвейера — 2, экспресс-конвейера — 3, твердотовливного манипулятора — 4 и т.д.). Затем используется сравнивающий комбинатор с условием (вход: каждый = индекс нужного сигнала; выход: каждый), выход которого заводится на схему чтения словаря.
Выражения доказывающие и объясняющие работу схемы:
((A+B)^2 - (A-B)^2)/4 = AB (A+B)^2 - (A-B)^2 = 4AB (A^2 + 2AB + B^2) - (A^2 - 2AB + B^2) = 4AB 4AB = 4AB
Схема чтения словаря.
Пояснения к работе схемы чтения словаря.
Инструменты для моддинга
Список всех объектов и предметов игры можно найти в data.raw.
Доступ к данным мода
__rso-mod__ — это название мода в формате __mod-name__. Указание __mod-name__ в начале строки заставляет работать код в контексте указанного мода. Ниже представлен код, выводящий информацию моде Resource Spawner Overhaul.
c __rso-mod__ game.player.print(serpent.dump(global))
Вывод всех исследованных технологий в файл
Файл отправится в директорию приложения в подкаталог «script-output».
c local list = {} for _, tech in pairs(game.player.force.technologies) do if tech.researched then list#list+1 = tech.name end end game.write_file("techs.lua", serpent.block(list) .. "\n", true)
Вывод всех доступных рецептов в файл
Файл отправится в директорию приложения в подкаталог «script-output».
c local list = {} for _, recipe in pairs(game.player.force.recipes) do if recipe.enabled then list#list+1 = recipe.name end end game.write_file("recipes.lua", serpent.block(list) .. "\n", true)
Вывод списка модов в файл
Записывает все текущие активные моды и их версии в файл script-output/mods.txt находящейся в директории приложения.
c game.write_file("mods.txt", serpent.block(game.active_mods))
Солнечные панели и аккумуляторы
Оптимальное соотношение
Оптимальным соотношением является: 0.84 (21:25) аккумуляторов для солнечной панели, и 23.8 солнечная панель производит 1MW (Данное соотношение учитывает энергию неообходимую для зарядки аккумуляторов). Это означает что вам необходимо производить 1.428 MW (с помощью солнечных панелей) и аккумуляторов на 100MJ, чтобы снабжать завод стабильным 1 MW энергии в течение дня и ночи.
Также существует другое «достаточно близкое» соотношение 20:24:1 (аккумулятор:солнечная панель:МегаВат) для выполнения той же задачи (к примеру необходимо снабжать завод 10 MW в течении дня и ночи, соотношение приводит к 200 аккумуляторам и 240 солнечным панелям — данные числа далеки от оптимального значений (21:25). Для поддержания баланса необходимо будет установить 20 дополнительных солнечных панелей. Данное расхождение может показаться незначительным, но число дополнительных солнечных панелей будет расти с ростом необходимой энергии).
компактая автономная структура основанная на соотношении 20:24(или 4:5)
Вычисления
Оптимальное соотношение аккумуляторов на солнечную панель зависит от многих значений. К ним относятся выработка энергии солнечной панелью, ёмкость аккумулятора, продолжительность дня и ночи. Также есть периоды между днем и ночью, называемые сумерками и рассветом, которые усложняют вычисления. В оригинальное не модифицированной игре данное значение не меняется (21:25) и может быть вычесленно по формуле:
число аккумуляторов / число солнечных панелей = (продолжительность дня + продолжительность рассвета) × (продолжительность ночи + продолжительность рассвета × (продолжительность дня + продолжительность рассвета) / длинна игрового дня) / длинна игрового дня × производимая энергия солнечной панелью / ёмкость аккмулятора
Продолжительность дня равна 12500/60 сек; рассвета или семерк(одиннаковые значения) = 5000/60 сек; ночи = 2500/60 сек. По умолчанию солнечная панель производит 60 kW, а аккумулятор хранит 5 MJ энергии. Если подставить значения в формулу мы получим оптимальное соотношение равное 0.84 аккумуляторов на солнечную панель.
Если установленные модификацие затрагивают только выроботку энергии солнечной панелью и ёмкость аккумулятора то для рассчёта соотношения может быть использованна упрощённая формула:
число аккумуляторов / число солнечных панелей = 70 сек. × мощность солечной панели / ёмкость аккумулятора
Данное уровнение также может быть использованно для запоминания соотношения для не модифицированной игры.
Если модификация изменяет продолжительность дня, но не изменяет соотношение дня к сумеркам, то можно использовать следущую формулу:
число аккумуляторов / число солнечных панелей = 0.002016 /сек × продолжительность дня(в секундах. По умолчанию 25000/60 сек.)
Мультиплеерные команды
Команда | Пример | Описание | Только для админа |
---|---|---|---|
<message> | Всем привет! | Если ввод текста в консоли не начинается с символа , то оно обрабатывается как сообщение другим игрокам. | Нет |
/admin | /admin | Открывает интерфейс игроков. | Да |
/ban <player> <reason> | /ban xTROLLx Throwing grenades in base | Выдача бана конкретному игроку. | Да |
/bans | /bans | Выводит список забаненых игроков. | Нет |
/banlist <add/remove/get/clear> <player> | /banlist get | Добавляет или удаляет игрока из банлиста. Тоже что и /ban или /unban. | Нет |
/config <get/set> <option> <value> | /config set password hunter2 | Выводит или устанавливает различные настройки мультиплеера. Доступные настройки: afk-auto-kick, allow-commands, allow-debug-settings, autosave-interval, autosave-only-on-server, ignore-player-limit-for-returning-players, max-players, max-upload-speed, only-admins-can-pause, password, require-user-verification, visibility-lan, visibility-public. | Да |
/delete-blueprint-library <player> | /delete-blueprint-library everybody confirm | Удаляет содержимое библиотеки чертежей выбранного игрока находящегося в не сети. Ввод “everybody confirm” удаляет содержимое библиотеки для всех игроков. | Да |
/demote <player> | /demote AzureDiamond | Снимает с игрока права админа. | Да |
/ignore <player> | /ignore Cthon98 | Игнорирует сообщения от выбранного игрока. Не работает для на админе. | Нет |
/ignores | /ignores | Выводит список игнорируемых игроков. | Нет |
/kick <player> <reason> | /kick xTROLLx Throwing grenades in base | Кикает выбранного игрока. | Да |
/mute <player> | /mute Cthon98 | Запрещает отправление сообщений в чат выбранному игроку. | Да |
/mutes | /mutes | /mute для всех игроков. | Нет |
/open <player> | /open AzureDiamond | Открывает инвентарь другого игрока. | Да |
/o <player> | /o AzureDiamond | Тоже, что и /open. | Да |
/players [online/o/count/c] | /players | Выводит список всех игроков в игре. (параметр online/o выводит только тех игроков, которы находятся в онлайне; count/c выводит только количество игроков) | Нет |
/p [online/o/count/c] | /p o c | Тоже, что и /players. | Нет |
/promote <player> | /promote AzureDiamond | Наделяет игрока правами админа. | Да |
/purge <player> | /purge Cthon98 | Удаляет все сообщения от игрока из истории чата. | Да |
/reply <message> | /reply oh, really? | Ответ предыдущему игроку, который упомянул вас. | Нет |
/r <message> | /r oh, really? | Тоже, что и /reply. | Нет |
/server-save | /server-save | Сохраняет игру на сервере в мультиплеере. | Да |
/shout <message> | /shout Hello world! | Отправляет сообщение всех игрокам, включая другие стороны. | Нет |
/s <message> | /s Hello world! | Тоже, что и /shout. | Нет |
/swap-players <player> | /swap-players AzureDiamond | Переключение между своим персонажем и персонажем другого игрока или переключение между персонажами выбранных игроков. | Да |
/unban <player> | /unban xTROLLx | Разбан игрока. | Да |
/unignore <player> | /unignore Cthon98 | Разрешает получение сообщений от игрока. | Нет |
/unmute <player> | /unmute Cthon98 | Разрешает отправлять игроку сообщения в чат. | Да |
/whisper <player> <message> | /whisper AzureDiamond that’s what I see | Отправляет сообщение выбранному игроку. | Нет |
/w <player> <message> | /w AzureDiamond that’s what I see | Тоже, что и /whisper. | Нет |
/whitelist <add/remove/get/clear> | /whitelist get | Добавляет или удаляет игрока из вишлиста (белый список), списка игроков, которые могут присоединится к игре. Ввод “get” без имени игрока выводит список игроков отмеченных в вишлисте. Пустой вишлист означает, что к игре могут присоединится все желающие. | Нет |
Как пользоваться Планом Обновления
План Обновления позволяет отметить объекты, которые подлежат замене на более совершенные. Например, у вас есть некая постройка, которая использует базовые желтые конвейеры, а вы хотите быстро поменять их на улучшенные красные конвейеры.
Нажмите на иконку «План Обновления» справа от панели быстрого доступа или сочетание клавиш «ALT + U». Около курсора появится зеленая иконка чертежа. Выделите область, объекты внутри которой нужно обновить.
Если более совершенные версии выделенных объектов есть в логистической сети (например, сундук с красными конвейерами), дроны мгновенно примутся за работу
Однако важно помнить, что при таком использовании Плана Обновления, объекты будут улучшаться последовательно: желтый конвейер заменят на красный, а не сразу на синий (самый лучший)
Если же вы хотите заменить какие-либо объекты на что-то более высокого уровня, План Обновления нужно подредактировать вручную.
- Создайте пустой План Обновления и положите в Книгу Чертежей.
- Откройте созданный план ПКМ.
- В графе «От» укажите объекты, которые нужно заменить (например, желтые конвейеры).
- В графе «До» укажите объекты, на которые будут заменены выбранные (например, синие конвейеры).
- После этого закройте План Обновления, щелкните по нему левой кнопкой мыши и выделите область, которую нужно обновить.
- Все остальное дроны сделают самостоятельно.
Подземные конвейеры
Подземные конвейеры используются для пересечения других линий конвейеров, предметов или строений. Они перемещают предметы как обычные конвейеры.
- Они могут пересекать любое количество объектов любых типов, таких как земля, вода, болота, и др. (входной конвейер и выходной конвейер, конечно, должны быть на земле).
- Они могут пересекать друг друга, и другие подземные коммуникации (в том числе любое количества подземных конвейеров или подземных труб). Однако, конвейеры не должны быть смешаны.
- Для образования соединения важны только конечные точки (вход и выход).
- Максимальная дистанция подземных коммуникаций — 8 клеток с подземным экспресс-конвейером.
- Подземный конвейер покрывает 4 клетки и умещает в себя 44 предмета. Подземный экспресс-конвейер, установленный на максимальном расстоянии, вмещает 72 предмета.
- Та часть подземного конвейера, установленная на клетке с конвейером, может принимать предметы с одной стороны. Другая часть (со входом с туннель) не дает предметам поступать в туннель.
Это важный факт, потому что на этом базируется выполнение различных приёмов.
Подземный конвейер как блокировщик одной стороны конвейера
Чтобы построить такую конфигурацию, необходимо разместить один подземный конвейер и нажать R чтобы изменить его направление. Это преобразует вход подземного конвейера в выход (и наоборот).
Этот приём и аналогичные имеет несколько вариантов использования. См. ниже.
Разделение сторон конвейера при помощи подземного конвейера
При помощи этой же техники подземные конвейеры могут разделять левую и правую стороны конвейера.
Справа приведен пример как поменять местами полосы движения, а затем разделить и наполнить конвейер предметами с одной стороны.
Чтобы понять это изображение, начните просмотр сверху. Манипуляторы выкладывают только медные и только стальные пластины на левую и правую стороны конвейера. Затем размещен разделитель, который делит поток на два конвейера. Далее, ортогонально размещены подземные конвейеры (под углом 90 градусов слева или справа) на каждом завершающем конвейере. Далее, на соседней клетке размещены выходы. Результатом является то, что транспортируется только одна полоса входного конвейера.
На следующем разделителе эта процедура повторяется для демонстрации обратимости этой операции.
И, наконец, использован разделитель чтобы снова наполнить обе стороны конвейера.
Этот приём, конечно, также полезен с одиночным подземным конвейером, если требуется переместить одну сторону конвейера и оставить нетронутой другую. В таком случае разделитель не пригодится.
Преимущество такой конструкции в том, что оно не требует электричества для работы (пакетные манипуляторы, которые будут сортировать предметы, всегда требуют энергии) и она намного быстрее чем одиночный пакетный манипулятор и тем что она может забыть один предмет. Самый большой недостаток в том, что такую конструкцию немного сложнее построить (и дороже), и она требует немного больше места (но не сильно больше, чем когда строишь конструкцию такой же пропускной способности на манипуляторах). Но построить такую схему это, безусловно, хорошая идея, когда у вас есть много предметов на разных конвейерах и хотите их разделить по конвейерам.
Типы конвейеров
Ниже приведена таблица конвейеров, доступных в игре.
Конвейеры | Подземные конвейеры | Разделители | Макс. пропускная способность (предметов за игровую секунду)1 | Необходимое исследование |
---|---|---|---|---|
Конвейер |
Подземный конвейер |
Разделитель |
15 | Логистика (исследование)2 |
Быстрый конвейер |
Быстрый подземный конвейер |
Быстрый разделитель |
30 | Логистика 2 (исследование) |
Экспресс-конвейер |
Подземный экспресс-конвейер |
Экспресс-разделитель |
40 | Логистика 3 (исследование) |
(1) См. Физика конвейеров подробнее
(2) Только для подземного конвейера и разделителя. Первый конвейер доступен вначале игры без исследования.
Совмещение комбинаторов в разных условиях
Пример №1.
С помощью только лишь логической сети, мы реализуем графическое оформление показателя количества медных пластик на на нашем конвейере. Чтобы каждый раз не открывать сундук и не смотреть сколько же осталось ? Можно соединить с помощью сигнальных проводов сундуки с фонарями. На каждом фонаре мы выставим определенный порог значения, который при понижении порога фонарь будет тухнуть. Имеется 6 сундуков = 28 000 медных пластин при максимальном заполнении. 6 фонарей разобьем на 6 порогов. (рис.4). В игре большие значение округливаются.
- Первый фонарь горит при пороге выше 4800
- Второй фонарь -//- 4800 *2
- Третий фонарь -//- 4800 *3
- Четвертый фонарь -//- 4800 *4
- Пятый фонарь -//- 4800 *5
- Шестой фонарь -//- 4800 *6
Рисунок — 4
Пример №2
Стоит задача — последовательно выгружать на конвейер сначала одни ресурсы, затем другие и тд. не перемешивая их. Для этого нужно 2 умных манипулятора, 1 настраиваемый сундук, сравнивающий комбинатор, фонарь для наглядности и сигнальные провода (рис.5).
Пояснения:
- Настраиваемый сундук посылает сигнал в сравнивающий комбинатор с маркером «медная пластина» и с количеством пластин в сундуке.
- Комбинатор имеет условие — выдам сигнал «A», когда медных пластин будет равно нулю
- Когда действительно медных пластин в сундуке становится ноль, комбинатор посылает выходной сигнал «A» на другой манипулятор, у которого стоит условие: работать при входном сигнале «A» 1шт и на фонарь (для наглядности).
Рисунок — 5
Нашли нерабочую ссылку на скачивание ? — Сообщите нам и мы ее исправим
SteamСкачать
⊗ Поиск модов по меткам:
0.16.x0.170.181.0Вспомогательные объектыЗащитные сооруженияИнформационныеКонвейерыСборкиТактика игрыТранспортУлучшение объектов
⊗ Последние изменения
✎Теперь вы можете качать моды напрямую со mods.factorio.com (для пиратов)
Enemy/evolution scripts
Ranges from 0 (new game) to 1.
c game.forces"enemy"evolution_factor=X
Disable time-based evolution & increases pollution-based evolution
c game.map_settings.enemy_evolution.time_factor= c game.map_settings.enemy_evolution.pollution_factor=game.map_settings.enemy_evolution.pollution_factor*2
The «2» at the end of the last command will double the default pollution factor. You can substitute another number to increase (or decrease) the pollution factor further.
Note that this will kill only mobile units, spawners will not be killed.
c game.forces"enemy"kill_all_units()
Kill all enemies
This will kill all biters, bases and worms. Anything that is an enemy will be completely destroyed. This only affects enemies in the generated world, so any unexplored parts of the map which still need to be generated will still have enemies. You can if desired.
c local surface=game.player.surface for key, entity in pairs(surface.find_entities_filtered({force="enemy"})) do entity.destroy() end
Kill all nearby enemies
This will kill all biters, bases and worms in a configurable radius. The default, 250 tiles, is about two zoomed-out screen widths on full HD. After destruction, it shows how many objects were destroyed.
c local surface=game.player.surface local pp = game.player.position local cnt = for key, entity in pairs(surface.find_entities_filtered({force="enemy", radius=250, position=pp })) do cnt = cnt+1 entity.destroy() end game.player.print(cnt)
Enable/Disable peaceful mode
Enabling peaceful mode prevents biter attacks until provoked. Substitute true for false to disable. Already existing biters are not affected by this command so attacks could continue for a while after activating peaceful mode.
c game.player.surface.peaceful_mode = true
Enable/Disable biter expansion
Biter expansion allows biters to create new nests, it is enabled by default. Substitute true for false to disable.
c game.map_settings.enemy_expansion.enabled = true
Prevent biters being on newly generated chunks
On newly generated chunks no biters will be present, however all current biters will remain unaffected. Equivalent of setting the Enemy Base Size to None under the Terrain settings during map generation but achieved mid game by .
c local surface = game.player.surface local mgs = surface.map_gen_settings mgs.autoplace_controls"enemy-base"size = "none" surface.map_gen_settings = mgs
Базовый таймер
Для конструирования базового таймера необходимо соединить вход и выход комбинатора, что приводит к увеличению значения на каждом такте. Использовать можно как арифметический, так и сравнивающий комбинаторы.
Арифметический комбинатор просто заводится сам на себя, однако потребуется дополнительная схема для сброса таймера.
Для самосбрасывающегося таймера нужен всего лишь один сравнивающий комбинатор с соединенными входом и выходом и условием «меньше чем» (сигнал со входа передается на выход). Поставив на вход постоянный комбинатор, каждый такт таймер будет инкрементироваться на значение указанное в постоянном комбинаторе до тех пор, пока не достигнет значения в условии, после чего на выходе образуется 0 и цикл начнется заново.
Таймер всегда начинает свою работу не с нуля, а с предустановленного в постоянном комбинаторе числа. В арифметическом комбинаторе стартовое значение можно изменять, однако нужно помнить, что его выходы обрабатываются на такт позже.
Базовый таймер. Каждые 30 тиков формируется единичный импульс.
Одноцикловый таймер. Работает до тех пор, пока T=Z+1. Сброс происходит по условию R>0.
Переработка нефти
Переработка дизельного топлива
Выравнивать объемы производства дизельного топлива и попутного газа.
- Эта схема позволяет выравнивать объемы производства дизельного топлива и попутного газа, перерабатывая дизельное топливо в попутный газ.
- Помпа подключается к резервуару красным проводом.
- Помпа включается по условию: Дизельное топливо > 20000.
Переработка мазута
Сбалансированная переработка мазута в смазочную жидкость.
- Эта схема расширение предыдущей, благодаря которой осуществляется переработка мазута в смазочную жидкость.
- Помпа включается по условию: Мазут > 20000.