Возвращает геодату, необходимую для проецирования координат игрока в реальном мира в координаты текстуры интерфейсной карты.
Возвращается, если игрок unitId находится в зоне, принадлежащей интерфейсной карте зон zonesMapId. если он не находится в этих зонах, то геодата не может быть получена и возвращается nil.
Кроме того nil возвращается для тех интерфейсных карт зон, у которых флаг isShowPositions = false. Это могут быть, например, общая карта мира, или чистилище. Также геодата не возвращается для карт, указанных в ресурсах, как карты неизвестного места.
Работает только для главного игрока, членов его группы и рейда, а так же для игроков, задетекченных детекторами, если такие есть.
-- библиотека: сartographer -- объявление: function GetPlayerGeodata( unitId, zonesMapId ) -- параметры: unitId: ObjectId - идентификатор игрока zonesMapId: ObjectId - идентификатор интерфейсной карты зоны, для которой надо получить геодату -- возвращаемые значения table or nil - если геодата получена, то таблица с полями: x, y: number (int) - мировые координаты точки левого нижнего угла карты width, height: number (int) - размер зоны (в мировых единицах), охватываемой картой.}}} Пример: <pre> local geodata = cartographer.GetPlayerGeodata( unitId, currentZonesMapId ) if geodata then local pos = object.GetPos( unitId ) if pos then local pixelsPerMeterX = ( MAP_TEXTURE_X / geodata.width ) local pixelsPerMeterY = ( MAP_TEXTURE_Y / geodata.height ) local mapCenterX = geodata.x + ( geodata.width / 2 ) local mapCenterY = geodata.y + ( geodata.height / 2 ) texturePosX = math.ceil( ( pos.posX - mapCenterX ) * pixelsPerMeterX ) texturePosY = math.ceil( ( mapCenterY - pos.posY ) * pixelsPerMeterY ) end end