Jump to content

Как удалить/скрыть на карте F10 нарисованный овал скриптом lua


Recommended Posts

Posted (edited)

nullnull

Имя овала "01", как я не пытался , не получается триггером удалить нарисованный овал, есть у кого мысли :
мои варианты

null

-- 1 Функция для удаления овала под именем "01"
function deleteOvalByName(name)
    -- Проверяем все нарисованные объекты в миссии
    for i = 1, #env.mission.drawings do
        local drawing = env.mission.drawings[i]
        -- Проверяем тип и имя объекта
        if drawing.type == "oval" and drawing.name == name then
            -- Удаляем объект из таблицы
            table.remove(env.mission.drawings, i)
            trigger.action.outText("Овал под именем '" .. name .. "' удален.", 10)
            return
        end
    end
    trigger.action.outText("Не удалось найти овал с именем '" .. name .. "'.", 10)
end

-- Вызываем функцию для удаления овала с именем "01"
deleteOvalByName("01")
-- 2 Функция для удаления объекта по имени
function deleteDrawingByName(name)
    -- Проверить, есть ли таблица рисунков в env.mission
    if env.mission and env.mission.drawings then
        -- Пройтись по всем нарисованным объектам в миссии
        for i = #env.mission.drawings, 1, -1 do
            local drawing = env.mission.drawings[i]
            -- Проверяем, соответствует ли имя объекта заданному
            if drawing.name == name then
                -- Удалить объект из таблицы
                table.remove(env.mission.drawings, i)
                trigger.action.outText("Рисунок с именем '" .. name .. "' удалён.", 10)
                return true
            end
        end
        trigger.action.outText("Не удалось найти рисунок с именем '" .. name .. "'.", 10)
    else
        trigger.action.outText("Таблица рисунков не найдена в env.mission.", 10)
    end
    return false
end

-- Вызов функции для удаления объекта с именем "01"
deleteDrawingByName("01")
-- 3 Функция для удаления объекта по имени
local function deleteDrawnObjectByName(objectName)
    -- Ищем все объекты на карте
    local allObjects = coalition.getUnits(coalition.side.BLUE) -- Измените на coalition.side.RED для красной стороны, если необходимо

    -- Проходим по всем объектам
    for _, unit in ipairs(allObjects) do
        -- Проверяем у объекта имя
        if unit:getName() == objectName then
            -- Удаляем объект
            unit:destroy()
            -- Выводим сообщение об удалении
            trigger.action.outText("Объект '" .. objectName .. "' был удалён на карте.", 10)
            return true -- Возвращаем true, если объект был найден и удалён
        end
    end

    -- Если объект не найден, выводим сообщение
    trigger.action.outText("Объект '" .. objectName .. "' не найден на карте.", 10)
    return false -- Возвращаем false, если объект не был найден
end

-- Вызываем функцию удаления объекта с именем "01"
deleteDrawnObjectByName("01")
-- 4й вариант
if mist then
    local drawObjectName = "01"
    mist.removeDrawObject(drawObjectName)
    trigger.action.outText("Объект именем '01' был удалён.", 10)
else
    trigger.action.outText("MIST библиотека не найдена!", 10)
end
-- 5 Предположим, что объект имеет id 01 и это идентификатор.
local drawObjectID = 01

-- Функция удаления
local function removeDrawObjectByID(id)
    local drawObjects = world.getMarkPanels()
    for _, drawObject in pairs(drawObjects) do
        if drawObject.id == id then
            trigger.action.removeMark(drawObject.id)
            trigger.action.outText("Объект с ID '01' был удалён.", 10)
            return
        end
    end
    trigger.action.outText("Объект с ID '01' не найден.", 10)
end

-- Вызываем функцию удаления для ID '01'
removeDrawObjectByID(drawObjectID)
-- 6й вариант
local markerId = 01  -- Предположим, что маркер имеет ID 01

-- Функция удаления маркера
trigger.action.removeMark(markerId)
trigger.action.outText("Маркер с ID '01' был удален.", 10)
-- 7й вариант
local markerID = "01"  -- Имя фигуры, которую нужно скрыть

-- Функция для удаления маркера
local function removeMarker(name)
    local markers = trigger.misc.getMarkers()
    
    for i, marker in ipairs(markers) do
        if marker.name == name then
            trigger.action.removeMark(marker.id)
            trigger.action.outText("Фигура с именем '" .. name .. "' была скрыта.", 10)
            break
        end
    end
end

-- Вызов функции
removeMarker(markerID)

есть у кого какие идеи ?

 

image.png

Edited by FooxLee

-=ИркутЪ=-

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...