Как установить маркер на нужные координаты?

Alan1

Участник
Автор темы
57
4
Здравствуйте!

Есть координаты X, Y, Z на которых нужно расположить маркер.

Подскажите пожалуйста как это можно сделать?
 

Shamanije

Известный
Друг
959
924
Описание: Ставит чекпоинт с указанным типом, координатами, радиусом. Также ставит метку на карте с указанным цветом.
Код:
Lua:
function setMarker(type, x, y, z, radius, color)
    deleteCheckpoint(marker)
    removeBlip(checkpoint)
    checkpoint = addBlipForCoord(x, y, z)
    marker = createCheckpoint(type, x, y, z, 1, 1, 1, radius)
    changeBlipColour(checkpoint, color)
    lua_thread.create(function()
    repeat
        wait(0)
        local x1, y1, z1 = getCharCoordinates(PLAYER_PED)
        until getDistanceBetweenCoords3d(x, y, z, x1, y1, z1) < radius or not doesBlipExist(checkpoint)
        deleteCheckpoint(marker)
        removeBlip(checkpoint)
        addOneOffSound(0, 0, 0, 1149)
    end)
end
Пример использования:
Lua:
setMarker(1, 1939.0338, 2021.2542, 10.3043, 20, 0xFFFFFFFF)
 

Alan1

Участник
Автор темы
57
4
Да! То что нужно! Спасибо большое! Отдельно спасибо за пример!


А такой вопрос - если нужно что бы появились несколько маркеров - как тогда быть?
Я вызвал метод 2 раза но у меня только 1 маркер стоит, последний который
 

Shamanije

Известный
Друг
959
924
Да! То что нужно! Спасибо большое! Отдельно спасибо за пример!



А такой вопрос - если нужно что бы появились несколько маркеров - как тогда быть?
Я вызвал метод 2 раза но у меня только 1 маркер стоит, последний который
Только 1 чекпоинт можно поставить
 

user164451

Потрачен
406
125
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Hatiko

Известный
Проверенный
1,510
627
Я обычно это использую. Создает чекпоинт красный небольшой в мире и на карте маркер ставит. Тип метки можно здесь посмотреть для Gta SA соответственно: https://sampwiki.blast.hk/wiki/MapIcons
marker = addSpriteBlipForContactPoint(X, Y, Z, type id)
Только учти, при создании метки, тебе надо marker в таблицу какую-то занести, чтобы удалить потом функцией removeBlip(marker)
 

mrbean27

Участник
26
25
Я обычно это использую. Создает чекпоинт красный небольшой в мире и на карте маркер ставит. Тип метки можно здесь посмотреть для Gta SA соответственно: https://sampwiki.blast.hk/wiki/MapIcons
marker = addSpriteBlipForContactPoint(X, Y, Z, type id)
Только учти, при создании метки, тебе надо marker в таблицу какую-то занести, чтобы удалить потом функцией removeBlip(marker)
Возможно очень тупой вопрос, но как занести этот marker в таблицу? Мне нужно чтобы у меня у меня при активации создавалось 5 чекпоинтов одновременно и потом удалялись по типу:

1:
--Я в начале пытался создать таблицу
zona = {marker}

if status then
    marker = addSpriteBlipForContactPoint(X, Y, Z, type id)
    marker = addSpriteBlipForContactPoint(X, Y, Z, type id)
    marker = addSpriteBlipForContactPoint(X, Y, Z, type id)
    marker = addSpriteBlipForContactPoint(X, Y, Z, type id)
    marker = addSpriteBlipForContactPoint(X, Y, Z, type id)
else
    removeBlip(marker)
end
Я и создавал пустую таблицу, потом добавлял в неё значение и удалял из таблицы, но ничего понять не могу, маркеры создаются и не удаляются
 

Hatiko

Известный
Проверенный
1,510
627
Lua:
local tMarkers = {} -- Таблица для хранения маркеров.

-- Где-то добавляешь маркер
local marker = addSpriteBlipForContactPoint(X, Y, Z, type id)
-- И заносишь в таблицу:
table.insert(tMarkers, marker)


-- Потом тебе для удаления маркеров используешь цикл:
for i,v in ipairs(tMarkers) do
    removeBlip(v) -- В цикле перебираются все маркеры и удаляются.
    v = nil -- обнуляем значение в таблице
end
 
  • Нравится
Реакции: mrbean27