Space engineers скрипты для солнечных панелей

Space engineers скрипты для солнечных панелей

Скрипт для посадки на планеты.
Аля «Остановить поршень когда посадочное шасси зацепится за астероид»
================================================================
void Main(string argument)
<
IMyPistonBase LandingPiston = GridTerminalSystem.GetBlockWithName(«LandingPistonName») as IMyPistonBase;
IMyLandingGear LandingGear = GridTerminalSystem.GetBlockWithName(«LandingGearName») as IMyLandingGear;

if(LandingGear.IsLocked)
<
LandingPiston.GetActionWithName(«ResetVelocity»).Apply(LandingPiston);
LandingPiston.GetActionWithName(«IncreaseVelocity»).Apply(LandingPiston);;
>

КАК заставить это работать:

LandingPistonName и LandingGearName это названия в панели управления (в терминале) поршня и шасси соответственно. Желательно использовать англ.язык и названия без пробелов. К примеру: LandPiston_1; Gear2 и т.п. Я не ручаюсь за работу с кирилицей)
Это все, что вам нужно заменить в скрипте.

Далее таймер: выставляем задержку таймера в 1 секунду (на минимум), ставим в Setup Action запуск отчета таймера и Run программируемого блока.

ВАЖНО!:
Это скрипт только для одной системы поршень-шасси. Если хотите больше, советую натыкать программируемых блоков и таймеров для корректной работы.

ОЧЕНЬ ВАЖНО: главное правильно поставить соответствия между программируемым блоком, поршнем и шасси. Ибо может выйти так: «когда шасси1 закреплено остановить поршень2» — сами понимаете такой вариант не катит никаким образом))

p.s. в воркшоп выставлю позже, когда будет готов прототип и видеодемонстрация.

Автоматический шлюз.
Звуковая и световая сигнализация, вывод состояния на LCD панель, автоматическое переключение откачки/накачки воздуха, автоматическое открытие/закрытие/блокировка дверей.
http://steamcommunity.com/sharedfiles/filedetails/?id..

Для работы ЛЮБОГО количества шлюзов требуется ОДИН программируемый блок.

Отображение провреждённых/недостоенных блоков.
Само собой автоматическое 🙂

Закрытие дверей при падении давления (разгерметизации).
Возможна поблочная настройка, тогда двери где давление выровнялось откроются — закрытым останется только сектор с утечкой.

p.s.
Обращайте внимание — если включить в основную группу ВНЕШНИЕ двери то после стабилизации давления они откроются 😀 будьте внимательны.

Невероятно полезный скрипт, который позволяет с помощью одного нажатия кнопки выбрать положение ротора или поршня. За подробностями смотрите видео по ссылке.

Скрипт предназначен для ведения огня очередями, для этого он попеременно отключает заряженные орудия — здорово повышает огневую мощь и удобство стрельбы. Поддерживает автоматизацию огня. Автор не я.

Ставите необходимое количество оружия, прогблок, таймер и еще какой-нибудь блок, у которого есть опция включить-выключить (обычно это лампа).

Переименовываете все орудия одинаково, к примеру «Пушка», без номеров и всего остального.

Загружаете в прогблок скрипт, меняете значение GUN_NAME на «Пушка». Выставляете задержку стрельбы — значение TIME_STEP, чем больше, тем быстрее стреляет, для некоторых орудий максимальная указана в самом скрипте в комментариях, никогда не ставьте отрицательное значение и ноль. Поставите слишком большое значение TIME_STEP — скрипт будет работать быстрее, чем у орудий задержка между выстрелами, и они будут стрелять как попало. Компилируете и сохраняете.

Таймер переименовываете в «sequencerCycler», лампу переименовываете в «sequencerToggle». На таймере выставляете одно действие — запустить программируемый блок, задержку можно не трогать.

Запускаете прогблок. Включаете блок с именем «sequencerToggle».

Заряжаете орудия жмете на гашетку. Для автоматизации стрельбы просто соберите заскриптованные орудия в группу, и повесьте на горячую клавишу вкл/выкл стрельбы.

