рендер

andrey_hacker

Известный
Автор темы
275
89
Версия MoonLoader
.026-beta
Привет всем, подскажите пожалуйста. Вот у меня есть несколько ник-неймов, как мне сделать так, чтобы они рендерились друг под другом, а не друг на друге. Буду признателен
Lua:
for g = 0,1001 do
                if sampIsPlayerConnected(g) then
                    result, Ped = sampGetCharHandleBySampPlayerId(g)
                    if result then
                        _, id = sampGetPlayerIdByCharHandle(Ped)
                        if _ then
                            text3 = ('Nick: '..sampGetPlayerNickname(id).. '['..id..'] | LVL: ' ..sampGetPlayerScore(id))
                            renderFontDrawText(font, text3, 500, 500, 0xD7FFFFFF)
                        end
                    end
                end
            end
Как ето заставить рендериться друг под другом ?
 
Последнее редактирование:

andrey_hacker

Известный
Автор темы
275
89
Добить ники в массив, с помощью for его заполнить, а после выводить, и каждый новый вывод смещать на y += 5 (каждую новую строку)
можно код пожалуйста, не знаю как через for заполнить
 

andrey_hacker

Известный
Автор темы
275
89
Проверь, я не проверял
Lua:
local players = {} -- создаём массив, в который будем добавлять ники игроков для рендера

for g = 0, sampGetMaxPlayerId() do -- создаём цикл, в котором перебираем все ID с 0 по максимальный существующий на сервере
    if sampIsPlayerConnected(g) then -- проверка подключен ли игрок
        table.insert(players, g) -- если подключен, добавляем его в наш ранее созданный массив
    end
end

for key, value in pairs(players) do -- Цикл который парсит нашу таблицу, где key - ключ(номер) элемента в таблице, а value его значение(ID, которые мы добавляли)
    local result, Ped = sampGetCharHandleBySampPlayerId(value) -- проверка находится хэндл в стриме

    if result then -- Если в сриме, то выводим
        local text3 = ('Nick: '..sampGetPlayerNickname(value).. '['..value..'] | LVL: ' ..sampGetPlayerScore(value))
        renderFontDrawText(font, text3, 500, 500, 0xD7FFFFFF)
    end
end
рендериться но не друг под другом,а друг на друге
 

Tak

Известный
180
70
рендериться но не друг под другом,а друг на друге

Проверяй =)

Lua:
local players = {} -- создаём массив, в который будем добавлять ники игроков для рендера
local offsetY = 500 -- смещение

for g = 0, sampGetMaxPlayerId() do -- создаём цикл, в котором перебираем все ID с 0 по максимальный существующий на сервере
    if sampIsPlayerConnected(g) then -- проверка подключен ли игрок
        table.insert(players, g) -- если подключен, добавляем его в наш ранее созданный массив
    end
end

for key, value in pairs(players) do -- Цикл который парсит нашу таблицу, где key - ключ(номер) элемента в таблице, а value его значение(ID, которые мы добавляли)
    local result, Ped = sampGetCharHandleBySampPlayerId(value) -- проверка находится хэндл в стриме

    if result then -- Если в сриме, то выводим
        local text3 = ('Nick: '..sampGetPlayerNickname(value).. '['..value..'] | LVL: ' ..sampGetPlayerScore(value))
        renderFontDrawText(font, text3, 500, offsetY, 0xD7FFFFFF)
        offsetY = offsetY + 5
    end
end
offsetY = 500 -- после for
 

Cosmo

Известный
Друг
661
2,821
Готовый код
Lua:
local font_flag = require('moonloader').font_flag
local my_font = renderCreateFont('Arial', 10, font_flag.BOLD + font_flag.SHADOW)

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(2000) end

    sampRegisterChatCommand('render', function()
        render = not render
    end)

    while true do wait(0)

        if render then

            local players = {} -- создаём массив, в который будем добавлять ники игроков для рендера
            local X = 100 -- Позиция по X
            local Y = 300 -- Позиция по Y

            for g = 0, sampGetMaxPlayerId() do -- создаём цикл, в котором перебираем все ID с 0 по максимальный существующий на сервере
                if sampIsPlayerConnected(g) then -- проверка подключен ли игрок
                    table.insert(players, g) -- если подключен, добавляем его в наш ранее созданный массив
                end
            end
            renderFontDrawText(my_font, 'Игроки в радиусе:', X, Y - 20, 0xD700FFFF)
            for key, value in pairs(players) do -- Цикл который парсит нашу таблицу, где key - ключ(номер) элемента в таблице, а value его значение(ID, которые мы добавляли)
                local result, Ped = sampGetCharHandleBySampPlayerId(value) -- проверка находится хэндл в стриме

                if result then -- Если в сриме, то выводим
                    renderFontDrawText(my_font, 'Nick: '..sampGetPlayerNickname(value).. '['..value..'] | LVL: ' ..sampGetPlayerScore(value), X, Y, 0xD7FFFFFF)
                    Y = Y + 15 -- Тот самый перенос строк, просто добавляем ко координатам текста расстояние по Y
                end
            end   
        end
    end
end
 
Последнее редактирование: