MapInfo
MapInfo предоставляет параметры текущей карты и определяет игровые зоны в мировой позиции.
Откуда берутся данные
Заголовок раздела «Откуда берутся данные»Свойства читаются из загруженного описания карты. GetZones(position) проверяет переданную мировую точку по объёмам игровых зон и возвращает имена всех совпавших зон. Метод не перемещает объект в зону и не подписывается на вход/выход.
Для отслеживания агента повторяйте запрос с его актуальной Movement.Position в подходящем цикле.
Быстрый пример
Заголовок раздела «Быстрый пример»local zones = MapInfo:GetZones(Cameras.Main.Position)
for index = 1, zones.Length do print(zones[index])endCameras.Main доступен только на клиенте. В server.lua передайте позицию из серверного API.
Свойства
Заголовок раздела «Свойства»| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
BasementBottomY |
number |
get |
Нижняя Y-граница подземного уровня. |
BasementTopY |
number |
get |
Верхняя Y-граница подземного уровня. |
MapCameraHeight |
number |
get |
Высота камеры миникарты. |
MapCenter |
Vector3 |
get |
Центр карты в мировых координатах. |
MapName |
string |
get |
Имя текущей карты. |
MapSize |
number |
get |
Размер карты, используемый её представлением. |
Все свойства getter-only.
На карте Castle во время проверки были получены:
| Свойство | Значение |
|---|---|
BasementBottomY |
-5 |
BasementTopY |
0 |
MapCameraHeight |
200 |
MapCenter |
(15, 0, 20) |
MapName |
Castle |
MapSize |
130 |
Эти значения описывают только проверенную карту и не являются общими константами.
GetZones
Заголовок раздела «GetZones»MapInfo:GetZones(position: Vector3): Array<string>Возвращает Array<string> с именами всех зон, содержащих указанную мировую позицию.
Одна позиция может находиться сразу в нескольких зонах:
local zones = MapInfo:GetZones(Cameras.Main.Position)-- Пример: BuyZoneCT, CSspawnЕсли позиция не относится ни к одной зоне, возвращается пустой массив с Length == 0, а не nil.
local zones = MapInfo:GetZones(Vector3.zero)
if zones.Length == 0 then print("No zone at this position")endКонтексты
Заголовок раздела «Контексты»MapInfo и GetZones() работают и на клиенте, и в Reflex server. Результаты для одной карты и позиции совпали в обоих контекстах.