Если не все орудия заряжены полностью, то стрелять будет как попало.

При начале стрельбы бывает стреляет сразу из двух орудий.

Имена всех задействованных блоков можно менять в самом скрипте, таким образом можно сделать несколько групп орудий. Если «sequencerToggle» выключен, орудия будут стрелять как обычно — залпом.

Простой скрипт, который на левый дисплей выводит предупреждения о повреждениях, заканчивающемся боезапасе и малом количестве ресурсов. На правый дисплей выводится содержимое всех хранилищ корабля. Центральный дисплей отображает визуальное предупреждение (картинкой).
Имеет возможность небольшой настройки под себя в самом начале скрипта, где необходимо будет прописать свои ЖК панели для работы скрипта. По-умолчанию стоит: ЖК панель слева, ЖК панель справа, ЖК панель центр

Работает на версии 01_171_003 без модов на пиратке.

Побудило написать свой скрипт, так как большинство сложных скриптов у меня не работает. Да и скучно было.

В программируемом блоке появилась возможность сохранять переменные.
Если заметили, по-умолчанию кроме Main() в редакторе появились две функции public Program() и public void Save().

Конструктор Program() автоматически запускается при первом запуске компьютера. Туда можно запихнуть инициализацию всех переменных и первоначальную настройку оборудования, чтобы не тратить на это время при очередном запуске скрипта.

Функция Save() так же автоматически запускается и сохраняет предоставленное строковое значение. Сохранение происходит не каждый запуск скрипта. Заметил, что сохраняется, когда открываю редактор программируемого блока или сохраняю игру, других триггеров для срабатывания этой функции я не обнаружил.

Если снести программируемый блок, построить другой и вставить туда идентичный код, сохранения не восстанавливаются.

При желании можно воспользоваться строковым методом Split, чтобы запихнуть больше переменных в строку сохранения.
https://msdn.microsoft.com/ru-ru/library/b873y76a(v=vs.110).aspx — подробнее тут.

Переменная сохраняется после редактирования скрипта, отключения бортового питания и перезапуска игры (пока не нашел случая, в котором переменная бы не загрузилась).

Пример прикреплен ниже.

Описание: Скрипт подсчитывает содержимое инвентарей, перемещает позицию, которая не строится в конец очереди сборщика.
Умеет сортировать содержимое по контейнерам и дозаказывать компоненты в ассемблере на основании установленных лимитов.

Настройка:
в поле CustomData вносятся параметры для инициализации скрипта: (любая из строк может быть пустой и будет пропущена)

первая строка — название сборщика из которого берутся лимиты (останавливаем сборщик заказываем компоненты в том количестве,
в каком они всегда должны быть и прописываем название в эту строку)

вторая строка панель или панели, которые отображают содержимое инвентарей (полное название панели или маска поиска
например: ЖК* — найдет все панели которые начинаются на ЖК
!*широкая — все панели которые не оканчиваются на широкая)

все последующие строки устанавливают настройки контейнеров, в формате МаскаПоискаКонтейнера:ЧтоВНемЛежит,ЧтоВНемЛежит
что лежит можно указывать частично, типы указываются со * сначала,
например: *контейнер:Строительный — будет складывать Строительный компонент в контейнеры, заканчивающиеся на «контейнер»
*готовая продукция*:*компон,*боепри — все компоненты и боеприпасы будут перемещены в контейнеры в названии которых встречается «готовая продукция»

При первом запуске скрипта инициализация производится автоматически, далее по команде.

Команды: Скрипт поддерживает команды с параметрами. Команда и параметр разделяются «:»

Доступные команды и параметры:
init:panel,limit,storage,reload
производит переинициализацию скрипта из CustomData программного блока, параметрами можно ограничивать что инициализировать
panel — заново ищет текстовые панелей
limit — ищет сборщик из которого берутся лимиты
storage — перенастройка контейнеров
reload — поиск и запись доступных ассемблеров и блоков в которых будет в дальнейшем происходит поиск

