Вопросы по Lua скриптингу

Общая тема для вопросов по разработке скриптов на языке программирования Lua, в частности под MoonLoader.
  • Задавая вопрос, убедитесь, что его нет в списке частых вопросов и что на него ещё не отвечали (воспользуйтесь поиском).
  • Поищите ответ в теме посвященной разработке Lua скриптов в MoonLoader
  • Отвечая, убедитесь, что ваш ответ корректен.
  • Старайтесь как можно точнее выразить мысль, а если проблема связана с кодом, то обязательно прикрепите его к сообщению, используя блок [code=lua]здесь мог бы быть ваш код[/code].
  • Если вопрос связан с MoonLoader-ом первым делом желательно поискать решение на wiki.

Частые вопросы

Как научиться писать скрипты? С чего начать?
Информация - Гайд - Всё о Lua скриптинге для MoonLoader(https://blast.hk/threads/22707/)
Как вывести текст на русском? Вместо русского текста у меня какие-то каракули.
Изменить кодировку файла скрипта на Windows-1251. В Atom: комбинация клавиш Ctrl+Shift+U, в Notepad++: меню Кодировки -> Кодировки -> Кириллица -> Windows-1251.
Как получить транспорт, в котором сидит игрок?
Lua:
local veh = storeCarCharIsInNoSave(PLAYER_PED)
Как получить свой id или id другого игрока?
Lua:
local _, id = sampGetPlayerIdByCharHandle(PLAYER_PED) -- получить свой ид
local _, id = sampGetPlayerIdByCharHandle(ped) -- получить ид другого игрока. ped - это хендл персонажа
Как проверить, что строка содержит какой-то текст?
Lua:
if string.find(str, 'текст', 1, true) then
-- строка str содержит "текст"
end
Как эмулировать нажатие игровой клавиши?
Lua:
local game_keys = require 'game.keys' -- где-нибудь в начале скрипта вне функции main

setGameKeyState(game_keys.player.FIREWEAPON, -1) -- будет сэмулировано нажатие клавиши атаки
Все иды клавиш находятся в файле moonloader/lib/game/keys.lua.
Подробнее о функции setGameKeyState здесь: lua - setgamekeystate | BlastHack — DEV_WIKI(https://www.blast.hk/wiki/lua:setgamekeystate)
Как получить id другого игрока, в которого целюсь я?
Lua:
local valid, ped = getCharPlayerIsTargeting(PLAYER_HANDLE) -- получить хендл персонажа, в которого целится игрок
if valid and doesCharExist(ped) then -- если цель есть и персонаж существует
  local result, id = sampGetPlayerIdByCharHandle(ped) -- получить samp-ид игрока по хендлу персонажа
  if result then -- проверить, прошло ли получение ида успешно
    -- здесь любые действия с полученным идом игрока
  end
end
Как зарегистрировать команду чата SAMP?
Lua:
-- До бесконечного цикла/задержки
sampRegisterChatCommand("mycommand", function (param)
     -- param будет содержать весь текст введенный после команды, чтобы разделить его на аргументы используйте string.match()
    sampAddChatMessage("MyCMD", -1)
end)
Крашит игру при вызове sampSendChat. Как это исправить?
Это происходит из-за бага в SAMPFUNCS, когда производится попытка отправки пакета определенными функциями изнутри события исходящих RPC и пакетов. Исправления для этого бага нет, но есть способ не провоцировать его. Вызов sampSendChat изнутри обработчика исходящих RPC/пакетов нужно обернуть в скриптовый поток с нулевой задержкой:
Lua:
function onSendRpc(id)
  -- крашит:
  -- sampSendChat('Send RPC: ' .. id)

  -- норм:
  lua_thread.create(function()
    wait(0)
    sampSendChat('Send RPC: ' .. id)
  end)
end
 
Последнее редактирование:

Demmy

Участник
121
22
теперь вообще комбобокс не рабоатет
Lua:
local combobombo1 = imgui.ImInt(0)
local combobombo = imgui.ImInt(0)
local pfbi ={u8' ', u8'Стажёр', u8'Дежурный', u8'Мл.Агент',u8'Агент DEA',u8'Агент CID',u8'Глава DEA',u8'Глава CID',u8'Инспектор FBI',u8'Зам.Директора FBI',u8'Директор FBI'}
local checkfrac ={u8' ', u8'Мэрия',u8'SAPD',u8'Медики',u8'Армия',u8'ФБР',u8'Автошкола'}
if imgui.Combo(u8'Группа похищенного',combobombo1,checkfrac,#checkfrac) then
    if combobombo1.v == 5 then -- 4 так как отсчет с 0
        stealfbi = true
    else
        stealfbi = false
    end
end
if stealfbi then
    if imgui.Combo(u8'Похищенный',combobombo,pfbi,#pfbi) then
    end
end
 

Anton Nixon

Известный
474
48
хочу,чтобы если был ФБР, то выходил комбобокс похищенный, но он появляется и пропадает
Lua:
-- в переменные
local combobombo1 = imgui.ImInt(0)
local combobombo = imgui.ImInt(0)
local pfbi ={u8' ', u8'Стажёр', u8'Дежурный', u8'Мл.Агент',u8'Агент DEA',u8'Агент CID',u8'Глава DEA',u8'Глава CID',u8'Инспектор FBI',u8'Зам.Директора FBI',u8'Директор FBI'}
local checkfrac ={u8' ', u8'Мэрия',u8'SAPD',u8'Медики',u8'Армия',u8'ФБР',u8'Автошкола'}
local zalog = {u8"Похищеный", u8"Какой-то еще", u8"и сново какой-то еще", u8"Какой-то еще №2"}
local fbr = false
--
if imgui.Combo(u8'Группа похищенного', combobombo1, checkfrac) then
    if combobombo1.v == 5 then -- 5 так как отсчет с 0
        fbr = true
    else
        fbr = false
    end
end
if fbr then
    imgui.Combo(u8'Похищенный', combobombo, zalog[1])
end
 

Vintik

Через тернии к звёздам
Проверенный
1,556
1,027
[/code] local combobombo1 = imgui.ImInt(0)
local combobombo = imgui.ImInt(0)
local pfbi ={u8' ', u8'Стажёр', u8'Дежурный', u8'Мл.Агент',u8'Агент DEA',u8'Агент CID',u8'Глава DEA',u8'Глава CID',u8'Инспектор FBI',u8'Зам.Директора FBI',u8'Директор FBI'}
local checkfrac ={u8' ', u8'Мэрия',u8'SAPD',u8'Медики',u8'Армия',u8'ФБР',u8'Автошкола'}
if imgui.Combo(u8'Группа похищенного',combobombo1,checkfrac,#checkfrac) then
if combobombo1.v == 5 then -- 4 так как отсчет с 0
imgui.Combo(u8'Похищенный',combobombo,pfbi,#pfbi)
end
end[/code]
хочу,чтобы если был ФБР, то выходил комбобокс похищенный, но он появляется и пропадает

Lua:
function sampev.onServerMessage(color, text)
    if text:find('{ffff00}[ADMIN]') then
--code
end
может помогу еще раз. напиши проблему только с начала до конца, а то я нифига не понял из твоего текста
 

Carlos777

Потрачен
227
219
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как отправить сообщение в чат без sendchat?
Чтобы небыло зависимости от Sampfuncs
мб кто знает
 

mails2k18

Участник
45
0
Приветствую форумчане, подскажите пожалуйста, как сделать команду по двойному нажатию одной клавиши?
К примеру F10

По типу такого...
Lua:
if isKeyJustPressed(VK_F10) then
 

Fott

Простреленный
3,461
2,378

Carlos777

Потрачен
227
219
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Fott

Простреленный
3,461
2,378
Приветствую форумчане, подскажите пожалуйста, как сделать команду по двойному нажатию одной клавиши?
К примеру F10

По типу такого...
Lua:
if isKeyJustPressed(VK_F10) then
 

Vintik

Через тернии к звёздам
Проверенный
1,556
1,027
Приветствую форумчане, подскажите пожалуйста, как сделать команду по двойному нажатию одной клавиши?
К примеру F10

Как вариант – чит-кодом
Lua:
if isKeyJustPressed(VK_F10) then
Lua:
if testCheat(FF) then -- двойное нажатие F, но так просто только с буквами 😁
    ...
end

Если нужно конкретно F10, то нужно заморочиться.
Lua:
local f10_time
local f10_click = 0

while true do
    if isKeyJustPressed(VK_F10) then
        if f10_click == 0 then
            f10_time = os.clock()
            f10_click = 1
        else
            if os.clock() - f10_time < 0.5 then
                f10_click = 0
                -- а тут писать то, что ты хочешь делать после двойного клика (вместо ...)
                ...
            end
            f10_time = os.clock()
        end
    end
end

-----------------------------------------------------------------------------------------------------------------------------------------------

закругление прогресс бара? это imgui?
 

enyag

Известный
345
12
Lua:
if testCheat(FF) then -- двойное нажатие F, но так просто только с буквами 😁
    ...
end

Если нужно конкретно F10, то нужно заморочиться.
Lua:
local f10_time
local f10_click = 0

while true do
    if isKeyJustPressed(VK_F10) then
        if f10_click == 0 then
            f10_time = os.clock()
            f10_click = 1
        else
            if os.clock() - f10_time < 0.5 then
                f10_click = 0
                -- а тут писать то, что ты хочешь делать после двойного клика (вместо ...)
                ...
            end
            f10_time = os.clock()
        end
    end
end

-----------------------------------------------------------------------------------------------------------------------------------------------


закругление прогресс бара? это imgui?
нет, это рендер
 

neverlane

t.me/neverlane00
Друг
1,010
1,159
как сделать через рендер такое закруглённое?
Посмотреть вложение 66196
Вообще это имгуи, вот в сниппетах было это
 
  • Нравится
Реакции: Vintik

Anton Nixon

Известный
474
48
почему оно все в кучу отображается, как переносить каждый ник на новую строку?
sa-mp-043.png

Lua:
------------------------------[ CHECKER ]------------------------------------
        if imgui_imbool.leader_online.v then -- лидеры в сети
            LeaderTitle = "Лидеры в сети:"
            renderFontDrawText(leadfont, LeaderTitle, check_X, check_Y, 0xffffffff)
            local count = 1
            local LeadText = ""
            for k, v in pairs(leaders) do
                leaderStreamed = sampGetCharHandleBySampPlayerId(idbynick(v.nick))
                leaderPaused = sampIsPlayerPaused(idbynick(v.nick))
                if sampIsPlayerConnected(idbynick(v.nick)) then
                    if leaderStreamed then
                        if leaderPaused then
                            leaderList = string.format("{%s}%i. %s [%i] {FF0000}[AFK] {808080}[#]", color_checker.leader[tonumber(v.org)], count, v.nick, idbynick(v.nick))
                        else
                            leaderList = string.format("{%s}%i. %s [%i] {808080}[#]", color_checker.leader[tonumber(v.org)], count, v.nick, idbynick(v.nick))
                        end
                    else
                        leaderList = string.format("{%s}%i. %s [%i]", color_checker.leader[tonumber(v.org)], count, v.nick, idbynick(v.nick))
                    end
                    count = count + 1
                    LeadText = string.format("%s\n", leaderList)
                end
                local string_lead_height = renderGetFontDrawHeight(leadfont)
                local new_Y = string_lead_height + 0.5
                lead_check_Y = check_Y + new_Y
                renderFontDrawText(leadfont, LeadText, check_X, lead_check_Y, 0xffffffff)
            end
            if LeadText:len() <= 0 then
                LeadText = '{808080}Лидеров в сети нет'
            end
            local string_lead_height = renderGetFontDrawHeight(leadfont)
            local new_Y = string_lead_height + 0.5
            lead_check_Y = check_Y + new_Y
            renderFontDrawText(leadfont, LeadText, check_X, lead_check_Y, 0xffffffff)
        end
-----------------------------------------------------------------------------
        if imgui_imbool.friend_online.v then -- друзья в сети
            local FriendTitle = "Друзья в сети:"
            if not imgui_imbool.leader_online.v then
                renderFontDrawText(friendfont, FriendTitle, check_X, check_Y, 0xffffffff)
            else
                local title_lead_height = renderGetFontDrawHeight(leadfont)
                local new_Y = title_lead_height * 1.3
                friend_title_Y = lead_check_Y + new_Y
                renderFontDrawText(friendfont, FriendTitle, check_X, friend_title_Y, 0xffffffff)
            end
            local FriendText = ""
            local count = 1
            for _, v in ipairs(friends) do
                friendStreamed = sampGetCharHandleBySampPlayerId(idbynick(v.nick))
                friendPaused = sampIsPlayerPaused(idbynick(v.nick))
                friendColor = sampGetPlayerColor(idbynick(v.nick))
                local aa, rr, gg, bb = explode_argb(friendColor)
                if sampIsPlayerConnected(idbynick(v.nick)) then
                    if friendStreamed then
                        if friendPaused then
                            friendList = string.format("{%0.2X%0.2X%0.2X}%i. %s [%i] {FF0000}[AFK] {808080}[#]", rr, gg, bb, count, v.nick, idbynick(v.nick))
                        else
                            friendList = string.format("{%0.2X%0.2X%0.2X}%i. %s [%i] {808080}[#]", rr, gg, bb, count, v.nick, idbynick(v.nick))
                        end
                    else
                        friendList = string.format("{%0.2X%0.2X%0.2X}%i. %s [%i]", rr, gg, bb, count, v.nick, idbynick(v.nick))
                    end
                    count = count + 1
                    FriendText = string.format("%s\n", friendList)
                end
                if not imgui_imbool.leader_online.v then
                    local string_lead_height = renderGetFontDrawHeight(leadfont)
                    local new_Y = string_lead_height + 0.5
                    friend_check_Y = check_Y + new_Y
                    renderFontDrawText(friendfont, FriendText, check_X, friend_check_Y, 0xffffffff)
                else
                    local string_title_friend_height = renderGetFontDrawHeight(friendfont)
                    local new_Y = string_title_friend_height + 0.5
                    friend_check_Y = friend_title_Y + new_Y
                    renderFontDrawText(friendfont, FriendText, check_X, friend_check_Y, 0xffffffff)
                end
            end
            if FriendText:len() <= 0 then
                FriendText = '{808080}Друзей в сети нет'
            end
            if not imgui_imbool.leader_online.v then
                local string_lead_height = renderGetFontDrawHeight(leadfont)
                local new_Y = string_lead_height + 0.5
                friend_check_Y = check_Y + new_Y
                renderFontDrawText(friendfont, FriendText, check_X, friend_check_Y, 0xffffffff)
            else
                local string_title_friend_height = renderGetFontDrawHeight(friendfont)
                local new_Y = string_title_friend_height + 0.5
                friend_check_Y = friend_title_Y + new_Y
                renderFontDrawText(friendfont, FriendText, check_X, friend_check_Y, 0xffffffff)
            end
        end
-----------------------------------------------------------------------------
        if imgui_imbool.admin_online.v then -- админы в сети
            AdminTitle = "Администраторы в сети:"
            if not imgui_imbool.leader_online.v and not imgui_imbool.friend_online.v then
                renderFontDrawText(adminfont, AdminTitle, check_X, check_Y, 0xffffffff)
            elseif imgui_imbool.leader_online.v and not imgui_imbool.friend_online.v then
                local new_Y = renderGetFontDrawHeight(leadfont)
                local new_coord_Y = new_Y * 1.3
                admin_title_check_Y = lead_check_Y + new_coord_Y
                renderFontDrawText(adminfont, AdminTitle, check_X, admin_title_check_Y, 0xffffffff)
            elseif not imgui_imbool.leader_online.v and imgui_imbool.friend_online.v then
                local new_Y = renderGetFontDrawHeight(friendfont)
                local new_coord_Y = new_Y * 1.3
                admin_title_check_Y = friend_check_Y + new_coord_Y
                renderFontDrawText(adminfont, AdminTitle, check_X, admin_title_check_Y, 0xffffffff)
            else
                local new_Y = renderGetFontDrawHeight(friendfont)
                local new_coord_Y = new_Y * 1.3
                admin_title_check_Y = friend_check_Y + new_coord_Y
                renderFontDrawText(adminfont, AdminTitle, check_X, admin_title_check_Y, 0xffffffff)
            end
            local AdminText = ""
            local count = 1
            for k, v in pairs(admins) do
                adminStreamed, _ = sampGetCharHandleBySampPlayerId(idbynick(v.nick))
                adminPaused = sampIsPlayerPaused(idbynick(v.nick))
                if sampIsPlayerConnected(idbynick(v.nick)) then
                    if adminStreamed then
                        if adminPaused then
                            adminList = string.format("{%s}%i. %s [%i] {FF0000}[AFK] {808080}[#]", color_checker.admin[tonumber(v.lvl)], count, v.nick, idbynick(v.nick))
                        else
                            adminList = string.format("{%s}%i. %s [%i] {808080}[#]", color_checker.admin[tonumber(v.lvl)], count, v.nick, idbynick(v.nick))
                        end
                    else
                        adminList = string.format("{%s}%i. %s [%i]", color_checker.admin[tonumber(v.lvl)], count, v.nick, idbynick(v.nick))
                    end
                    count = count + 1
                    AdminText = string.format("%s\n", adminList)
                end
                if not imgui_imbool.leader_online.v and not imgui_imbool.friend_online.v then
                    local new_Y = renderGetFontDrawHeight(adminfont)
                    local new_coord_Y = new_Y + 0.5
                    admin_check_Y = check_Y + new_coord_Y
                    renderFontDrawText(adminfont, AdminText, check_X, admin_check_Y, 0xffffffff)
                else
                    local new_Y = renderGetFontDrawHeight(adminfont)
                    local new_coord_Y = new_Y + 0.5
                    admin_check_Y = admin_title_check_Y + new_coord_Y
                    renderFontDrawText(adminfont, AdminText, check_X, admin_check_Y, 0xffffffff)
                end
            end
            if AdminText:len() <= 0 then
                AdminText = '{808080}Администраторов в сети нет'
            end
            if not imgui_imbool.leader_online.v and not imgui_imbool.friend_online.v then
                local new_Y = renderGetFontDrawHeight(adminfont)
                local new_coord_Y = new_Y + 0.5
                admin_check_Y = check_Y + new_coord_Y
                renderFontDrawText(adminfont, AdminText, check_X, admin_check_Y, 0xffffffff)
            else
                local new_Y = renderGetFontDrawHeight(adminfont)
                local new_coord_Y = new_Y + 0.5
                admin_check_Y = admin_title_check_Y + new_coord_Y
                renderFontDrawText(adminfont, AdminText, check_X, admin_check_Y, 0xffffffff)
            end
        end
-----------------------------------------------------------------------------
Lua:
local leaders = {}

file = io.open(getGameDirectory() .. "\\moonloader\\AdminTools by Azumi ^_^\\leaders.txt", "r+")
    for line in file:lines() do
        local nick, org = line:match('(.+) (%d+)')
        leaders[#leaders+1] = {nick = nick, org = org} -- заполнение массива
    end
file:close()
 
Последнее редактирование:

Fott

Простреленный
3,461
2,378
почему оно все в кучу отображается, как переносить каждый ник на новую строку?
Посмотреть вложение 66219
Lua:
------------------------------[ CHECKER ]------------------------------------
        if imgui_imbool.leader_online.v then -- лидеры в сети
            LeaderTitle = "Лидеры в сети:"
            renderFontDrawText(leadfont, LeaderTitle, check_X, check_Y, 0xffffffff)
            local count = 1
            local LeadText = ""
            for k, v in pairs(leaders) do
                leaderStreamed = sampGetCharHandleBySampPlayerId(idbynick(v.nick))
                leaderPaused = sampIsPlayerPaused(idbynick(v.nick))
                if sampIsPlayerConnected(idbynick(v.nick)) then
                    if leaderStreamed then
                        if leaderPaused then
                            leaderList = string.format("{%s}%i. %s [%i] {FF0000}[AFK] {808080}[#]", color_checker.leader[tonumber(v.org)], count, v.nick, idbynick(v.nick))
                        else
                            leaderList = string.format("{%s}%i. %s [%i] {808080}[#]", color_checker.leader[tonumber(v.org)], count, v.nick, idbynick(v.nick))
                        end
                    else
                        leaderList = string.format("{%s}%i. %s [%i]", color_checker.leader[tonumber(v.org)], count, v.nick, idbynick(v.nick))
                    end
                    count = count + 1
                    LeadText = string.format("%s\n", leaderList)
                end
                local string_lead_height = renderGetFontDrawHeight(leadfont)
                local new_Y = string_lead_height + 0.5
                lead_check_Y = check_Y + new_Y
                renderFontDrawText(leadfont, LeadText, check_X, lead_check_Y, 0xffffffff)
            end
            if LeadText:len() <= 0 then
                LeadText = '{808080}Лидеров в сети нет'
            end
            local string_lead_height = renderGetFontDrawHeight(leadfont)
            local new_Y = string_lead_height + 0.5
            lead_check_Y = check_Y + new_Y
            renderFontDrawText(leadfont, LeadText, check_X, lead_check_Y, 0xffffffff)
        end
-----------------------------------------------------------------------------
        if imgui_imbool.friend_online.v then -- друзья в сети
            local FriendTitle = "Друзья в сети:"
            if not imgui_imbool.leader_online.v then
                renderFontDrawText(friendfont, FriendTitle, check_X, check_Y, 0xffffffff)
            else
                local title_lead_height = renderGetFontDrawHeight(leadfont)
                local new_Y = title_lead_height * 1.3
                friend_title_Y = lead_check_Y + new_Y
                renderFontDrawText(friendfont, FriendTitle, check_X, friend_title_Y, 0xffffffff)
            end
            local FriendText = ""
            local count = 1
            for _, v in ipairs(friends) do
                friendStreamed = sampGetCharHandleBySampPlayerId(idbynick(v.nick))
                friendPaused = sampIsPlayerPaused(idbynick(v.nick))
                friendColor = sampGetPlayerColor(idbynick(v.nick))
                local aa, rr, gg, bb = explode_argb(friendColor)
                if sampIsPlayerConnected(idbynick(v.nick)) then
                    if friendStreamed then
                        if friendPaused then
                            friendList = string.format("{%0.2X%0.2X%0.2X}%i. %s [%i] {FF0000}[AFK] {808080}[#]", rr, gg, bb, count, v.nick, idbynick(v.nick))
                        else
                            friendList = string.format("{%0.2X%0.2X%0.2X}%i. %s [%i] {808080}[#]", rr, gg, bb, count, v.nick, idbynick(v.nick))
                        end
                    else
                        friendList = string.format("{%0.2X%0.2X%0.2X}%i. %s [%i]", rr, gg, bb, count, v.nick, idbynick(v.nick))
                    end
                    count = count + 1
                    FriendText = string.format("%s\n", friendList)
                end
                if not imgui_imbool.leader_online.v then
                    local string_lead_height = renderGetFontDrawHeight(leadfont)
                    local new_Y = string_lead_height + 0.5
                    friend_check_Y = check_Y + new_Y
                    renderFontDrawText(friendfont, FriendText, check_X, friend_check_Y, 0xffffffff)
                else
                    local string_title_friend_height = renderGetFontDrawHeight(friendfont)
                    local new_Y = string_title_friend_height + 0.5
                    friend_check_Y = friend_title_Y + new_Y
                    renderFontDrawText(friendfont, FriendText, check_X, friend_check_Y, 0xffffffff)
                end
            end
            if FriendText:len() <= 0 then
                FriendText = '{808080}Друзей в сети нет'
            end
            if not imgui_imbool.leader_online.v then
                local string_lead_height = renderGetFontDrawHeight(leadfont)
                local new_Y = string_lead_height + 0.5
                friend_check_Y = check_Y + new_Y
                renderFontDrawText(friendfont, FriendText, check_X, friend_check_Y, 0xffffffff)
            else
                local string_title_friend_height = renderGetFontDrawHeight(friendfont)
                local new_Y = string_title_friend_height + 0.5
                friend_check_Y = friend_title_Y + new_Y
                renderFontDrawText(friendfont, FriendText, check_X, friend_check_Y, 0xffffffff)
            end
        end
-----------------------------------------------------------------------------
        if imgui_imbool.admin_online.v then -- админы в сети
            AdminTitle = "Администраторы в сети:"
            if not imgui_imbool.leader_online.v and not imgui_imbool.friend_online.v then
                renderFontDrawText(adminfont, AdminTitle, check_X, check_Y, 0xffffffff)
            elseif imgui_imbool.leader_online.v and not imgui_imbool.friend_online.v then
                local new_Y = renderGetFontDrawHeight(leadfont)
                local new_coord_Y = new_Y * 1.3
                admin_title_check_Y = lead_check_Y + new_coord_Y
                renderFontDrawText(adminfont, AdminTitle, check_X, admin_title_check_Y, 0xffffffff)
            elseif not imgui_imbool.leader_online.v and imgui_imbool.friend_online.v then
                local new_Y = renderGetFontDrawHeight(friendfont)
                local new_coord_Y = new_Y * 1.3
                admin_title_check_Y = friend_check_Y + new_coord_Y
                renderFontDrawText(adminfont, AdminTitle, check_X, admin_title_check_Y, 0xffffffff)
            else
                local new_Y = renderGetFontDrawHeight(friendfont)
                local new_coord_Y = new_Y * 1.3
                admin_title_check_Y = friend_check_Y + new_coord_Y
                renderFontDrawText(adminfont, AdminTitle, check_X, admin_title_check_Y, 0xffffffff)
            end
            local AdminText = ""
            local count = 1
            for k, v in pairs(admins) do
                adminStreamed, _ = sampGetCharHandleBySampPlayerId(idbynick(v.nick))
                adminPaused = sampIsPlayerPaused(idbynick(v.nick))
                if sampIsPlayerConnected(idbynick(v.nick)) then
                    if adminStreamed then
                        if adminPaused then
                            adminList = string.format("{%s}%i. %s [%i] {FF0000}[AFK] {808080}[#]", color_checker.admin[tonumber(v.lvl)], count, v.nick, idbynick(v.nick))
                        else
                            adminList = string.format("{%s}%i. %s [%i] {808080}[#]", color_checker.admin[tonumber(v.lvl)], count, v.nick, idbynick(v.nick))
                        end
                    else
                        adminList = string.format("{%s}%i. %s [%i]", color_checker.admin[tonumber(v.lvl)], count, v.nick, idbynick(v.nick))
                    end
                    count = count + 1
                    AdminText = string.format("%s\n", adminList)
                end
                if not imgui_imbool.leader_online.v and not imgui_imbool.friend_online.v then
                    local new_Y = renderGetFontDrawHeight(adminfont)
                    local new_coord_Y = new_Y + 0.5
                    admin_check_Y = check_Y + new_coord_Y
                    renderFontDrawText(adminfont, AdminText, check_X, admin_check_Y, 0xffffffff)
                else
                    local new_Y = renderGetFontDrawHeight(adminfont)
                    local new_coord_Y = new_Y + 0.5
                    admin_check_Y = admin_title_check_Y + new_coord_Y
                    renderFontDrawText(adminfont, AdminText, check_X, admin_check_Y, 0xffffffff)
                end
            end
            if AdminText:len() <= 0 then
                AdminText = '{808080}Администраторов в сети нет'
            end
            if not imgui_imbool.leader_online.v and not imgui_imbool.friend_online.v then
                local new_Y = renderGetFontDrawHeight(adminfont)
                local new_coord_Y = new_Y + 0.5
                admin_check_Y = check_Y + new_coord_Y
                renderFontDrawText(adminfont, AdminText, check_X, admin_check_Y, 0xffffffff)
            else
                local new_Y = renderGetFontDrawHeight(adminfont)
                local new_coord_Y = new_Y + 0.5
                admin_check_Y = admin_title_check_Y + new_coord_Y
                renderFontDrawText(adminfont, AdminText, check_X, admin_check_Y, 0xffffffff)
            end
        end
-----------------------------------------------------------------------------
Скинь массив с лидерами