уходящая за поле зрения линия рендера

sledokkk

Новичок
Автор темы
6
1
Версия MoonLoader
.026-beta
всем здарова, пишу свой первый скрипт на луа (а точнее переписываю и дополняю один старый скрипт-рендер на 3д текст) и встретился с проблемой.
renderDrawLine рисует линию от персонажа только когда персонаж повернут в сторону 3д текста, как мне сделать так, чтобы трасера было видно всегда вне зависимости от того, куда смотрит персонаж?
(если я сейчас отвернусь от 3д текста, то линия не будет рисоваться, а я хочу чтобы она рисовалась)
надеюсь понятно расписал...
 
Решение
хорошо, еще раз большое спасибо.
Можно выебать систему, чтобы он рисовался даже когда ты отвёрнут и при этом делал это адекватно. Пришлось поебаться, но я сделал это. Реализация основана на 4 аргументе функции convert3DCoordsToScreenEx.

Подробности и готовый код https://www.blast.hk/threads/189365/#post-1379289

Предупреждаю там гавнокодно

Corenale

луашер типа
Проверенный
167
320
Если в скрипте есть такие строчки:
Lua:
if isPointOnScreen(...) then
   -- То, что тут оставь.
end
То удали их.
И после того, как он удалит isPointOnScreen и повернется от 3д текста на 180°, он поймет зачем оно тут.
 

Dmitriy Makarov

25.05.2021
Проверенный
2,500
1,132

sledokkk

Новичок
Автор темы
6
1
И после того, как он удалит isPointOnScreen и повернется от 3д текста на 180°, он поймет зачем оно тут.
и опять в попад, а что делать тогда?))))

у меня текст плавает почему-то

вообщем как я понял лучше ее оставить и так будет правильнее?)
 

Tema05

Известный
1,472
437
хорошо, еще раз большое спасибо.
Можно выебать систему, чтобы он рисовался даже когда ты отвёрнут и при этом делал это адекватно. Пришлось поебаться, но я сделал это. Реализация основана на 4 аргументе функции convert3DCoordsToScreenEx.

Подробности и готовый код https://www.blast.hk/threads/189365/#post-1379289

Предупреждаю там гавнокодно
 
Последнее редактирование:
  • Нравится
Реакции: sledokkk
D

deleted-user-139653

Гость
Можно выебать систему, чтобы он рисовался даже когда ты отвёрнут и при этом делал это адекватно. Пришлось поебаться, но я сделал это. Реализация основана на 4 аргументе функции convert3DCoordsToScreenEx.

Подробности и готовый код https://www.blast.hk/threads/189365/#post-1379289

Предупреждаю там гавнокодно
чисто так для ознакомления, вроде не говнокод у меня))))

Lua:
local coordinates = {
    {x = 2464, y = -1715, z = 13},
}

local font = renderCreateFont("Arial", 9, 13)
local removedCoordinates = {}
local dis = 500

function main()
    repeat wait(0) until isSampAvailable()

    sampRegisterChatCommand("setdis", function(arg)
        dis = tonumber(arg)
    end)

    while true do wait(0)
        x, y, z = getCharCoordinates(PLAYER_PED)
        for i, markerCoords in ipairs(coordinates) do
            local distance = getDistanceBetweenCoords3d(markerCoords.x, markerCoords.y, markerCoords.z, x, y, z)
            local x1, y1 = convert3DCoordsToScreen(markerCoords.x, markerCoords.y, markerCoords.z)
            if distance < dis then
                if ({convert3DCoordsToScreenEx(markerCoords.x, markerCoords.y, markerCoords.z)})[4] > 0 then
                    format = string.format("Тыква: %sм", math.floor(distance))
                    renderFontDrawText(font, format, x1, y1, -1)
                end
            end

            if distance < 5 then
                table.remove(coordinates, i)
                table.insert(removedCoordinates, i)
            end
        end
    end
end
 

Tema05

Известный
1,472
437
чисто так для ознакомления, вроде не говнокод у меня))))

Lua:
local coordinates = {
    {x = 2464, y = -1715, z = 13},
}

local font = renderCreateFont("Arial", 9, 13)
local removedCoordinates = {}
local dis = 500

function main()
    repeat wait(0) until isSampAvailable()

    sampRegisterChatCommand("setdis", function(arg)
        dis = tonumber(arg)
    end)

    while true do wait(0)
        x, y, z = getCharCoordinates(PLAYER_PED)
        for i, markerCoords in ipairs(coordinates) do
            local distance = getDistanceBetweenCoords3d(markerCoords.x, markerCoords.y, markerCoords.z, x, y, z)
            local x1, y1 = convert3DCoordsToScreen(markerCoords.x, markerCoords.y, markerCoords.z)
            if distance < dis then
                if ({convert3DCoordsToScreenEx(markerCoords.x, markerCoords.y, markerCoords.z)})[4] > 0 then
                    format = string.format("Тыква: %sм", math.floor(distance))
                    renderFontDrawText(font, format, x1, y1, -1)
                end
            end

            if distance < 5 then
                table.remove(coordinates, i)
                table.insert(removedCoordinates, i)
            end
        end
    end
end
А ты тут причём?