Точечный сканер материалов
Revision as of 14:34, 12 November 2021 by Verbmaks (talk | contribs) (Created page with "{{Otherlang2 |en=Material_point_scanner }} {| class="infobox" style="float: right; clear: right; margin: 0 0 1em 1em; width: 300px;" |- | style="text-align: center; font-siz...")
Описание устройства
Точечный сканер материалов позволяет определить состав любого объекта в игре, а именно какие материалы и в каком объеме содержатся в сканированном объекте. Сканер испускает синий луч, длиной 100 метров. При пересечении луча объектом появляется небольшая голограмма в месте пересечения.
Принцип работы сканера
- Включение поискового луча осуществляется установкой поля Activave в значение "1"
- Для начала сканирования предмета необходимо установить поле Scan в значение "1"
- Луч следует навести на объект (например, на астероид) и подождать несколько секунд
- После успешного сканирования, поле Scan сбросит свое значение в "0"
- Результаты сканирования помещаются в массив, каждый элемент которого содержит значение Material (название материала) и Volume (объем материала в кв). Количество элементов массива будет равно количеству разных материалов, содержащихся в объекте
- Доступ к элементам массива осуществляется через поле Index, где "0" - первый элемент массива
Поля устройства
YOLOL поле | Описание | Диапазон значений |
---|---|---|
Active | Отвечает за включение сканера. Значение "1" включает, "0" - выключает | 0 - 1 |
Index | Номер сохраненного результата сканирования в массиве | 0 - |
ScanResults | Количество сохраненных результатов сканирования | 0 - |
Material | Название сканированного материала | String |
Volume | Объем сканированного материала в киловокселях | 0 - |
Scan | При установлении значения поля "1", инициирует сканирование. Поле автоматически сбрасывается в "0" после успешного сканирования | 0 - 1 |
Reset | Очищает массив сохраненных результатов сканирования | 0 - 1 |
Узнать больше об использовании полей устройств можно на следующих страницах:
Пример скрипта для сканера
Данный скрипт подходит для сканирования астероидов. Астероиды всегда содержат не более двух видов материалов, поэтому вместо цикла в отдельных строках вызывается нужный элемент массива
GOTO1+:Active :Scan=1 IF :ScanResults>0 THEN GOTO3 ELSE :Scanner="" GOTO1 END :Index=0 Vol=:Volume/1728 :Scanner=:Material+": "+Vol+"\n" :Index=1 Vol=:Volume/1728 :Scanner+=:Material+": "+Vol :Active=0 :Reset=1 GOTO1
- Первая строка отвечает за включение сканера
- Вторая строка инициирует сканирование и ждет его успешного завершения. Понять, что сканирование завершено можно по значению поля :ScanResults, которое указывает текущее количество элементов массива
- Третья и четвертая строки читают элементы массива и записывают результат в поле :Scanner (текстовая панель). Объем делится на 1728 кв чтобы получить результат в стаках, а не в киловокселях
- После сохранения результата в текстовой панели, сканер выключается, массив очищается