onTextDrawSetString

chrysler3224

Новичок
Автор темы
1
0
Версия MoonLoader
.026-beta
Хукаю текстдрав, и хочу добавить в него своей инфы, вот код:
Код:
function sampev.onTextDrawSetString(id, text)
    if text:match("PA†OH") then
        local district = text:match("PA†OH: ~b~(.-)$")
        for i, k in pairs(streets) do
            if stringToLower(streets[i][1]) == stringToLower(district) then
                local x, y, z = getCharCoordinates(PLAYER_PED)
                local ax = streets[i][2]
                local ay = streets[i][3]
                local az = streets[i][4]
                local distance = getDistanceBetweenCoords3d(x, y, z, ax, ay, az)
                text = string.format(text .. ' distance: %.2fm.', distance)
                return {id, text}
            end
        end
    end
end
Но он ни в какую не меняется, что сделал не так?
 

kyrtion

Известный
1,131
408
Но он ни в какую не меняется, что сделал не так?
Может из-за это?
Выводи что там пишет:
Код:
local lowStreet = stringToLower(streets[i][1])
local lowDistrict = stringToLower(district)

print(lowStreet, lowDistrict)

if lowStreet == lowDistrict then
И на всякий случай посмотри какая стоит кодировка, если UTF-8, надо сохранить на Windows 1251
 

Xmoore

Новичок
21
6
Хукаю текстдрав, и хочу добавить в него своей инфы, вот код:
Код:
function sampev.onTextDrawSetString(id, text)
    if text:match("PA†OH") then
        local district = text:match("PA†OH: ~b~(.-)$")
        for i, k in pairs(streets) do
            if stringToLower(streets[i][1]) == stringToLower(district) then
                local x, y, z = getCharCoordinates(PLAYER_PED)
                local ax = streets[i][2]
                local ay = streets[i][3]
                local az = streets[i][4]
                local distance = getDistanceBetweenCoords3d(x, y, z, ax, ay, az)
                text = string.format(text .. ' distance: %.2fm.', distance)
                return {id, text}
            end
        end
    end
end
Но он ни в какую не меняется, что сделал не так?
Ты просто хукаешь функцию, которая изменяет текст текстдрава, а тебе вероятно нужно изменять текст в функции, которая создаёт текстдрав.
Нужный хук:
function sampev.onShowTextDraw(id,data)
    if data.text:match("PA†OH") then
        local district = data.text:match("PA†OH: ~b~(.-)$")
        for i, k in pairs(streets) do
            if stringToLower(streets[i][1]) == stringToLower(district) then
                local x, y, z = getCharCoordinates(PLAYER_PED)
                local ax = streets[i][2]
                local ay = streets[i][3]
                local az = streets[i][4]
                local distance = getDistanceBetweenCoords3d(x, y, z, ax, ay, az)
                data.text = string.format(text .. ' distance: %.2fm.', distance)
                return {id, data}
            end
        end
    end
end
 
Последнее редактирование: