рендер на игроке

linmsqn

Участник
Автор темы
337
9
Версия MoonLoader
Другое
как сделать чтобы при нажатии на цифру 1(или любую другую кнопку), то на игроке рисовался определенный рендер, типа я тыкаю на цифру один, и на человеке появляется рендер со списком каких-либо действий(показать паспорт, лицы или че-то другое), но чтобы паспорт и лицы можно было показать только когда список действий показан, чтобы лишний раз ничего не показывалось
 
Решение
мне не активация нужна, а сама реализация того что я написал
Lua:
if isKeyDown(49) and not sampIsCursorActive() then
    for k, ped in pairs(getAllChars()) do
        if isCharOnScreen(ped) then
            local x, y, z = getCharCoordinates(ped)
            local rx, ry = convert3DCoordsToScreen(x, y, z)
            -- render
        end
    end
end

Liquit

Известный
280
107
мне не активация нужна, а сама реализация того что я написал
В бесконечном цикле пробегаться про всем педам в зоне стрима, если пед есть, и расстояние до него меньше чем ляляля, конвертишь корды в позицию на экране, там и рендеришь что тебе надо
 
  • Нравится
Реакции: linmsqn

chapo

tg/inst: @moujeek
Всефорумный модератор
9,090
12,116
мне не активация нужна, а сама реализация того что я написал
Lua:
if isKeyDown(49) and not sampIsCursorActive() then
    for k, ped in pairs(getAllChars()) do
        if isCharOnScreen(ped) then
            local x, y, z = getCharCoordinates(ped)
            local rx, ry = convert3DCoordsToScreen(x, y, z)
            -- render
        end
    end
end
 
  • Нравится
Реакции: linmsqn

linmsqn

Участник
Автор темы
337
9
Lua:
if isKeyDown(49) and not sampIsCursorActive() then
    for k, ped in pairs(getAllChars()) do
        if isCharOnScreen(ped) then
            local x, y, z = getCharCoordinates(ped)
            local rx, ry = convert3DCoordsToScreen(x, y, z)
            -- render
        end
    end
end
а возможно чтобы это работало на игрока который ближе всего ко мне? а не на всех которые в зоне прорисовки и сделать проверку чтобы на меня не работало тоже
 
Последнее редактирование:

Liquit

Известный
280
107
а возможно чтобы это работало на игрока который ближе всего ко мне? а не на всех которые в зоне прорисовки и сделать проверку чтобы на меня не работало тоже
Lua:
if isKeyDown(49) and not sampIsCursorActive() then
    for k, ped in pairs(getAllChars()) do
        if isCharOnScreen(ped) then
            local x, y, z = getCharCoordinates(ped)
            local mX, mY, mZ = getCharCoordinates(PLAYER_PED)
            local dist = getDistanceBetweenCoords3d(x, y, z, mX, mY, mZ)
            local _, id = sampGetPlayerIdByCharHandle(ped)
            local _, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
            if dist <= 50 and id ~= myid then
                local rx, ry = convert3DCoordsToScreen(x, y, z)
                -- render
            end
        end
    end
end
 

linmsqn

Участник
Автор темы
337
9
Lua:
if isKeyDown(49) and not sampIsCursorActive() then
    for k, ped in pairs(getAllChars()) do
        if isCharOnScreen(ped) then
            local x, y, z = getCharCoordinates(ped)
            local mX, mY, mZ = getCharCoordinates(PLAYER_PED)
            local dist = getDistanceBetweenCoords3d(x, y, z, mX, mY, mZ)
            local _, id = sampGetPlayerIdByCharHandle(ped)
            local _, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
            if dist <= 50 and id ~= myid then
                local rx, ry = convert3DCoordsToScreen(x, y, z)
                -- render
            end
        end
    end
end
оно работает на всех кто близко ко мне, но не именно на одного человека. типа на которого у меня экран направлен
 

Liquit

Известный
280
107
оно работает на всех кто близко ко мне, но не именно на одного человека. типа на которого у меня экран направлен
так тебе нужно чтобы на всех рендерило или на одном конкретном?
 

Liquit

Известный
280
107
на одном конкретном, неправильно объяснил я короче
Lua:
require('moonloader')

local id_to_rend = nil

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('setrendid', function(id)
        if id:match("%d+") then
            id_to_rend = tonumber(id)
        else
            id_to_rend = nil
        end
    end)
    while true do
        wait(0)
        if isKeyDown(49) and not sampIsCursorActive() then
            for k, ped in pairs(getAllChars()) do
                local _, id = sampGetPlayerIdByCharHandle(ped)
                if  id == id_to_rend then
                    local x, y, z = getCharCoordinates(ped)
                    local mX, mY, mZ = getCharCoordinates(PLAYER_PED)
                    local dist = getDistanceBetweenCoords3d(x, y, z, mX, mY, mZ)
                    local _, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
                    if dist <= 50 then
                        local rx, ry = convert3DCoordsToScreen(x, y, z)
                        -- render
                    end
                end
            end
        end
    end
end