space engineers как установить скрипты на пиратке
Space engineers как установить скрипты на пиратке
Ну вот и обещанный гайд по программированию или скриптингу в Space Engineers. Это первая часть гайда и в ней мы рассмотрим объвление переменных и типы переменных.
И так, для начала мы установим Programmable block на нашу станцию/корабль.Открываем панель управления блока и жмякаем на кнопку «Edit». Мы сразу же видим:
Данный код создаёт метод Main в нашей внутриигровой «программе» в которой и будут происходить наши действия.Без него код не запуститься.
Писать код мы будем между строк, для этого кликаем ЛКМ после скобочки < и жмём Enter.
Объявим переменную.Что-бы объявить переменную в C# нужно перед названием переменной указать её тип, существует много типов переменных, но я сейчас перечислю самые популярные, а это:
Создадим переменную one типа int и зададим ей значение 100, для этого пишем в коде int one = 100
У нас должно получиться так:
Создадим ещё две переменных типа int.
Что мы сделали?Мы создали две переменные «one» и «two», значение one = 100, значение two = 50, создали ещё одну переменную zn, значение которой равняется разности двух переменных.То-есть 100-50, значение переменной zn будет равняться 50.
Так же можно делить: /
Умножать: *
Складывать: +
Всем доброго времени суток. У вас не бомбит по поводу отсутствия обещанных гайдов? А у меня припекло.
//Так что, возьму на себя смелость написать гайд. Тему возьмём обещанную “Ветвление и циклы”. Как и положено зазнайке, я буду слегка выпендриваться большим количеством теории, но всё же
постараюсь сократить её до необходимого минимума.//
Ветвление.
//C# представленный нам для создания скриптов в SE, представлен в виде ФЯП (функционального языка программирования), а он является линейным. Это значит, что программа выполняется последовательно и её можно представить в виде БСА (Базовой структуры алгоритма). Для того чтобы программа имела возможность нескольких решений, и используют ветвление. Что же такое ветвление? Это своеобразный выбор между возможностями решений, в зависимости от условий.
———————————————————————————————-—
В качестве примера мы с вами разберём кодовый замок, сделанный на основе сенсора. Сенсор будет выполнять в данном случае функцию ячейки памяти. (Поясняю, у сенсора 6 параметров которые мы можем изменять и проверять) Всё что нам надо также знать это увеличение сенсора и метод кодирвоания (экспериментальным, увеличение сенсора-2,45 за одно нажатие кнопки. Максимально значение 50, минимальное 1, значит диапазон возможных значений- 20. Следовательно, мы сделаем код из 3 ячеек, с 20-ю значениями в каждой). Одна из особенностей данной системы в том, что для правильной комбинации может быть множество вариантов. Это может быть сумма чисел, их разность и т.д. Мы будем использовать метод сравнение чисел.
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 программируемого блока.
ВАЖНО!:
Это скрипт только для одной системы поршень-шасси. Если хотите больше, советую натыкать программируемых блоков и таймеров для корректной работы.
p.s. в воркшоп выставлю позже, когда будет готов прототип и видеодемонстрация.
Автоматический шлюз.
Звуковая и световая сигнализация, вывод состояния на LCD панель, автоматическое переключение откачки/накачки воздуха, автоматическое открытие/закрытие/блокировка дверей.
http://steamcommunity.com/sharedfiles/filedetails/?id..
Для работы ЛЮБОГО количества шлюзов требуется ОДИН программируемый блок.
Отображение провреждённых/недостоенных блоков.
Само собой автоматическое 🙂
Невероятно полезный скрипт, который позволяет с помощью одного нажатия кнопки выбрать положение ротора или поршня. За подробностями смотрите видео по ссылке.
Переименовываете все орудия одинаково, к примеру «Пушка», без номеров и всего остального.
Запускаете прогблок. Включаете блок с именем «sequencerToggle».
Заряжаете орудия жмете на гашетку. Для автоматизации стрельбы просто соберите заскриптованные орудия в группу, и повесьте на горячую клавишу вкл/выкл стрельбы.
При начале стрельбы бывает стреляет сразу из двух орудий.
Простой скрипт, который на левый дисплей выводит предупреждения о повреждениях, заканчивающемся боезапасе и малом количестве ресурсов. На правый дисплей выводится содержимое всех хранилищ корабля. Центральный дисплей отображает визуальное предупреждение (картинкой).
Имеет возможность небольшой настройки под себя в самом начале скрипта, где необходимо будет прописать свои ЖК панели для работы скрипта. По-умолчанию стоит: ЖК панель слева, ЖК панель справа, ЖК панель центр
Работает на версии 01_171_003 без модов на пиратке.
Побудило написать свой скрипт, так как большинство сложных скриптов у меня не работает. Да и скучно было.
В программируемом блоке появилась возможность сохранять переменные.
Если заметили, по-умолчанию кроме Main() в редакторе появились две функции public Program() и public void Save().
Конструктор Program() автоматически запускается при первом запуске компьютера. Туда можно запихнуть инициализацию всех переменных и первоначальную настройку оборудования, чтобы не тратить на это время при очередном запуске скрипта.
Функция Save() так же автоматически запускается и сохраняет предоставленное строковое значение. Сохранение происходит не каждый запуск скрипта. Заметил, что сохраняется, когда открываю редактор программируемого блока или сохраняю игру, других триггеров для срабатывания этой функции я не обнаружил.
Если снести программируемый блок, построить другой и вставить туда идентичный код, сохранения не восстанавливаются.
Переменная сохраняется после редактирования скрипта, отключения бортового питания и перезапуска игры (пока не нашел случая, в котором переменная бы не загрузилась).
Пример прикреплен ниже.
Описание: Скрипт подсчитывает содержимое инвентарей, перемещает позицию, которая не строится в конец очереди сборщика.
Умеет сортировать содержимое по контейнерам и дозаказывать компоненты в ассемблере на основании установленных лимитов.
Настройка:
в поле CustomData вносятся параметры для инициализации скрипта: (любая из строк может быть пустой и будет пропущена)
При первом запуске скрипта инициализация производится автоматически, далее по команде.
Команды: Скрипт поддерживает команды с параметрами. Команда и параметр разделяются «:»
>:МаскаПоискаКонтейнера:ЧтоВНемЛежит,ЧтоВНемЛежит
устанавливает отбор для сортировки элементов в контейнере. Если перед первым параметром добавить +, будут добавлены доступные элементы иначе заменены
mask:маска поиска блоков
Устанавливает маску которая применяется при поиске обрабатываемых инвентарей, если маска пустая строка обрабатываются все доступные инвентари
reload:bloc,ass
Находит и запоминает все ассемблеры и блоки в которых будет в дальнейшем происходить поиск. Параметрами можно ограничивать что нужно искать. Без параметров ищет все.
Unload:маска
Производит единоразовое перемещение элементов из блоков подходящих под маску в установленные контейнеры. Полезно при разгрузке бурового корабля.
Скрипт находит все блоки ассемблеров и инвентаре, а затем обходит эти списки. Поэтому если необходимо заново найти инвентари или ассемблеры вызовите команду reload. Если необходимо переинициализировать текстовые панели воспользуйтесь командой init. Это поможет при разрушении готовых или достройке новых блоков.
Все настройки скрипт сохраняет и восстанавливает автоматически, при перезагрузке ничего перенастраивать не нужно
Space engineers как установить скрипты на пиратке
Скрипт на LCD отображение Щита, подробное описание на видео:
https://www.youtube.com/watch?v=wcae2yJKjBQ&featu..
Но опишу его же действия на нашем сервере на своем личном примере.
Далее поэтапно:
1-Переименовываем любой щит след образом: Shield: (двоеточие в конце обязательно)
2-Переименовываем нужные нам LCD след образом: Shield LCD
3-В программный блок вставляем скрипт на который мы подписались выше и жмем выполнить.
По умолчанию скрипт выводит на LCD текстовую информацию. Если мы хотим красивые картинки то в строке 30-ой, где написано
Какая-то-фраза-на-ангельском = 2, заменяем цифру 2 на 3 или 4 или 5. Каждая цифра отвечает за разные рисунки размера щита.
Сохраняем, выходим и жмем выполнить!
4-В таймере, первым действием ставим програмный блок, там выбираем выполнить, появляется какая то пуская хрень, жмем выполнить. Вторым действием ставим этот же таймер и выбираем там действие старт или активацию. Таким образом мы зациклим таймер. Выходим и стартуем сам таймер.
По истечению времени он будет запускать в след порядке, сперва запуск скрипта на блоке и сразу рестартить самого себя же.
5-Настраиваем интервал обновления 5-10 секунд.
АДМИНИСТРАЦИЯ ЗАПРЕЩАЕТ УСТАНАВЛИВАТЬ ИНТЕРВАЛ ОБНОВЛЕНИЯ ТАЙМЕРА МЕНЬШЕ 5 СЕКУНД НА ЛЮБОЙ СКРИПТ.
Скрипт на LCD вывод данных карго/заряда джампа/руды и так далее.
Видео: https://www.youtube.com/watch?v=oopzyQ0t6Dk
Самый простой вариант:
Space engineers как установить скрипты на пиратке
Вы здесь
| Игровые Скрипты
Так как пока что нету отдельно форума для скриптов, где бы мы могли делиться наработками и прочим. Создам пока такую тему. Будем тут обмениваться знаниями.
Разработчики ввели «Прогрммируемы Блок» в нем мы можем писать код на С# (Си-шарп).
AlisaraDemon
Скорость физического объекта в SE хранится в свойствах Speed, AngularVelocity и AngularAcceleration объекта Sandbox.Common.Components.MyPhysicsComponentBase. Доступ к нему из объекта есть только через интерфейс IMyEntity недоступный из программируемого блока. Отмечу, что модописцы имеют полный доступ, как к MyPhysicsCompomemtBase, так и к IMyEntity.
Масса хранится так же в MyPhysicsComponentBase в поле Mass. Соответственно она доступна только модописцам.
Из вышесказанного следует, что для нормальной работы скрипта-автопилота требуется заранее выяснить, какое ускорение создают установленные на корабле двигатели. Аналогичная ситуация со скоростью вращения корабля гиростабилизаторами.
Анимация: /workshop/3734
// Make a list for all GGs and fill it.
List blocks = new List ();
GridTerminalSystem.SearchBlocksOfName(gravityGeneratorNames, blocks, filterGGs);
// Check if we got enough blocks to go through
if(blocks.Count Автоматическаяф сцепка ротора: http://forums.keenswh.com/post/automatic-rotor-attach-like-in-the-good-o.
// ================================================================== //
// =====>>>>> Automatic rotor attach script
// This script is intended to restore the good old way of connecting
// rotors by simply moving base and head together, like in the good old days.
// Use this script with two self-trigger-now-repeating timers for best results.
// ============================================================= //
// temporary storage list of all blocks
List blocks = new List ();