Поиск нужного 3д текста

Sergey_Turner

Участник
Автор темы
102
7
Версия MoonLoader
.026-beta
Добрый день. Есть некоторое количество созданного 3д текста и мне необходимо найти из этих созданных текстов тот, у которого совпадают координаты с полученными в функе и вернуть его id. Как это реализовать?
Lua:
function GetID3DText(x, y)
    local id = -1
        -- Тут должна быть проверка на совпадение аргументов 'x, y' c позицией X, Y 3д текста.
    return id
end
 
Решение
По координатам не лучший вариант искать, т.к. точность может хромать, ну или делать округления до нескольких разрядов. Также поиск по тексту в самом элементе.
Lua:
function GetID3DText(x, y)
    for id = 1, 2048 do
        if sampIs3dTextDefined(id) then
            local text, color, x, y, z, dist, walls, player_id, car_id = sampGet3dTextInfoById(id)
            -- условя, думаю, додумаешь
            if --[[услвия]] then
                return id
            end
        end
    end
    return -1
end

Hatiko

Известный
Проверенный
1,502
620
По координатам не лучший вариант искать, т.к. точность может хромать, ну или делать округления до нескольких разрядов. Также поиск по тексту в самом элементе.
Lua:
function GetID3DText(x, y)
    for id = 1, 2048 do
        if sampIs3dTextDefined(id) then
            local text, color, x, y, z, dist, walls, player_id, car_id = sampGet3dTextInfoById(id)
            -- условя, думаю, додумаешь
            if --[[услвия]] then
                return id
            end
        end
    end
    return -1
end
 
  • Нравится
Реакции: Sergey_Turner

Sergey_Turner

Участник
Автор темы
102
7
@Hatiko Не подскажешь как можно реализовать нормальное извлечение цифр из строки?)
У меня есть такой текст: txt = "Текст №10\nДругой текст"
Сделал так: id = txt:match("(%d\n+)")
В итоге вырезается не 10, а 0. Но если так: id = txt:match("(%d%d\n+)"), то вырежется 2 цифры, а когда будет к примеру 5, ничего не произойдёт 😄
 

krim

Известный
301
132
@Hatiko Не подскажешь как можно реализовать нормальное извлечение цифр из строки?)
У меня есть такой текст: txt = "Текст №10\nДругой текст"
Сделал так: id = txt:match("(%d\n+)")
В итоге вырезается не 10, а 0. Но если так: id = txt:match("(%d%d\n+)"), то вырежется 2 цифры, а когда будет к примеру 5, ничего не произойдёт 😄
id = txt:match("Текст №(%d+)\n")
 
  • Влюблен
Реакции: Sergey_Turner