Тексдравы

Biuti

Участник
Автор темы
165
8
Версия MoonLoader
.026-beta
Как проверить виден ли тексдрав на экране?
 
Решение
Не-а
Эта функция просто на существование проверяет
ну если текстдрав существует, то с вероятностью 99.9% ты его видишь (нахуя разрабу сервера создавать текстдрав который не будет видеть игрок?). Мб тебе нужно что-то такое:
Lua:
sampRegisterChatCommand('checktd', function(arg)
    local id = tonumber(arg)
    if id then
        if sampTextdrawIsOnScreen(id) then
            sampAddChatMessage('текстдрав конечно на экране, но лучше иди и займись чем-нибудь полезным', -1)
        end
    end
end)

function sampTextdrawIsOnScreen(id)
    if sampTextdrawIsExists(id) then
        local resX, resY = getScreenResolution()
        local rX, rY = convertWindowScreenCoordsToGameScreenCoords(resX, resY)
        local tdX, tdY =...

Dmitriy Makarov

25.05.2021
Проверенный
2,513
1,140
Lua:
INCOMING_RPCS[RPC.SHOWTEXTDRAW]               = {'onShowTextDraw',
  {textdrawId = 'int16'},
  {textdraw = {
    {flags = 'int8'},
    {letterWidth = 'float'},
    {letterHeight = 'float'},
    {letterColor = 'int32'},
    {lineWidth = 'float'},
    {lineHeight = 'float'},
    {boxColor = 'int32'},
    {shadow = 'int8'},
    {outline = 'int8'},
    {backgroundColor = 'int32'},
    {style = 'int8'},
    {selectable = 'int8'},
    {position = 'vector2d'},
    {modelId = 'int16'},
    {rotation = 'vector3d'},
    {zoom = 'float'},
    {color = 'int32'},
    {text = 'string16'}
  }}
}
 
  • Нравится
Реакции: Biuti

chapo

tg/inst: @moujeek
Всефорумный модератор
9,088
12,103
Не-а
Эта функция просто на существование проверяет
ну если текстдрав существует, то с вероятностью 99.9% ты его видишь (нахуя разрабу сервера создавать текстдрав который не будет видеть игрок?). Мб тебе нужно что-то такое:
Lua:
sampRegisterChatCommand('checktd', function(arg)
    local id = tonumber(arg)
    if id then
        if sampTextdrawIsOnScreen(id) then
            sampAddChatMessage('текстдрав конечно на экране, но лучше иди и займись чем-нибудь полезным', -1)
        end
    end
end)

function sampTextdrawIsOnScreen(id)
    if sampTextdrawIsExists(id) then
        local resX, resY = getScreenResolution()
        local rX, rY = convertWindowScreenCoordsToGameScreenCoords(resX, resY)
        local tdX, tdY = sampTextdrawGetPos(id)
        if tdX >= 0 and tdX <= rX and tdY >= 0 and tdY <= rY then
            return true
        else
            return false
        end
    else
        return false
    end
end
 
  • Нравится
Реакции: CHAPPLE и Biuti