Возвращает геодату, необходимую для проецирования реальных координат точки возвращения задания в координаты текстуры интерфейсной карты.
См. Geodata.
-- библиотека: cartographer -- объявление: function GetQuestGeodata( questId, zonesMapId ) -- параметры: questId: QuestId -- идентификатор задания. zonesMapId: ObjectId - идентификатор интерфейсной карты зоны, для которой надо получить геодату -- возвращаемые значения table или nil - если ошибка, то nil; иначе таблица с полями: returnGeodata: Geodata or nil - геодата точки возвращения
Пример:
function GetTexturePos( pos, geoData )
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 )
return { x = texturePosX, y = texturePosY }
end
local geodata = cartographer.GetQuestGeodata( questId, currentZonesMapId )
if geodata then
local goalPos = object.GetPos( unitId )
if goalPos then
local texturePos = GetTexturePos( pos, geodata.returnGeodata )
end
end