Vizzy - справочник (копия)
Данная статья содержит в себе большую часть информации о составляющих vizzy (далее - виззи) и была создана с целью облегчения освоения виззи игроками, никогда не имевшими с ним дело. Эта статья задумывалась как справочник, к которому можно обратиться в тот момент, когда непонятна работа какой-то инструкции или цикла, оператора или еще какой-нибудь дребедени…
Однако сразу хочу пояснить кое-что:
1. В статье нету подробной информации об операторе funk, вкладке «multi-functional display» и форматировании текста через оператор format
2. Всякие термины типа «операторы», «инструкции», «триггеры» были использованы для того, чтобы облегчить восприятие статьи и упростить объяснение некоторых составляющих виззи
3. В начале первого раздела прикреплена видеовставка по тому, где найти у виззи, больше видеовставок не будет, потому что у меня на это нет времени
Содержание:
- Где виззи?
- Инструкции, операторы, триггеры и форматы данных
- Инструкции
- Форматы данных
- Операторы
- Триггеры
- О вкладках и их содержимом
- Вкладка «Program flow»
- Вкладка «Operators»
- Вкладка «Craft instructions»
- Вкладка «Craft information»
- Вкладка «Variables», переменные
- Вкладка «Lists», списки
- Вкладка «Custom operators», кастомные операторы
- Вкладка «Custom instructions», кастомные инструкции
Примечание: возможность быстрого перехода к конкретному разделу по ссылке будет добавлена в ближайшее время
Где виззи?
Для начала вам нужно перейти в дизайнер крафтов, через который можно перейти к виззи. Вы можете записать виззи программу в любую деталь-контроллер вашего крафта, например, в любую капсулу, в кокпит, в сиденье, в «Чип контроллер» («Command chip») или «Командный диск» («Command disk»). Для этого нужно выбрать деталь, нужную вам, и нажать кнопку «Х» (в случае если у детали уже есть виззи программа) или в панели настроек детали в разделе «Flight program» нажать большую голубую кнопку «Edit flight program»…
Если же нажать кнопку «Х», не выделив деталь, то по умолчанию будет открыт виззи для главной контролирующей детали…
Также виззи программу можно записать в любую другую деталь, используя расширенные настройки («Advanced properties»). Для этого нужно открыть панель настроек детали и перейти в панель расширенных настроек, где необходимо нажать большую голубую кнопку «Add flight program»…
После этого будет открыт виззи…
Здесь находятся кнопка меню (1) и вкладки с инструкциями, операторами и прочей дребеденью (2). Также по дефолту размещен триггер «On start» (3)
Нажав на кнопку меню можно увидеть следующую панель, где:
— Имя панели — Скрыть панель
— Сохранить программу в деталь
— Отменить все изменения и выйти
— Создать новую программу
— Сохранить программу
— Загрузить программу
— Импортировать другую программу к текущей программе
— Отмена / возврат действия
— Больше информации о виззи (ссылка на пост на оф. сайте игры)
— Скрыть / отобразить сетку
При нажатии кнопки «Load program» или «Import program» будет открыта панель, а в левой ее части список всех сохраненных виззи программ.
В списке отображаются название программы (1) и ее вес (2), а также при выборе какой-либо программы в правой части панели будут отображаться название (1), вес (2) и дата создания программы (3), а также кнопка «-» (4) для удаления программы. Помимо этого присутствует и кнопка «Load» или «Import» для удаления/импортирования программы (5) и кнопка для закрытия панели (6)…
При загрузке программы, текущая программа заменяется на загружаемую.
А вот при импорте программы происходит следующее: к уже записанной программе добавляется импортируемая программа, пример приведен ниже…
Инструкции, выражения, триггеры и форматы данных
Инструкции
Инструкции выполняются программой и заставляют аппарат выполнять какие-либо действия с опорой на какие-то данные, например, есть инструкция «wait /… / seconds», при выполнении которой алгоритм, следующий за этой инструкцией, выполняется аппаратом через указанное число секунд, проще говоря аппарат будет ждать указанное время (в секундах).
Операторы
Операторы в виззи это любые штуки, возвращающие информацию или даже обрабатывающие ее. Эту информацию можно использовать, вставив оператор в другой оператор, инструкцию или еще куда… существуют математические операторы, типа сложения, вычитания, умножения, деления, извлечения корня, возведения в степень, а также различных логических операторов типа «или», «не», «и», «больше или равно», еще можно сделать кастомные операторы…
ОЧЕНЬ ВАЖНО! При выведении значения физических величин оператором, это значение будет в СИ (то есть системе интернациональной, например, расстояние или длина выводится в метрах, энергия - в джоулях, скорость - в метрах в секунду, а значение физической величины будет выводится числом в числовом формате, например, оператор altitude AGL будет выводить какое-то число, это число будет обозначать высоту над поверхностью планеты в метрах)
Операторы могут выводить различные форматы данных: число, строку, истину/ложь и вектор. Стоит отметить, что операторы возвращающие истину/ложь в отличие от других операторов зачастую имеют вид прямоугольника с обрезанными, а не скругленными уголками… На скрине ниже слева (1) можно увидеть операторы, использующие/выводящие не булевый формат данных, а справа (2) все операторы, использующие/выводящие данные в булевом формате…
Форматы данных
Стоит упомянуть, что данные, используемые инструкциями, операторами и остальными штуками, имеют различные форматы: строковой (буковки), численный (циферки), булевый (истина/ложь) и векторный (компоненты x, y, и z через запятую).
Также, если на ввод в инструкцию подается не поддерживаемый формат данных, то при выполнении этой инструкции игра будет пытаться перевести эти данные в требуемый формат, если же это не удастся, то инструкции на ввод будет подано дефолтное значение в требуемом формате. Например, если инструкция требует численный формат, а вводятся строковые данные, то входные данные будут заменены на ноль, а если наоборот, вводятся численные данные, а требуются строковые, то численные данные будут вводиться как строка, последовательность символов (иначе говоря, к примеру, в первом случае подается «лвоатплоыатплы» и заменяется на 0, а во втором случае подается 1238998 и заменяется на «1238998», «» - это типа обозначение строкового формата)…
Триггеры
Триггеры (удобней всего это называть именно так) - это самое начало любого алгоритма, это оранжевый прямоугольник, который стоит в самом начале алгоритма в программе и при каком-то событии (например при старте крафта или при его стыковке с другим крафтом) запускает идущий за ним алгоритм, а если триггер может еще выводить информацию, то ее можно использовать в идущем за ним алгоритмом…
На примере слева можно увидеть два алгоритма. Тот, что выше, начинается с триггера «on <craftA> and <craftB> docked», который запускает алгоритм после стыковки двух крафтов, <craftA> - выводит имя крафта, пилотируемого игроком, <craftB> - выводит имя другого пристыковавшегося крафта.
Например, если вы, пилотируя крафт «Союз», пристыкуетесь к крафту «Аполлон», то эта программа выведет «Союз» на экран, а затем через 5 секунд выведет на экран «Аполлон». Также в этой программе присутствует алгоритм, начинающийся с триггера «On start» и выводящий «Shto ti dumal sdes uvidet?»… Чуть более подробно о каждом триггере будет рассказано позже…
О вкладках и их содержимом
Раздел «Program flow»
Во вкладке «Program flow» можно найти циклы, логические блоки, инструкцию «break», инструкции для вывода информации в «полетный журнал» («flight log»), локальный журнал, на экран, и комментарий для маркировки каких-то частей программы внутри редактора программ.
Эта инструкция задерживает выполнение следующего за ней алгоритма на указанное число секунд.
Эта инструкция останавливает выполнение алгоритма до тех пор, пока выражение в нем не станет равно истине.
Это цикл «repeat», который выполняет алгоритм, записанный внутри, указанное число раз. Только после этого алгоритм, идущий уже после цикла и вне его, выполняется.
Это цикл «while», который выполняет алгоритм, записанный внутри, пока выражение в нем указанное является истинным. Когда оно становится ложным цикл прерывается.
Это цикл «for», в отличие от других циклов, он имеет свою собственную переменную (параметр), для которой записываются «границы» и шаг. При выполнении цикла переменная, относящаяся к нему, сначала принимает первое значение, а затем это же значение плюс значение шага, и так далее до второй границы включительно.
В данном случае при выполнении цикла переменная i будет принимать значения 1, 2, 3, 4, 5, 6, 7, 8, 9 и 10, затем цикл завершится. Также стоит отметить, что переменная i цикла «for» может быть использована только в этом цикле, например, алгоритм внутри цикла сможет использовать эту переменную, а вне этого цикла не сможет. Также эту переменную можно переименовать.
Это условие «if». Если выражение, указанное внутри этого условия, является истинным, то выполняется алгоритм, записанный внутри.
Это условие «elif», это то же самое, что и условие «if», но всегда ставится сразу после него или «elif». Если предыдущие условие ложно, а это условие истинно, то выполняется алгоритм внутри.
Если предыдущее условие ложно, то выполняется алгоритм, записанный внутри.
Эта инструкция выводит на экран значение, указанное внутри.
Эта инструкция записывает указанное в ней значение в локальный журнал детали, куда записана программа с действующим алгоритмом, включающим в себя эту инструкцию.
детали необходимо найти раздел «Flight program», в самом низу которого будет кнопка «View log», нажав которую вы сможете открыть локальный журнал детали
Эта инструкция записывает указанное в ней первое значение в полетный журнал, которое заменяет записанное этой же инструкцией в журнал значение при повторном выполнении этой же инструкции в случае если второе значение истинно, а если ложно, то не заменяет.
Эта «инструкция» нужна для того, чтобы можно было прервать цикл. Если она стоит внутри цикла и она выполняется, то цикл, в котором она стоит, прерывается досрочно.
Это инструкция, но она не выполняется, ничего не происходит. Это просто место для текста, для пометок внутри программы, короче комментарий к проге.
Раздел «Operators»
Этот оператор складывает два указанных в нем числа.
Этот оператор вычитает из числа, указанного в нем слева, число, указанное в нем справа.
Этот оператор делит число, указанного в нем слева, на число, указанное в нем справа.
Этот оператор перемножает два указанных в нем числа.
Этот оператор возводит указанное в нем слева число в степень, обозначенную числом, указанным в правой части.
Этот оператор возвращает число (кол-во процентов), обозначающее какую часть правого числа составляет левое число. По сути это левое число, деленное на правое, а потом умноженное на 100.
Этот оператор возвращает любое случайное натуральное число между числом слева и числом справа.
Этот оператор возвращает минимальное из двух указанных чисел.
Этот оператор возвращает максимальное из двух указанных чисел.
Это логическое «и». Этот оператор возвращает «истину», если оба указанных в нем значения это «истина».
Это логическое «или». Этот оператор возвращает «истину», если хотя бы одно указанное в нем значение это «истина».
Это логическое «не». Этот оператор возвращает «истину», если указанное в нем значение это «ложь» и наоборот.
Этот оператор возвращает «истину», если значения, указанные в нем, равны.
Этот оператор возвращает истину, если число справа строго больше числа слева.
Этот оператор возвращает истину, если число справа больше или равно числу слева.
Этот оператор возвращает истину, если число слева строго больше числа справа.
Этот оператор возвращает истину, если число слева больше или равно числу справа.
Этот оператор возвращает абсолютное значение указанного числа (это то же число, но с плюсом, по факту модуль этого числа).
Этот оператор возвращает наибольшее целое число, равное указанному или меньшее. По факту возвращает целую часть числа. Все равно, что округляет число до целого в меньшую сторону.
Этот оператор возвращает наименьшее целое число, равное указанному или большее. Все равно, что округляет указанное число до целого в большую сторону.
Просто округляет число до целого.
Извлекает квадратный корень из числа.
Вычисляет синус указанного числа (число - угол в градусах).
Вычисляет косинус указанного числа (число - угол в градусах).
Вычисляет тангенс указанного числа (число - угол в градусах).
Вычисляет угол (в радианах) на основании указанного значения синуса. Короче это арксинус.
Вычисляет угол (в радианах) на основании указанного значения косинуса. Это арккосинус.
Вычисляет угол (в радианах) на основании указанного значения тангенса. Это арктангенс.
Вычисляет натуральный логарифм указанного числа.
Вычисляет логарифм указанного числа по основанию десяти.
Переводит указанный угол в градусах в угол в радианах.
Переводит указанный угол в радианах в угол в градусах.
В прямоугольной системе координат с осями х и у высчитывает угол в радианах между осью х и вектором, начало которого в точке начала координат, а конец в указанных координатах.
Слева указывается координата по оси у, а справа по оси х.
Возвращает одно из двух указанных значений (указанное справа или посередине), в зависимости от значения выражения, указанного слева. Если оно «истинно», то возвращает значение посередине, иначе возвращает значение справа.
Соединяет два текста в один. В данном случае соединяет «alpha» и «bravo» в «alphabravo».
Возвращает длину текста. В данном случае возвращает 5.
Возвращает символ, имеющий указанный номер, из указанного текста. В данном случае возвращает «a», первый символ в тексте.
Возвращает отрывок( определяемый двумя значениями слева) из указанного текста. В данном случае возвращает «lph». То есть со второго до четвертого символа включительно.
Возвращает «истину», если указанный текст содержит в себе указанный символ или набор символов, иначе возвращает «ложь».
Продвинутое форматирование значения. Использует System.String, встроенный в C#. Больше информации можно найти в документации Microsoft.
Форматирует указанную физическую величину в единицах СИ в легко читаемые данные. Например, 1284 метра переводит в 1.3 километра (1284 →1.3 km).
Возвращает вектор с указанными «x», «y», и «z» компонентами.
Возвращает длину указанного вектора.
Возвращает компонент «х» указанного вектора.
Возвращает компонент «у» указанного вектора.
Возвращает компонент «z» указанного вектора.
Возвращает указанный вектор нормализованным (сохраняет направление указанного вектора, но задает ему длину 1).
Вычисляет угол между двумя векторами.
Возвращает проекцию первого вектора на второй вектор.
Возвращает вектор с минимальными компонентами, взятыми у указанных векторов.
Например, вводятся векторы {1,5,-7} и {0,-9,20}, а выводится {0,-9,-7}.
Возвращает вектор с максимальными компонентами, взятыми у указанных векторов.
Например, вводятся векторы {1,5,-7} и {0,-9,20}, а выводится {1,5,20}.
Возвращает результат скалярного произведения двух векторов. Например, есть векторы {25,-4,9} и {0,2,1}, их скалярное произведение будет равно 1 (25*0+(-4)*2+9*1=0-8+9=1).
Возвращает вектор, перпендикулярный двум указанным векторам (векторное произведение).
Возвращает геометрическое произведение векторов.
Возвращает вектор, состоящий из компонентов, являющихся произведением двух соответствующих компонентов указанных векторов. Например, есть векторы
{1,-4,17} и {0,23,1}, результатом будет вектор {0,-92,17}.
Возвращает «расстояние??» между векторами (по факту это длина вектора, являющегося разностью,
двух указанных векторов, хотя хз, не пользовался ни разу).
Это «истина».
Это «ложь».
Раздел «Craft instructions»
В это вкладке собраны инструкции, позволяющие задавать значения слайдеров тяги, крена, тангажа, рыскания, четырех доп слайдеров, направление, параметры камеры игрока и т.д. и т.п..
Примечание: слайдеры аппарата могут принимать значения от -1, до 1 включительно, слайдеры тяги и тормоза - исключения (от 0 до 1)…
Эта инструкция задает значение слайдера:
— тяги
— крена
— тангажа
— рыскания
— тормоза
— доп. слайдера 1
— доп. слайдера 2
— доп. слайдера 3
— доп. слайдера 4
— слайдер смещения вперед/назад
(1 - смещение вперед, -1 -смещение назад, примерно так же и с другими слайдерами смещения)
— слайдер смещения вправо/влево
— слайдер смещения вверх/вниз
Примечание: слайдеры смещения можно использовать для того, чтобы дать импульс с помощью РСУ вверх или вниз, влево или вправо, вперед или назад в системе координат, связанной с аппаратом…
— эта инструкция включает режим Translation,
этот режим меняет управление слайдерами крена, тангажа, рыскания и тремя слайдерами смещения… Обычно с помощью клавиш или джойстика происходит контроль слайдеров крена, тангажа и рыскания, но если включен режим Translation, то клавишами или джойстиком происходит контроль слайдеров смещения.
Инструкция «set Translation Mode» включает режим Translation если в этой инструкции указано значение не равное нулю, иначе режим Translation будет отключен инструкцией.
— эта инструкция выделяет целью объект с указанным именем (это может быть аппарат, небесное тело или структура).
— включает или выключает АГ с указанным номером (если справа истина, то включает, если ложь, то выключает)
— отключает удержание «носа» аппарата в направлении, указанном на нависфере
— задает аппарату направление по ходу движения
— задает аппарату направление против хода движения
— задает аппарату направление на указанную цель
— задает аппарату направление, необходимое для выполнения заданного маневра
— задает аппарату текущее направление, типа фиксирует его направление
— задает аппарату направление на указанный вектор в системе координат планеты, в SOI которой он находится
— приостанавливает игровое время
— замедляет игровое время
— устанавливает нормальное течение игрового времени
— ускорение игрового времени
Инструкции, показанные ниже, устанавливают сильно ускоренное течение игрового времени (warp от 1 до 10).
— эти инструкции задают направление камеры по указанномым углам (сильно зависят от режима камеры, ведь в них неодинаковые системы координат)
— задает наклон камеры типа 🔄
— задает отдаление камеры (в метрах)
— задает режим камеры с указанным названием (если такой существует)
— задает режим камеры по индексу (если такой существует)
— задает смещение камеры (координаты в системе, связанной с аппаратом)
— активирует или деактивирует деталь с указанным id (если справа истина, то включает, если ложь, то выключает)
— фокусирует или расфокусирует камеру на детали с указанным id (если справа истина, то фокусирует, если ложь, то расфокусирует)
— взрывает деталь с указанным id, сила взрыва обозначается справа значением от 0 до 1 (без взрыва → максимально мощный взрыв)
— задает детали с указанным id «роль» в перекачке топлива в зависимости значения справа (< 0 - выкачивает, > 0 - закачивает, 0 - деталь не участвует в перекачке)
— задает детали с указанным id название, указанное справа
— переключает игрока на аппарат с указанным id
— издает звук с указанной частотой, громкостью (от 0 до 1) и длительностью
— выдает частоту звучания указанной ноты на указанной октаве
Раздел «Craft information»
В этом разделе собраны всевозможные операторы, выводящие данные об аппарате и его деталях, о его движении, об окружении и т.д. и т.п.
— высота над поверхностью
— высота над уровнем моря
— почти то же самое, что и высота над уровнем моря, но применяется для небесных тел, не имеющих морей
— высота апоцентра аппарата
— высота перицентра аппарата
— время, через которое аппарат достигнет апоцентра
— время, через которое аппарат достигнет перицентра
— эксцентриситет
— наклонение орбиты (в радианах)
— период орбиты (время одного витка по текущей орбите)
— плотность окружающего воздуха (в кг/м³)
— давление окружающего воздуха (в Паскалях)
— скорость звука (в м/с)
— температура (в Кельвинах)
— текущая суммарная тяга двигателей (в Ньютонах)
— текущая масса аппарата (в килограммах)
— «влажная» масса аппарата (масса полностью заправленного аппарата, выводится в килограммах)
— масса топлива в аппарате (в килограммах)
— максимальная достижимая на данный момент суммарная тяга двигателей (в Ньютонах)
— текущее значение ТВР (тяговооруженность)
— текущий удельный импульс
аппарата
— характеристическая скорость, достижимая с текущей ступенью
— оставшееся время работы двигателей на текущей ступени
— процент всей энергии, оставшейся в батареях аппарата
— процент топлива оставшегося в баках, связанных с активными двигателями
— процент всего монотоплива, оставшегося в аппарате
— процент всего топлива, оставшегося в аппарате
— выводит вектор позиции (радиус-вектор, или грубо говоря координаты) аппарата в системе координат планеты, в SOI которой он находится
— выводит вектор позиции цели в системе координат планеты, в SOI которой находится цель
— выводит угол между направлением «носа» аппарата и горизонтом (от 0 до 90 градусов если над горизонтом, от 0 до -90 если «нос» направлен под горизонт)
— выводит курс корабля (от 0 до 360 градусов, 0/360 - север, 90 - восток, 180 - юг, 270 - запад)
— угол крена аппарата
— угол атаки аппарата
— угол бокового скольжения, типа заноса
— вектор, направленный на север
— вектор, направленный на восток
— вектор оси крена аппарата (по факту этот вектор показывает куда направлен "нос" аппарата)
— вектор оси тангажа аппарата
— вектор оси рыскания аппарата
— вектор скорости аппарата относительно поверхности планеты (относительно точки, находящейся на поверхности под аппаратом)
— вектор скорости аппарата относительно центра планеты (точки начала координат в системе координат планеты)
— вектор скорости цели относительно центра планеты (точки начала координат в системе координат планеты)
— вектор ускорения свободного падения в точке, где находится аппарат
— вектор ускорения аппарата под действием силы трения об окружающий его воздух
— вектор ускорения аппарата (вектор равнодействующей всех сил, действующих на аппарат, деленный на массу аппарата)
— угловая скорость аппарата в рад/с (компонент х - по тангажу, у - по рысканию, z - по крену)
— латеральная скорость аппарата относительно поверхности планеты (проще говоря - горизонтальная)
— вертикальная скорость аппарата (показывает скорость с которой аппарат приближается к центру планеты
— скорость аппарата в махах (относительно поверхности)
— текущее значение слайдера тяги
— текущее значение слайдера крена
— текущее значение слайдера тангажа
— текущее значение слайдера рыскания
— текущее значение слайдера тормоза
— текущее значение доп. слайдера 1
— текущее значение доп. слайдера 2
— текущее значение доп. слайдера 3
— текущее значение доп. слайдера 4
— текущее значение слайдера смещения вперед/назад
— текущее значение слайдера смещения вправо/влево
— текущее значение слайдера смещения вверх/вниз
— возвращает информацию о том, включен ли режим Translation (возвращает 0, если этот режим отключен, возвращает 1, если он включен)
— выводит номер текущей ступени активной детали-контролера
— выводит кол-во ступеней ступеней активной детали-контролера
— если аппарат находится на поверхности планеты, то этот оператор возвращает «истину», иначе возвращает «ложь»
— кол-во энергии излучения от Солнца, которое аппарат поглощает (измеряется в Джоулях в секунду)
— вектор позиции камеры игрока
— вектор направления камеры игрока
— вектор, обозначающий «верх» камеры игрока (попробуйте к триггеру on start присоединить цикл while true, а в нем инструкцию lock heading on vector с указанным выше вектором внутри и запустить ракету с такой программой, и обратите внимание на нависферу)
— возвращает данные о составляющих ПИД-контролера для тангажа (и рыскание, если деталь-контролер ракетной конфигурации)
— возвращает данные о составляющих ПИД-контролера для крена (если деталь-контролер самолетной конфигурации)
— время в секундах , прошедшее с момента последнего просчета (кадра)
— время в секундах, прошедшее с момента запуска аппарата (с момента прогрузки)
— время в секундах, прошедшее с момента создания текущей песочницы/карьеры
— текущий множитель течения игрового времени
— время в секундах , прошедшее с момента первого запуска игры
— название аппарата, на котором выполняется программа
— название планеты, в SOI которой находится этот аппарат
— имя/название объекта, выделенного как цель
— название планеты, в SOI которой находится цель
— возвращает «истину», если АГ с указанным номером включена, иначе возвращает «ложь»
— преобразует вектор позиции из системы координат планеты в «вектор», компоненты которого (широта, долгота и высота над поверхностью) обозначают позицию в системе координат, связанной с поверхностью планеты
— то же самое, но наоборот, переводит «вектор» позиции в системе координат поверхности планеты в вектор позиции
— все то же самое, но с высотой над уровнем моря, вместо высоты над поверхностью
— выводит высоту ландшафта над уровнем моря в указанных координатах (в формате «широта», «долгота», 0, третий компонент не используется)
— то же самое, но вместо высоты выводит цвет ландшафта в указанных координатах
— кастует луч из точки с указанными координатами в направлении, обозначенным вектором справа, и выводит координаты точки, оказавшейся первой на пути этого луча
— масса указанное планеты
— радиус указанной планеты
— толщина атмосферы указанного небесного тела
— радиус сферы гравитационного притяжения (SOI) указанного небесного тела
— вектор позиции указанного небесного тела в системе координат звезды
— список небесных тел, вращающихся вокруг указанного небесного тела
— список названий аппаратов, находящихся в SOI указанного небесного тела
— список id аппаратов, находящихся в SOI указанного небесного тела
— название небесного тела, вокруг которого вращается указанное небесное тело
— список названий структур, находящихся на указанном небесном теле
— время, за которое указанное небесное тело совершает один оборот вокруг своей оси (продолжительность дня в секундах)
— время, за которое указанное небесное тело совершает оборот вокруг другого небесного тела, спутником которого оно является (в секундах)
— вектор скорости указанного небесного тела в системе координат небесного тела, спутником которого оно является
— вектор позиции апоцентра указанного небесного тела в системе координат небесного тела, спутником которого оно является
— вектор позиции перицентра указанного небесного тела в системе координат небесного тела, спутником которого оно является
— период орбиты указанного небесного тела
— время, через которое указанное небесное тело окажется в апоцентре своей орбиты
— время, через которое указанное небесное тело окажется в перицентре своей орбиты
— наклонение орбиты указанного небесного тела (в радианах)
— эксцентриситет орбиты указанного небесного тела
— «средняя аномалия» орбиты указанного небесного тела
— «среднее движение» указанного небесного тела по орбите
— аргумент перицентра орбиты указанного небесного тела
— долгота восходящего узла орбиты указанного тела
— «настоящая аномалия» указанного небесного тела, движущего по своей орбите
— длина большой полуоси орбиты указанного небесного тела
— длина малой полуоси орбиты указанного небесного тела
— имя детали с указанным id
— текущая масса детали с указанным id
— сухая масса (без учета топлива и прочего) детали с указанным id
— максимальная масса детали с указанными id с учетом топлива
— возвращает «истину» ,если деталь с указанным id активирована, иначе возвращает «ложь»
— тип детали с указанным id
— вектор позиции детали с указанным id
— температура детали с указанным id
— модуль силы трения детали с указанным id (в Ньютонах)
— выводит id детали, выполняющей текущую программу
— выводит наименьший id среди всех деталей аппарата
— выводит максимальный id среди всех деталей аппарата
— показывает то, какая часть детали с указанным id погружена под воду (от 0 - не погружена вовсе, до 1 - погружена полностью)
— выводит id детали, имеющей указанное название
— переводит вектор из системы координат детали с указанным id (если не указан id, то из системы координат аппарата) в систему координат небесного тела, в SOI которой она находится
— работает прямо противоположно вышеописанному оператору
— выводит высоту аппарата с указанным id над «уровнем моря» небесного тела, вокруг которого он вращается
— возвращает «истину», если аппарат с указанным id не существует или уничтожен (не может быть взят под контроль), иначе возвращает «ложь»
— возвращает «истину», если аппарат с указанным id находится на поверхности небесного тела, иначе возвращает «ложь»
— масса аппарата с указанным id
— название аппарата с указанным id
— кол-во деталей, составляющих аппарат с указанным id
— название небесного тела, в SOI которого находится аппарат с указанным id
— вектор позиции аппарата с указанным id
— вектор скорости аппарата с указанным id
— возвращает "истину", если аппарат с указанным id управляется игроком, иначе возвращает "ложь"
— вектор положения вершины «габаритной коробки» аппарата с указанным id, ближайшей к центру масс этого аппарата
— вектор положения вершины «габаритной коробки» аппарата с указанным id, наиболее далекой от центра масс этого аппарата
— вектор позиции апоцентра орбиты аппарата с указанным id
— вектор позиции перицентра орбиты аппарата с указанным id
— период обращения аппарата с указанным id по своей орбите
— время, через которое аппарат с указанным id достигнет апоцентра своей орбиты
— время, через которое аппарат с указанным id достигнет перицентра своей орбиты
— наклонение орбиты аппарата с указанным id
— эксцентриситет орбиты аппарата с указанным id
— «средняя аномалия» орбиты аппарата с указанным id
— «среднее движение» аппарата с указанным id по своей орбите
— аргумент перицентра орбиты аппарата с указанным id
— долгота восходящего узла орбиты аппарата с указанным id
— «настоящая аномалия» аппарата с указанным id, движущегося по своей орбите
— большая полуось орбиты аппарата с указанным id
— малая полуось орбиты аппарата с указанным id
— выводит id аппарата, имеющего указанное название
Раздел «Events»
— запускает подключенный алгоритм при запуске аппарата
— запускает подключенный алгоритм при столкновении одной детали с другой деталью (и не важно к принадлежат ли эти детали одному аппарату или нет), также может выводить имена столкнувшихся деталей через переменные «part» и «other», относительную скорость через переменную «velocity» и импульс детали аппарата через переменную «impulse», имя которой указано в переменной «part», в момент столкновения
— запускает подключенный алгоритм при взрыве детали, принадлежащей аппарату, также может возвращать имя этой детали через переменную «part»
— запускает подключенный алгоритм при стыковке аппарата с другим аппаратом, также может возвращать названия состыковавшихся аппаратов через переменные «craftA» и «craftB»
— запускает подключенный алгоритм при переходе из SOI одного небесного тела в SOI другого небесного тела, помимо этого может возвращать через переменную «planet» название небесного тела, в SOI которого перешел аппарата
— запускает подключенный алгоритм когда принимает сообщение с указанным названием, через переменную "data" выводит информацию, посланную вместе с сообщением
— отправляет сообщение с указанным названием и указанной информацией по программе (то есть все "триггеры" receive message, находящиеся в той же программе, получат это сообщение)
— отправляет сообщение с указанным названием и указанной информацией по всему аппарату (то есть все "триггеры" receive message, находящиеся в той же программах деталей, принадлежащих аппарату, получат это сообщение)
— отправляет сообщение с указанным названием и указанной информацией по области вокруг аппарата-отправителя (то есть все "триггеры" receive message, находящихся в программах деталей, принадлежащих аппаратам в области пространства вокруг аппарата-отправителя)
Вкладка "Variables", переменные
Переменная - это нечто вроде ячейки, в которую записывается какая-то информация. Туда могут быть записаны данные любого формата, которые сохраняются и могут быть использованы, заменены или изменены в любое время. Обычно переменные в виззи идут в комплекте с триггерами, кастомными операторами и кастомными инструкциями, однако они также могут быть созданы вручную
Чтобы создать переменную необходимо перейти во вкладку «Variables», нажать кнопку «Create Variable» и ввести название переменной в появившемся окне, затем необходимо нажать кнопку «Create»
Стоит отметить, что в названии создаваемой переменной могут содержаться только цифры и буквы, никаких пробелов и специальных символов…
Созданная переменная будет добавлена во вкладку "Variables"
Помимо всего этого, переменную можно удалить или изменить ее название, нажав кнопку слева от переменной во вкладке «Variable»
1 - отменить
2 - переименовать переменную
3 - удалить переменную
Во вкладке "Variables" есть всего лишь три инструкции:
— задает указанное значение казанной переменной
— если значение указанной переменной численное, то прибавляет к значению этой переменной указанное число
— задает указанной переменной указанное игроком во время полета значение, выводя в полете панель с указанным сообщением, где игрок может указать новое значение переменной
(однако таким образом возможно задавать не только значение переменной, но и значение списка, указав элементы и разделив их запятыми)
1 - имя детали, которая исполняет инструкцию, описанную выше
2 - сообщение, указанное в инструкции
3 - поле для ввода нового значения переменной
4 - отмена ввода нового значения переменной
5 - ввод нового значения переменной
Если ввод был отменен, то переменная лишается значения (просто становится пустой переменной)
Вкладка "Lists", списки
Список - это упорядоченный набор элементов. В виззи каждый элемент списка имеет свой индекс, например, первый элемент имеет индекс 1, следующий 2 и так далее. Списки можно создавать и переименовывать аналогично переменным.
— добавляет указанное значение как новый элемент в указанный список
— заменяет значение элемента с указанным индексом на указанное значение
— убирает элемент с указанным индексом из указанного списка, при этом уменьшает индексы последующих элементов на 1 (они смещаются к началу, так как указанный элемент удаляется)
— заменяет значение элемента с указанным индексом в указанном списке на указанное значение
— удаляет все элементы из указанного списка (очищает список)
— сортирует элементы указанного списка по возрастанию
— задает указанный список из указанного списка
— переводит указанную информацию в список (значения, разделенные запятыми типа a,b,c,d)
— выводит длину указанного списка
— возвращает индекс элемента с указанным значением из указанного списка
Кастомные операторы
Кастомный оператор - это оператор, состоящий из нескольких других операторов (кастомных или обычных). Кастомные операторы также могут использовать данные извне, например, значения переменных и других операторов.
Когда кастомный оператор используется и ему на вход подают какое-то значение, то локальная переменная в нём принимает это значение. Далее в статье локальная переменная называется параметром.
Создать кастомный оператор можно нажав кнопку «Create Custom Expression», расположенную в самом внизу вкладки «Custom expressions».
После нажатия этой кнопки появится панель, где можно ввести имя нового кастомного оператора (1), отменить создание этого кастомного оператора (2) или подтвердить имя этого кастомного оператора и продолжить его создание (3).
Если будет нажата кнопка подтверждения, то будет открыта следующая панель, где есть кнопки для отмены (1), для добавления текста (2) в кастомный оператор (типа комментарий), добавления параметра (3) и подтверждения создания оператора (4). Дополнительный текст и параметры добавляются в кастомный оператор по порядку.
Кастомные инструкции
Кастомная инструкция - это по сути инструкция, состоящая из нескольких других инструкций, короче алгоритм в виде одной инструкции. Кастомные инструкции создаются практически таким же образом, как и кастомные операторы, в них могут быть добавлены текст и параметры. Однако стоит упомянуть, что параметры кастомной инструкции могут быть использованы только в алгоритме, из которого она состоит.
Заключение
Надеюсь это подобие справочнка хоть как-то будет полезно вам и поможет в изучении виззи, и вот что я хочу сказать напоследок, изучив виззи начинайте на начальных этапах с чего-то простого, не стоит вначале прыгать выше головы и после бросать виззи, гораздо лучше будет идти постепенно и потом уже, имея достаточную базу, делать не только то, что вы считаете по силам, но и то, что вам непонятно как сделать, это лучший вариант из возможных. Ну и конечно вам стоит продолжать заниматься виззи лишь в том случае, если вам это интересно, на этом все.
Удачи вам ваших начинаниях и успехов!