? — Выводит информацию о текущих ассемблерах, лимитам и тестовым панелям, с любым параметром также выведет все обслуживаемые блоки с инвентарями

limit:название ассемблера — добавляет к существующим, лимиты из ассемблера. без параметров — очищает все установленные ранее лимиты

>:МаскаПоискаКонтейнера:ЧтоВНемЛежит,ЧтоВНемЛежит
устанавливает отбор для сортировки элементов в контейнере. Если перед первым параметром добавить +, будут добавлены доступные элементы иначе заменены

mask:маска поиска блоков
Устанавливает маску которая применяется при поиске обрабатываемых инвентарей, если маска пустая строка обрабатываются все доступные инвентари

reload:bloc,ass
Находит и запоминает все ассемблеры и блоки в которых будет в дальнейшем происходить поиск. Параметрами можно ограничивать что нужно искать. Без параметров ищет все.
Unload:маска
Производит единоразовое перемещение элементов из блоков подходящих под маску в установленные контейнеры. Полезно при разгрузке бурового корабля.

Скрипт находит все блоки ассемблеров и инвентаре, а затем обходит эти списки. Поэтому если необходимо заново найти инвентари или ассемблеры вызовите команду reload. Если необходимо переинициализировать текстовые панели воспользуйтесь командой init. Это поможет при разрушении готовых или достройке новых блоков.

Все настройки скрипт сохраняет и восстанавливает автоматически, при перезагрузке ничего перенастраивать не нужно

Источник

Подпишитесь, чтобы загрузить
Isy’s Solar Alignment Script

This is a solar panel alignment script that uses rotors or gyroscopes to align solar panels for maximum efficiency. The key feature of this script is, that it can virtually align as many towers as you like with just one programmable block and is able to figure out by itself, if you use a T-shaped solar array, only one axis or a mix of the twos. Also the current efficiency and output is shown on LCD panels or optionally on corner LCD panels. The script is also smart enough to detect the night and stop the rotors until the sun comes up again. Optionally you can turn on and off your base lights based on the daytime via the built in location time calculation.

Version: 4.3.4
Date: 2021-03-11

  • script dynamically adjusts solar panels on rotors or with gyroscopes for best efficiency
  • supports multiple towers at once
  • supports T-shaped and U-shaped solar arrays (script figures this out by itself)
  • supports modded panels (couldn’t test all but should work with the most)
  • supports pure oxygen farm towers
  • supports weather condition dependent behavior
  • supports groups for easier setup
  • night mode (all rotors halt until sunlight is detected again)
  • rotate the panels back to the sunrise position during the night
  • output current operations and statistics to a LCD panel
  • manage reactors as an emergency power source
  • manage the lights (and spotlights) of your base with a location based time calculation
  • start an external timer block at certain events like sunrise or a time

Click the image or the link below to view the full guide:

http://steamcommunity.com/sharedfiles/filedetails/?id=1253023726

  • in order for the script to work, every horizontal rotor needs at least one solar panel or one oxygen farm!
  • be sure to always check your ownership! all used blocks should be owned by you (Owner: Me)!
  • be aware that updating the script will delete your configuration so save it before updating
  • although many towers and panels are cool, they are bad for performance, so consider using one of my Solar Power Tweak mods found here: http://steamcommunity.com/sharedfiles/filedetails/?id=1110355761

  • ‘Grids with unsafe values’ warning: it is safe to ignore it. If you don’t want the red warning box to show up, press SHIFT + F1 and deactivate ‘Show warnings in game’
  • time calculation doesn’t work in space because there is no actual sunrise or sunset
  • If the script stops working with any error, try disabling mods that change the programmable block like «Control Module — basically key binding for ships»


You need additional help, want to make suggestions or just want be up to date about my scripts? Join my discord server:
https://discord.gg/gY9aUUy


If you like my work, you can buy me a beer via PayPal:
http://paypal.me/derisy/1

Источник

Читайте также:  Фонарик аккумуляторный с солнечной панелью
Оцените статью