FooxLee Posted September 1, 2024 Posted September 1, 2024 (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) есть у кого какие идеи ? Edited September 1, 2024 by FooxLee -=ИркутЪ=-
Recommended Posts