Попытался сделать два окна имгуи, не получилось, хелп плиз

William_Roses

Активный
Автор темы
260
26
В навзании все описал, вот код:
Admin Tools:
script_name ("ATmaze") -- название скрипта
script_author ("K.San") -- автор скрипта

require "lib.moonloader" -- поиск библиотеки
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local samp = require 'lib.samp.events'
local text_buffer = imgui.ImBuffer(256)
local tag = "[Admin Tools]: " -- тэг
local main_color = 0x5A90CE
local second_color = 0x518fd1
local main_color_text = "[5A90CE]"
local white_color = "[FFFFFF]"
local color_dialog = 0xDEB887
local dialogArr = {"Начинаю работать по вашей ЖБ", "Попытаться помочь", "Слежу за нарушителем", "Передать репорт"}
local dialogStr = ""

local main_window_state = imgui.ImBool(false)
local secondary_window_state = imgui.ImBool(false)

function ClearChat()
    local memory = require "memory"
    memory.fill(sampGetChatInfoPtr() + 306, 0x0, 25200)
    memory.write(sampGetChatInfoPtr() + 306, 25562, 4, 0x0)
    memory.write(sampGetChatInfoPtr() + 0x63DA, 1, 1)
end

for _, str in ipairs(dialogArr) do
    dialogStr = dialogStr .. str .. "\n"
end

local reasons = {'ban', 'kick', 'mute', 'sban', "slap", "warn", "offwarn", "offmute", "offban", "pm", "givegun", "sethp", "flip", "setsp", 'prison', 'jail', 'offprison', 'offjail'}

function main()
    while not  isSampAvailable() do wait(100) end
    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
    name = sampGetPlayerNickname(id)
    if name ~= "Kenshi_San" then
        sampAddChatMessage("Вы не купили эту версию {C90303}Admin Tools{FFFFFF}! Admin Tools можно купить в оф. группе вк: {5A90CE}vk.com/atmaze", -1)
        sampAddChatMessage("Вы не купили эту версию {C90303}Admin Tools{FFFFFF}! Admin Tools можно купить в оф. группе вк: {5A90CE}vk.com/atmaze", -1)
        sampAddChatMessage("Вы не купили эту версию {C90303}Admin Tools{FFFFFF}! Admin Tools можно купить в оф. группе вк: {5A90CE}vk.com/atmaze", -1)
        sampAddChatMessage("Вы не купили эту версию {C90303}Admin Tools{FFFFFF}! Admin Tools можно купить в оф. группе вк: {5A90CE}vk.com/atmaze", -1)
        sampAddChatMessage("Вы не купили эту версию {C90303}Admin Tools{FFFFFF}! Admin Tools можно купить в оф. группе вк: {5A90CE}vk.com/atmaze", -1)
        thisScript():unload()
    end
    sampRegisterChatCommand("mz", cmd_mz)
    sampRegisterChatCommand("test", cmd_test)

    imgui.Process = false


    sampRegisterChatCommand('pr', function(id)
        sampSendChat(string.format('/pm %s Уважаемый игрок, передал ваш репорт администратору!', id))
    end)
    sampRegisterChatCommand('sn', function(id)
        lua_thread.create(function()
        sampSendChat(string.format('/pm %s Уважаемый игрок, слежу за нарушителем!', id))
        wait(1000)
        sampShowDialog(51, "Авто-Слежка", "Введите ID нарушителя", "Следить", "Отмена", 1)
    end)
end)
    sampRegisterChatCommand('pmch', function(id)
        lua_thread.create(function()
        sampSendChat(string.format('/pm %s Уважаемый игрок, сейчас попытаюсь вам помочь!', id))
        wait(1150)
        sampSendChat(string.format('/re %s', id))
    end)
end)
    sampRegisterChatCommand('of', function(id)
        sampSendChat(string.format('/pm %s Уважаемый игрок, пожалуйста прекратите оффтопить! 1/2', id))
    end)
    sampRegisterChatCommand('of2', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Уважаемый игрок, пожалуйста, в следующий раз не оффтопьте! 2/2', id))
            wait(1200)
            sampSendChat(string.format('/mute %s 5 offtop', id))
        end)
    end)
    sampRegisterChatCommand('tb', function(id)
        sampSendChat(string.format('/pm %s Уважаемый игрок, ожидайте обзвона, вас оповестят в чате, без обзвона лидерку не выдаем!', id))
    end)
    sampRegisterChatCommand('npa', function(id)
    sampSendChat(string.format('/awarn %s Нарушение Правил Администрации', id))
    end)
    sampRegisterChatCommand('rput', function(id)
        sampSendChat(string.format('/pm %s Уважаемый игрок, сделайте это РП путем! Администратор не может вмешиваться в РП процесс!', id))
    end)
    sampRegisterChatCommand('nv', function(id)
        sampSendChat(string.format('/pm %s Уважаемый игрок, не выдаем!', id))
    end)
    sampRegisterChatCommand('cheat', function(id)
        sampSendChat(string.format('/warn %s Использование Чит-Программ', id))
    end)
    sampRegisterChatCommand('vcheat', function(id)
        sampSendChat(string.format('/ban %s 7 Вред.Читы', id))
    end)
    sampRegisterChatCommand('caps', function(id)
        sampSendChat(string.format('/mute %s 5 Caps Lock', id))
    end)
    sampRegisterChatCommand('osk', function(id)
        sampSendChat(string.format('/mute %s 10 Оск. Адм./Игроков', id))
    end)
    sampRegisterChatCommand('mq', function(id)
        sampSendChat(string.format('/ban %s 7 Упом. Родни', id))
    end)
    sampRegisterChatCommand('3', function(id)
        sampSendChat(string.format('/banan %s Слив/Реклама', id))
    end)
    sampRegisterChatCommand('flood', function(id)
        sampSendChat(string.format('/mute %s 5 flood', id))
    end)
    sampRegisterChatCommand('relog', function(id)
        sampSendChat(string.format('/sban %s relog', id))
    end)
    sampRegisterChatCommand('k', function(id)
        sampSendChat(string.format('/vadgo %s ', id))
    end)
    sampRegisterChatCommand('kk', function(id)
        sampSendChat(string.format('/evad %s relog', id))
    end)
    sampRegisterChatCommand('cop', function(id)
        sampSendChat(string.format('/prison %s 5 Cop in Ghetto', id))
    end)
    sampRegisterChatCommand('afjb', function(id)
        sampSendChat(string.format('/awarn %s 5 Жалоба на Форуме', id))
    end)
    sampRegisterChatCommand('kfjb', function(id)
        sampSendChat(string.format('/kban %s 10 Жалоба на Форуме', id))
    end)
    sampRegisterChatCommand('dm', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/prison %s 10 DeathMatch', id))
            wait(1200)
            sampSendChat(string.format('/pm %s DM - Death Match, убийство игрока без причины. Вы были наказаны за DM.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('kb', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/kban %s 5 Некк. | Ложный ответ', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Вы получили бан команд за ложный/неккоректный ответ на репорт.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('aa', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Здравствуйте. Вы получили наказание за жалобу на форуме.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с нарушением, оставьте аппеляцию на модератора в разделе:', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Жалобы на Администрацию/Игроков/Лидеров > Отправить апелляцию на решение модератора: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('eva', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/kban %s 5 /evad | /vadgo', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Вы получили бан команд за ошибки/мг, которые вы пропустили в /vad.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('db', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/prison %s 10 DriveBy', id))
            wait(1200)
            sampSendChat(string.format('/pm %s DriveBy - убийство игрока автомобилем. Вы были наказаны за DB.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('tk', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/prison %s 10 Team Kill', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Team Kill - убийство игрока своей же фракции. Вы были наказаны за TK.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('forum', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/gethere %s', id))
            wait(2000)
            sampSendChat(string.format('/freeze %s', id))
            wait(1000)
            sampSendChat(string.format('Здравствуйте. Я Администратор Kenshi_San.', id))
            wait(1200)
            sampSendChat(string.format('Я обращаюсь к Вам по той причине, что на Вас поступила жалоба.', id))
            wait(1200)
            sampSendChat(string.format('Данная жалоба находиться в разделе: ', id))
            wait(1200)
            sampSendChat(string.format('Жалобы на Администрацию/Игроков/Лидеров > Отправить жалобу на Администратора ', id))
            wait(1200)
            sampSendChat(string.format('У Вас имеются доказательства на нарушения игрока? ', id))
            wait(1200)
            sampShowDialog(20, "Ожидайте ответа от игрока", "У игрока имеются доказательства?", "Имеются", "Не имеются", 0)
        end)
    end)
    sampRegisterChatCommand('sk', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/prison %s 10 Spawn Kill', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Spawn Kill - убийство игроков на точке спавна. Вы были наказаны за SK.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('mg', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/mute %s 1 MetaGaming', id))
            wait(1200)
            sampSendChat(string.format('/pm %s MetaGaming - Использование OOC ин-ции в IC чат. Вы были наказаны за MG.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('bb', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/makeadmin %s 1', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Поздравляю Вас. Вы получили права администратора 1 уровня.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Для того, чтобы авторизироваться в админке, введите /alogin и пароль!', id))
            wait(1000)
            sampSendChat(string.format('/pm %s Ваш ADM пароль будет сообщен через пару секунд. Приятного дня!', id))
        end)
    end)
    sampRegisterChatCommand('pmg', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Ув.Игрок, я Вам помог. Надеюсь Вы остались довольны. Приятного дня!', id))
        end)
    end)
    sampRegisterChatCommand('afk', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Ув.Игрок, Вы подозреваетесь в AFK без ESC.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если вы тут, просьба написать "+" в чат!', id))
            wait(1200)
            sampSendChat(string.format('/pm %s В противном случае я буду вынужден Вас кикнуть!', id))
        end)
    end)
    sampRegisterChatCommand('nak2', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Жалобу на администратора вы можете оставить на нашем форуме - forum.maze-rp.ru.', id))
        end)
    end)
    sampRegisterChatCommand('admm', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Здравствуйте. На нашем проекте права администратора можно получить при:', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Вводе команды /adm в игровой чат. Быть "Пиарщиком", отстоять лидерку, сотрудничать с проектом.', id))
        end)
    end)
    sampRegisterChatCommand('nrp', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Ув.Игрок, просьба сменить ваш NonRP nick на РП: Name_Surname! ', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Это позволит Вам полноценно играть на нашем проекте...', id))
            wait(1200)
            sampSendChat(string.format('/pm %s ...А также успешно трудоустроиться в любую фракцию!', id))
        end)
    end)
    sampRegisterChatCommand('lid', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Ув.Игрок, чтобы получить лидерку, необходимо: ', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Гетто: пройти обзвон. Мафия, Гос: оставить заявку на форуме, пройти обзвон!', id))
            wait(1200)
            sampSendChat(string.format('/pm %s ...А также успешно трудоустроиться в любую фракцию!', id))
        end)
    end)
    sampRegisterChatCommand('админка', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/agm', id))
            wait(1200)
            sampSendChat(string.format('/lammo', id))
            wait(1200)
            sampSendChat(string.format('/btrack', id))
            wait(1200)
            sampSendChat(string.format('/showmc', id))
            wait(1200)
            sampSendChat(string.format('/showbc', id))
            wait(1000)
            sampSendChat(string.format('/a [Статус] На данный момент свободен. Режим: ожидание!', id))
            wait(1200)
        end)
    end)
    sampRegisterChatCommand('amg', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/mute %s 1 MG || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('acheat', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/warn %s Cheats || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('avcheat', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/ban %s 7 Vred. Cheats || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('dma', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/prison %s 10 DeathMatch || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('atk', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/prison %s 10 TeamKill || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('ask', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/prison %s 10 SpawnKill || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('amq', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/ban %s 7 Упом.Родни || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('aeva', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/kban %s 5 /evad | /vadgo || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('arelog', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/sban %s relog || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('adb', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/prison %s 10 DriveBy || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('nak', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/pm %s Вы были наказаны по просьбе администратора ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('acop', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/prison %s 5 Cop in Ghetto || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('nak1', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/pm %s Если вы не согласны с наказанием, пишите жалобу на ADM ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('st1', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/a [Статус] Неактивен. Начинаю работать по жалобе игрока [ ID: %s] Nick: ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('st2', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/a [Статус] Активен. Закончил работать по жалобе игрока [ ID: %s] Nick: ' .. adminname, idnar))
    end)
   



    sampRegisterChatCommand("mzr", cmd_mzr)
    sampRegisterChatCommand("mzd", cmd_mzd)
    sampRegisterChatCommand("mda", cmd_mda)
    sampRegisterChatCommand("update", cmd_update)
    sampRegisterChatCommand("pozdr", cmd_pozdr)

    wait(1)
    sampAddChatMessage(tag .. "{ff0505}Admin Tools by K.San | D.Kot запущен [V.2.1.2]", -1) -- сообщение в чат при заходе
    sampAddChatMessage(tag .. "{ff0505}Чтобы ознакомиться с функциями введите /mz", -1) -- тоже самое что и предыдущее
    sampAddChatMessage(tag .. "{ff0505}Данный скрипт создан для упрощения работы администрации. Плагиат запрещен!", -1) -- тоже самое что и предыдущее

    while true do
        wait(0)

        if isKeyJustPressed(VK_F5) then
            sampSendChat("/gotomark")
        end

        local result, button, list, input = sampHasDialogRespond(10) -- /dialog0 (MsgBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                sampAddChatMessage("Приятной игры!", color_dialog)
            end
        end


        local result, button, list, input = sampHasDialogRespond(20) -- /dialog0 (MsgBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                sampSendChat("Тогда попрошу вас предоставить их на форум. Приятной игры!")
            else -- если нажата вторая кнопка (Закрыть)
                sampSendChat("Так как у вас нету доказательств, по правилам я обязан выдать вам наказание.")
            end
        end


        local result, button, list, input = sampHasDialogRespond(45) -- /dialog0 (MsgBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                sampAddChatMessage("Приятной игры!", main_color)
            else -- если нажата вторая кнопка (Закрыть)
                sampSendChat("")
            end
        end


        local result, button, list, input = sampHasDialogRespond(11) -- /dialog1 (InputBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                sampSendChat("/a Занял /o")
                wait(1200)
                sampSendChat("/o [INFO] Уважаемые игроки нашего сервера, вся администрация поздравляет вас с " .. input, color_dialog)
                wait(1200)
                sampSendChat("/a Освободил /o")
            else -- если нажата вторая кнопка (Закрыть)
                sampAddChatMessage("Приятной игры!", main_color)
            end
        end


        local result, button, list, input = sampHasDialogRespond(51) -- /dialog1 (InputBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                sampSendChat("/re " .. input)
            else -- если нажата вторая кнопка (Закрыть)
                sampAddChatMessage("Приятной игры!", main_color)
            end
        end


        local result, button, list, input = sampHasDialogRespond(12) -- /dialog2 (ListBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                if list == 0 then
                    sampShowDialog(13, "Меню", "Введите ID Игрока", "Выбрать", "Закрыть", 1)
                elseif list == 1 then
                    sampAddChatMessage("В диалоге с ID 12 выбран пункт {FFFFFF}" .. list .. " и его содержимое: {FF00FF}" .. dialogArr[list+1], color_dialog)
                elseif list == 2 then
                    sampAddChatMessage("В диалоге с ID 12 выбран пункт {FFFFFF}" .. list .. " и его содержимое: {FF00FF}" .. dialogArr[list+1], color_dialog)
                elseif list == 3 then
                    sampAddChatMessage("В диалоге с ID 12 выбран пункт {FFFFFF}" .. list .. " и его содержимое: {FF00FF}" .. dialogArr[list+1], color_dialog)
                end
            else -- если нажата вторая кнопка (Закрыть)
                sampAddChatMessage("Вы закрыли диалог с ID 12", color_dialog)
            end
        end


        local result, button, list, input = sampHasDialogRespond(13) -- /dialog3 (PasswordBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                sampSendChat("/pm " .. input, color_dialog)
            else -- если нажата вторая кнопка (Закрыть)
                sampAddChatMessage("Вы закрыли диалог с ID 13", color_dialog)
            end
        end


        local result, button, list, input = sampHasDialogRespond(14) -- /dialog4 (TabListBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                if list == 0 then
                    sampAddChatMessage("В диалоге с ID 14 выбран пункт {FFFFFF}" .. list, color_dialog)
                elseif list == 1 then
                    sampAddChatMessage("В диалоге с ID 14 выбран пункт {FFFFFF}" .. list, color_dialog)
                elseif list == 2 then
                    sampAddChatMessage("В диалоге с ID 14 выбран пункт {FFFFFF}" .. list, color_dialog)
                elseif list == 3 then
                    sampAddChatMessage("В диалоге с ID 14 выбран пункт {FFFFFF}" .. list, color_dialog)
                end
            else -- если нажата вторая кнопка (Закрыть)
                sampAddChatMessage("Вы закрыли диалог с ID 14", color_dialog)
            end
        end


        local result, button, list, input = sampHasDialogRespond(15) -- /dialog5 (TabListHeaderBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                if list == 0 then
                    sampAddChatMessage("В диалоге с ID 15 выбран пункт {FFFFFF}" .. list, color_dialog)
                elseif list == 1 then
                    sampAddChatMessage("В диалоге с ID 15 выбран пункт {FFFFFF}" .. list, color_dialog)
                elseif list == 2 then
                    sampAddChatMessage("В диалоге с ID 15 выбран пункт {FFFFFF}" .. list, color_dialog)
                elseif list == 3 then
                    sampAddChatMessage("В диалоге с ID 15 выбран пункт {FFFFFF}" .. list, color_dialog)
                end
            else -- если нажата вторая кнопка (Закрыть)
                sampAddChatMessage("Вы закрыли диалог с ID 15", color_dialog)
            end
        end

    end
end

function cmd_mz(arg)
    main_window_state.v = not main_window_state.v
    imgui.Process = main_window_state.v
end

function cmd_test(arg)
    secondary_window_state.v = not secondary_window_state.v
    imgui.Process = secondary_window_state.v
end

function samp.onServerMessage(color, text)
    if text:find("подозревается") then
    sampAddChatMessage("{FFFFFF}[Admin Tools]: Кто-то подозревается в {C90303}читерстве{FFFFFF}/{C90303}взломе!")  -- body
    sampAddChatMessage("{FFFFFF}[Admin Tools]: Кто-то подозревается в {C90303}читерстве{FFFFFF}/{C90303}взломе!")  -- body
    sampAddChatMessage("{FFFFFF}[Admin Tools]: Кто-то подозревается в {C90303}читерстве{FFFFFF}/{C90303}взломе!")  -- body
    end
end

function forma()
    if active_report then
        lua_thread.create(function()
            lasttime = os.time()
            lasttimes = 0
            time_out = 10
            while lasttimes < time_out do
                lasttimes = os.time() - lasttime
                wait(0)
                printStyledString("ADMIN FORM " .. time_out - lasttimes .. " WAIT", 1000, 4)
                if lasttimes == time_out then
                    active_report = false
                    printStyledString("Forma skipped", 1000, 4)
                end
            end
        end)
    else  
        if isKeyJustPressed(VK_P) and not sampIsChatInputActive() and not sampIsDialogActive() then
            printStyledString('You can’t skip the form temporarily', 1000, 4)
        end
    end
end

function cmd_update(arg)
    if #arg == 0 then
        sampShowDialog(10, "Нововведения в обновлении 2.1.2", "Усовершенствована команда /forum\nКоманда /oskr была изменена на /mq\nКоманда /aoskr была изменена на /amq\nВид команды /mzr, /mzd, /mda был изменен\nБыл обновлен список команд в /mzr|/mzd|/mda\nДобавлена команда /pozdr, она поздравляет игроков с праздником, который вы ввели\nИсправлена ошибка в бинде INFO в /o\nДобавлена авто-слежка за игроком после команды /pmch\nДобавлена авто-слежка после команды /sn", "Закрыть", "", 0)
    end
   
end
function cmd_mzr(arg)
    if #arg == 0 then
        sampShowDialog(10, "{08F800}Список ответов на репорт:", "{5A90CE}/pr [ID] - написать игроку в /pm то что вы передали report администрации\n{5A90CE}/sn [ID] - написать игроку в /pm то что вы следите за нарушителем\n{5A90CE}pmch [ID] - написать игроку в /pm то что вы попытаетесь ему помочь\n{5A90CE}/of [ID] - написать игроку в /pm чтобы он не оффтопил 1/2\n{5A90CE}/of2 [ID] - написать игроку в /pm чтобы он не оффтопил 2/2, и то что он получает бан чата за офф топ\n{5A90CE}/tb [ID] - написать игроку в /pm то что можно встать на лидерку только по обзвону\n{5A90CE}/rput [ID] - написать игроку в /pm чтобы он сделал это РП путем\n{5A90CE}/nv [ID] - написать игроку в /pm то что не выдаем\n{5A90CE}/pmg [ID] - написать игроку в /pm то что вы ему помогли\n{5A90CE}/nak1 [ID игрока] [ID админа] - написать игроку в /pm то что если он не согласен с наказанием то пусть пишет жалобу на админа\n{5A90CE}/nak2 [ID] - написать игроку в /pm то что жалобу на администратора можно написать на форуме\n{5A90CE}/afk [ID] = написать игроку в /pm то что если он афк без esc, то вы будете вынуждены его кикнуть\n{5A90CE}/bb [ID] - назначить игрока админом 1 лвла и поздравить в /pm\n{5A90CE}/k [ID] - отправить vip объявление игрока\n{5A90CE}/kk [ID] - редактировать vip объявление игрока\n{5A90CE}/st1 [ID] [Тоже ID игрока] - написать в /a то что вы начали работать по жалобе игрока\n{5A90CE}/st2 [ID] [Тоже ID игрока] - написать в /a то что вы закончили работать по жалобе игрока\n{5A90CE}/lid [ID] - сказать игроку в /pm что нужно, чтобы встать на лидерку\n{5A90CE}/nrp [ID] - Написать просьбу в /pm, чтобы игрок сменил НОН рп ник\n{5A90CE}/админка - ввести все нужные команды после /alogin", "Закрыть", "", 0)
    end
   
end
function cmd_mzd(arg)
    if #arg == 0 then
        sampShowDialog(10, "{08F800}Список наказаний:", "{E3E630}/dm [ID] - посадить игрока за дм в prison\n{E3E630}/db [ID] - посадить игрока за дб в prison\n{E3E630}/tk [ID] - посадить игрока за тк в prison\n{E3E630}/sk [ID] - посадить игрока за ск в prison\n{C90303}/cheat [ID] - заварнить игрока за читы\n{C90303}/vcheat [ID} - забанить игрока за вред.читы на 7 дней\n{E3E630}/caps [ID] - замутить игрока за капс на 5 минут\n{E3E630}/osk [ID] - замутить игрока за оск на 10 минут\n{C90303}/mq [ID] - забанить игрока на 7 дней за упом. родни\n{E3E630}/flood [ID] - замутить игрока за флуд на 5 минут\n{E3E630}/cop [ID] - посадить игрока за копа в гетто в /prison\n{E3E630}/kb [ID] - выдать бан команд за ложный ответ в репорт\n{E3E630}/eva [ID] - выдать бан команд за ошибки в /vad\n{E3E630}/forum [ID] - тпешнуть игрока/администратора, зафризить, и сказать то что на него поступила Жалоба\n{E3E630}/kb [ID] - выдать /kban за некк./ложный ответ\n{E3E630}/kfjb [ID] - выдать /kban за жалобу на форуме\n{C90303}/afjb [ID] - выдать /awarn за жалобу на форуме\n{C90303}/relog [ID] - выдать /sban с причиной relog\n{C90303}/npa [ID] - Выдать /awarn с причиной Нарушение Правил Администрации", "Закрыть", "", 0)
    end
   
end
function cmd_mda(arg)
    if #arg == 0 then
        sampShowDialog(10, "{08F800}Список наказаний от лица другого админа:", "{C90303}/acheat [ID игрока] [ID админа] - выдать /warn за читы от лица другого админа\n{C90303}/avcheat [ID игрока] [ID админа] - выдать /ban за вред.читы от лица другого админа\n{E3E630}/dma [ID игрока] [ID админа] - посадить в /prison за дм от лица другого админа\n{E3E630}/atk [ID игрока] [ID админа] - посадить в /prison за тк от лица другого админа\n{E3E630}/ask[ID игрока] [ID админа] - посадить в /prison за ск от лица другого админа\n{C90303}/amq [ID игрока] [ID админа] - выдать /ban за Упом.Родни от лица другого админа\n{E3E630}/aeva [ID игрока] [ID админа] - выдать /kban за /evad | /vadgo\n{E3E630}/acop [ID игрока] [ID админа] - посадить игрока в деморган за копа в гетто от имени другого администратора\n{C90303}/arelog [ID] [ID админа] - выдать /sban c причиной relog от лица другого админа", "Закрыть", "", 0)
    end
   
end
function cmd_pozdr(arg)
    if #arg == 0 then
        sampShowDialog(11, "Поздравить игроков с праздником", "Введите название праздника(пример: 9 мая)", "Поздравить", "Отмена", 1)
    end
   
end

function imgui.OnDrawFrame()

    if not main_window_state.v and not secondary_window_state.v then
        imgui.Process = false
    end

    if main_window_state.v then
        local ex, ey = getScreenResolution()
        if isKeyJustPressed(VK_U) and not sampIsChatInputActive() and not sampIsDialogActive() then
            imgui.ShowCursor = not imgui.ShowCursor
        end
        imgui.SetNextWindowPos(imgui.ImVec2(ex / 2, ey / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(600, 500), imgui.Cond.FirstUseEver)
        imgui.Begin(u8"Admin Tools Maze Role Play", main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
        if imgui.CollapsingHeader(u8"Мероприятия") then
            if imgui.Button(u8'Объявить о начале мероприятия "Король Дигла"') then
                lua_thread.create(function()
                    sampSendChat("/a Занял /aad")
                    wait(1200)
                    sampSendChat('/aad [МП] Сейчас пройдет мероприятие "Король Дигла". Желающие >> /gotomp')
                    wait(1200)
                    sampSendChat('/mp Король Дигла')
                    wait(1200)
                    sampSendChat("/a Освободил /aad")
                end)
            end
            if imgui.Button(u8'Объявить о начале мероприятия "Прятки"') then
                lua_thread.create(function()
                    sampSendChat("/a Занял /aad")
                    wait(1200)
                    sampSendChat('/aad [МП] Сейчас пройдет мероприятие "Прятки". Желающие >> /gotomp')
                    wait(1200)
                    sampSendChat('/mp Прятки')
                    wait(1200)
                    sampSendChat("/a Освободил /aad")
                end)
            end
            if imgui.Button(u8'Объявить о начале мероприятия "Дерби"') then
                lua_thread.create(function()
                    sampSendChat("/a Занял /aad")
                    wait(1200)
                    sampSendChat('/aad [МП] Сейчас пройдет мероприятие "Дерби". Желающие >> /gotomp')
                    wait(1200)
                    sampSendChat('/mp Дерби')
                    wait(1200)
                    sampSendChat("/a Освободил /aad")
                end)
            end
            if imgui.Button(u8'Объявить о начале мероприятия "Русская Рулетка"') then
                lua_thread.create(function()
                    sampSendChat("/a Занял /aad")
                    wait(1200)
                    sampSendChat('/aad [МП] Сейчас пройдет мероприятие "Русская Рулетка". Желающие >> /gotomp')
                    wait(1200)
                    sampSendChat('/mp Русская Рулетка')
                    wait(1200)
                    sampSendChat("/a Освободил /aad")
                end)
            end
        end
       
        local ex, ey = getScreenResolution()
        if imgui.CollapsingHeader(u8"Заготовки для разговора с игроком") then
            if imgui.Button(u8'Представиться') then
                lua_thread.create(function()
                    sampSendChat('Здравствуйте. Я администратор данного сервера, ' .. name )
                    wait(1000)
                    sampSendChat('Объясните свою проблему/вопрос')
                end)
            end  
            if imgui.Button(u8'Сказать то вы поняли и попытаетесь помочь') then
                lua_thread.create(function()
                    sampSendChat('Понял... Сейчас попытаюсь Вам помочь.')
                    wait(1000)
                    sampSendChat('Подождите пару минут!')
                end)
            end
            if imgui.Button(u8'Извиниться то что не смог помочь') then
                lua_thread.create(function()
                    sampSendChat('Извините, я Вам не смогу помочь.')
                    wait(1000)
                    sampSendChat('Удачного дня!')
                end)
            end
            if imgui.Button(u8'Сказать то что вы смогли помочь') then
                lua_thread.create(function()
                    sampSendChat('Я вам помог. Надеюсь Вы остались довольны.')
                    wait(1000)
                    sampSendChat('Удачного дня!')
                end)
            end
            if imgui.Button(u8'Продан/Передан/Взломан') then
                lua_thread.create(function()
                    sampSendChat('Ув.Игрок, Вы подозреваетесь в продаже/передачи/взломе аккаунта.')
                    wait(1000)
                    sampSendChat('Сейчас я попрошу Вас назвать следующее:')
                    wait(1000)
                    sampSendChat('Город регистрации аккаунта, дата регистрации аккаунта!')
                    wait(1000)
                    sampSendChat('В противном случае вы можете быть заблокированы!')
                end)
            end
        end
       
        local ex, ey = getScreenResolution()
        if imgui.CollapsingHeader(u8"Заготовки /o") then
            if imgui.Button(u8'info') then
                lua_thread.create(function()
                    sampSendChat('/a Занял /o')
                    wait(1150)
                    sampSendChat('/o [INFO] Ув. Игроки проекта Maze Role Play. Администрация сервера желает вам приятной игры!')
                    wait(1150)
                    sampSendChat('/o [INFO] Есть вопрос? Увидели нарушителя? Ждем ваши запросы в /mm >> Связь с администрацией!')
                    wait(1150)
                    sampSendChat('/o [INFO] Ув. Лидеры/Заместители, проводите собеседования, игрокам скучно!')
                    wait(1150)
                    sampSendChat('/o [INFO] Хорошего всем дня и приятной игры на Maze Role Play!')
                    wait(1150)
                    sampSendChat('/a Освободил /o')
                end)
            end  
            if imgui.Button(u8'Набор в ПО') then
                lua_thread.create(function()
                    sampSendChat('/a Занял /o')
                    wait(1200)
                    sampSendChat('/o [ПО] Внимание! В пиар-отдел 2.0 объявлен набор.')
                    wait(1200)
                    sampSendChat('/o [ПО] Главное требование иметь ВК.Ваша работа будет вознагрождаться донат рублями.')
                    wait(1200)
                    sampSendChat('/o [ПО] Вам выдаётся бот пиара,который будет делать всю работу за вас и админа.')
                    wait(1200)
                    sampSendChat('/o [ПО] Для вступления, просьба написать в /report "ПО"!')
                    wait(1200)
                    sampSendChat('/a Освободил /o')
            end)
        end
    end
    if imgui.Button(u8'Очистить чат',imgui.ImVec2(110,25)) then
        ClearChat()
    end
    imgui.SameLine()
    if imgui.Button(u8'Заспавниться',imgui.ImVec2(110,25)) then
        sampSendChat("/spawn")
    end
    imgui.SameLine()
    if imgui.Button(u8'Переподключиться',imgui.ImVec2(120,25)) then
        sampConnectToServer('176.32.39.170','7777')
    end
    imgui.Text(u8"Список команд на данный момент:", second_color)
    imgui.Text(u8"/mzr - Список команд для ответа в репорт")
    imgui.Text(u8"/mzd - Список команд для наказания")
    imgui.Text(u8"/mzda - Список команд для наказания от лица другого админа")
    imgui.End()
    end
end

    if secondary_window_state.v then
        imgui.Begin(u8"Заголовок 2", secondary_window_state)
        imgui.Text(u8"Привет")
        imgui.End()
    end
   
end

function blue()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.Alpha = 1.00

    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    style.ChildWindowRounding = 2.0
    style.FrameRounding = 2.0
    style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
    style.ScrollbarSize = 13.0
    style.ScrollbarRounding = 0
    style.GrabMinSize = 8.0
    style.GrabRounding = 1.0

    colors[clr.FrameBg]                = ImVec4(0.16, 0.29, 0.48, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.26, 0.59, 0.98, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.26, 0.59, 0.98, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.16, 0.29, 0.48, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.24, 0.52, 0.88, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.Button]                 = ImVec4(0.26, 0.59, 0.98, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.06, 0.53, 0.98, 1.00)
    colors[clr.Header]                 = ImVec4(0.26, 0.59, 0.98, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.26, 0.59, 0.98, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.26, 0.59, 0.98, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.26, 0.59, 0.98, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.26, 0.59, 0.98, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.26, 0.59, 0.98, 0.95)
    colors[clr.TextSelectedBg]         = ImVec4(0.26, 0.59, 0.98, 0.35)
    colors[clr.Text]                   = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.TextDisabled]           = ImVec4(0.50, 0.50, 0.50, 1.00)
    colors[clr.WindowBg]               = ImVec4(0.06, 0.06, 0.06, 0.94)
    colors[clr.ChildWindowBg]          = ImVec4(1.00, 1.00, 1.00, 0.00)
    colors[clr.PopupBg]                = ImVec4(0.08, 0.08, 0.08, 0.94)
    colors[clr.ComboBg]                = colors[clr.PopupBg]
    colors[clr.Border]                 = ImVec4(0.43, 0.43, 0.50, 0.50)
    colors[clr.BorderShadow]           = ImVec4(0.00, 0.00, 0.00, 0.00)
    colors[clr.MenuBarBg]              = ImVec4(0.14, 0.14, 0.14, 1.00)
    colors[clr.ScrollbarBg]            = ImVec4(0.02, 0.02, 0.02, 0.53)
    colors[clr.ScrollbarGrab]          = ImVec4(0.31, 0.31, 0.31, 1.00)
    colors[clr.ScrollbarGrabHovered]   = ImVec4(0.41, 0.41, 0.41, 1.00)
    colors[clr.ScrollbarGrabActive]    = ImVec4(0.51, 0.51, 0.51, 1.00)
    colors[clr.CloseButton]            = ImVec4(0.41, 0.41, 0.41, 0.50)
    colors[clr.CloseButtonHovered]     = ImVec4(0.98, 0.39, 0.36, 1.00)
    colors[clr.CloseButtonActive]      = ImVec4(0.98, 0.39, 0.36, 1.00)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.43, 0.35, 1.00)
    colors[clr.PlotHistogram]          = ImVec4(0.90, 0.70, 0.00, 1.00)
    colors[clr.PlotHistogramHovered]   = ImVec4(1.00, 0.60, 0.00, 1.00)
    colors[clr.ModalWindowDarkening]   = ImVec4(0.80, 0.80, 0.80, 0.35)
end

blue()
 
Последнее редактирование:

Albertio

Attention! Thanks for your attention.
887
717
Lua:
script_name ("ATmaze") -- название скрипта
script_author ("K.San") -- автор скрипта

require "lib.moonloader" -- подключение библиотеки
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local samp = require 'lib.samp.events'
local text_buffer = imgui.ImBuffer(256)
local tag = "[Admin Tools]: " -- тэг
local main_color = 0x5A90CE
local second_color = 0x518fd1
local main_color_text = "[5A90CE]"
local white_color = "[FFFFFF]"
local color_dialog = 0xDEB887
local dialogArr = {"Начинаю работать по вашей ЖБ", "Попытаться помочь", "Слежу за нарушителем", "Передать репорт"}
local dialogStr = ""

local main_window_state = imgui.ImBool(false)
local secondary_window_state = imgui.ImBool(false)

function ClearChat()
    local memory = require "memory"
    memory.fill(sampGetChatInfoPtr() + 306, 0x0, 25200)
    memory.write(sampGetChatInfoPtr() + 306, 25562, 4, 0x0)
    memory.write(sampGetChatInfoPtr() + 0x63DA, 1, 1)
end

for _, str in ipairs(dialogArr) do
    dialogStr = dialogStr .. str .. "\n"
end

local reasons = {'ban', 'kick', 'mute', 'sban', "slap", "warn", "offwarn", "offmute", "offban", "pm", "givegun", "sethp", "flip", "setsp", 'prison', 'jail', 'offprison', 'offjail'}

function main()
    while not  isSampAvailable() do wait(100) end
    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
        blue()
    name = sampGetPlayerNickname(id)
    if name ~= "Kenshi_San" then
        sampAddChatMessage("Вы не купили эту версию {C90303}Admin Tools{FFFFFF}! Admin Tools можно купить в оф. группе вк: {5A90CE}vk.com/atmaze", -1)
        sampAddChatMessage("Вы не купили эту версию {C90303}Admin Tools{FFFFFF}! Admin Tools можно купить в оф. группе вк: {5A90CE}vk.com/atmaze", -1)
        sampAddChatMessage("Вы не купили эту версию {C90303}Admin Tools{FFFFFF}! Admin Tools можно купить в оф. группе вк: {5A90CE}vk.com/atmaze", -1)
        sampAddChatMessage("Вы не купили эту версию {C90303}Admin Tools{FFFFFF}! Admin Tools можно купить в оф. группе вк: {5A90CE}vk.com/atmaze", -1)
        sampAddChatMessage("Вы не купили эту версию {C90303}Admin Tools{FFFFFF}! Admin Tools можно купить в оф. группе вк: {5A90CE}vk.com/atmaze", -1)
        thisScript():unload()
    end
    sampRegisterChatCommand("mz", cmd_mz)
    sampRegisterChatCommand("test", cmd_test)

    imgui.Process = false


    sampRegisterChatCommand('pr', function(id)
        sampSendChat(string.format('/pm %s Уважаемый игрок, передал ваш репорт администратору!', id))
    end)
    sampRegisterChatCommand('sn', function(id)
        lua_thread.create(function()
        sampSendChat(string.format('/pm %s Уважаемый игрок, слежу за нарушителем!', id))
        wait(1000)
        sampShowDialog(51, "Авто-Слежка", "Введите ID нарушителя", "Следить", "Отмена", 1)
    end)
end)
    sampRegisterChatCommand('pmch', function(id)
        lua_thread.create(function()
        sampSendChat(string.format('/pm %s Уважаемый игрок, сейчас попытаюсь вам помочь!', id))
        wait(1150)
        sampSendChat(string.format('/re %s', id))
    end)
end)
    sampRegisterChatCommand('of', function(id)
        sampSendChat(string.format('/pm %s Уважаемый игрок, пожалуйста прекратите оффтопить! 1/2', id))
    end)
    sampRegisterChatCommand('of2', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Уважаемый игрок, пожалуйста, в следующий раз не оффтопьте! 2/2', id))
            wait(1200)
            sampSendChat(string.format('/mute %s 5 offtop', id))
        end)
    end)
    sampRegisterChatCommand('tb', function(id)
        sampSendChat(string.format('/pm %s Уважаемый игрок, ожидайте обзвона, вас оповестят в чате, без обзвона лидерку не выдаем!', id))
    end)
    sampRegisterChatCommand('npa', function(id)
    sampSendChat(string.format('/awarn %s Нарушение Правил Администрации', id))
    end)
    sampRegisterChatCommand('rput', function(id)
        sampSendChat(string.format('/pm %s Уважаемый игрок, сделайте это РП путем! Администратор не может вмешиваться в РП процесс!', id))
    end)
    sampRegisterChatCommand('nv', function(id)
        sampSendChat(string.format('/pm %s Уважаемый игрок, не выдаем!', id))
    end)
    sampRegisterChatCommand('cheat', function(id)
        sampSendChat(string.format('/warn %s Использование Чит-Программ', id))
    end)
    sampRegisterChatCommand('vcheat', function(id)
        sampSendChat(string.format('/ban %s 7 Вред.Читы', id))
    end)
    sampRegisterChatCommand('caps', function(id)
        sampSendChat(string.format('/mute %s 5 Caps Lock', id))
    end)
    sampRegisterChatCommand('osk', function(id)
        sampSendChat(string.format('/mute %s 10 Оск. Адм./Игроков', id))
    end)
    sampRegisterChatCommand('mq', function(id)
        sampSendChat(string.format('/ban %s 7 Упом. Родни', id))
    end)
    sampRegisterChatCommand('3', function(id)
        sampSendChat(string.format('/banan %s Слив/Реклама', id))
    end)
    sampRegisterChatCommand('flood', function(id)
        sampSendChat(string.format('/mute %s 5 flood', id))
    end)
    sampRegisterChatCommand('relog', function(id)
        sampSendChat(string.format('/sban %s relog', id))
    end)
    sampRegisterChatCommand('k', function(id)
        sampSendChat(string.format('/vadgo %s ', id))
    end)
    sampRegisterChatCommand('kk', function(id)
        sampSendChat(string.format('/evad %s relog', id))
    end)
    sampRegisterChatCommand('cop', function(id)
        sampSendChat(string.format('/prison %s 5 Cop in Ghetto', id))
    end)
    sampRegisterChatCommand('afjb', function(id)
        sampSendChat(string.format('/awarn %s 5 Жалоба на Форуме', id))
    end)
    sampRegisterChatCommand('kfjb', function(id)
        sampSendChat(string.format('/kban %s 10 Жалоба на Форуме', id))
    end)
    sampRegisterChatCommand('dm', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/prison %s 10 DeathMatch', id))
            wait(1200)
            sampSendChat(string.format('/pm %s DM - Death Match, убийство игрока без причины. Вы были наказаны за DM.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('kb', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/kban %s 5 Некк. | Ложный ответ', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Вы получили бан команд за ложный/неккоректный ответ на репорт.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('aa', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Здравствуйте. Вы получили наказание за жалобу на форуме.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с нарушением, оставьте аппеляцию на модератора в разделе:', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Жалобы на Администрацию/Игроков/Лидеров > Отправить апелляцию на решение модератора: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('eva', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/kban %s 5 /evad | /vadgo', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Вы получили бан команд за ошибки/мг, которые вы пропустили в /vad.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('db', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/prison %s 10 DriveBy', id))
            wait(1200)
            sampSendChat(string.format('/pm %s DriveBy - убийство игрока автомобилем. Вы были наказаны за DB.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('tk', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/prison %s 10 Team Kill', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Team Kill - убийство игрока своей же фракции. Вы были наказаны за TK.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('forum', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/gethere %s', id))
            wait(2000)
            sampSendChat(string.format('/freeze %s', id))
            wait(1000)
            sampSendChat(string.format('Здравствуйте. Я Администратор Kenshi_San.', id))
            wait(1200)
            sampSendChat(string.format('Я обращаюсь к Вам по той причине, что на Вас поступила жалоба.', id))
            wait(1200)
            sampSendChat(string.format('Данная жалоба находиться в разделе: ', id))
            wait(1200)
            sampSendChat(string.format('Жалобы на Администрацию/Игроков/Лидеров > Отправить жалобу на Администратора ', id))
            wait(1200)
            sampSendChat(string.format('У Вас имеются доказательства на нарушения игрока? ', id))
            wait(1200)
            sampShowDialog(20, "Ожидайте ответа от игрока", "У игрока имеются доказательства?", "Имеются", "Не имеются", 0)
        end)
    end)
    sampRegisterChatCommand('sk', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/prison %s 10 Spawn Kill', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Spawn Kill - убийство игроков на точке спавна. Вы были наказаны за SK.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('mg', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/mute %s 1 MetaGaming', id))
            wait(1200)
            sampSendChat(string.format('/pm %s MetaGaming - Использование OOC ин-ции в IC чат. Вы были наказаны за MG.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если Вы не согласны с наказанием, пишите жалобу на: forum.maze-rp.ru!', id))
        end)
    end)
    sampRegisterChatCommand('bb', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/makeadmin %s 1', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Поздравляю Вас. Вы получили права администратора 1 уровня.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Для того, чтобы авторизироваться в админке, введите /alogin и пароль!', id))
            wait(1000)
            sampSendChat(string.format('/pm %s Ваш ADM пароль будет сообщен через пару секунд. Приятного дня!', id))
        end)
    end)
    sampRegisterChatCommand('pmg', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Ув.Игрок, я Вам помог. Надеюсь Вы остались довольны. Приятного дня!', id))
        end)
    end)
    sampRegisterChatCommand('afk', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Ув.Игрок, Вы подозреваетесь в AFK без ESC.', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Если вы тут, просьба написать "+" в чат!', id))
            wait(1200)
            sampSendChat(string.format('/pm %s В противном случае я буду вынужден Вас кикнуть!', id))
        end)
    end)
    sampRegisterChatCommand('nak2', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Жалобу на администратора вы можете оставить на нашем форуме - forum.maze-rp.ru.', id))
        end)
    end)
    sampRegisterChatCommand('admm', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Здравствуйте. На нашем проекте права администратора можно получить при:', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Вводе команды /adm в игровой чат. Быть "Пиарщиком", отстоять лидерку, сотрудничать с проектом.', id))
        end)
    end)
    sampRegisterChatCommand('nrp', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Ув.Игрок, просьба сменить ваш NonRP nick на РП: Name_Surname! ', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Это позволит Вам полноценно играть на нашем проекте...', id))
            wait(1200)
            sampSendChat(string.format('/pm %s ...А также успешно трудоустроиться в любую фракцию!', id))
        end)
    end)
    sampRegisterChatCommand('lid', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/pm %s Ув.Игрок, чтобы получить лидерку, необходимо: ', id))
            wait(1200)
            sampSendChat(string.format('/pm %s Гетто: пройти обзвон. Мафия, Гос: оставить заявку на форуме, пройти обзвон!', id))
            wait(1200)
            sampSendChat(string.format('/pm %s ...А также успешно трудоустроиться в любую фракцию!', id))
        end)
    end)
    sampRegisterChatCommand('админка', function(id)
        lua_thread.create(function()
            sampSendChat(string.format('/agm', id))
            wait(1200)
            sampSendChat(string.format('/lammo', id))
            wait(1200)
            sampSendChat(string.format('/btrack', id))
            wait(1200)
            sampSendChat(string.format('/showmc', id))
            wait(1200)
            sampSendChat(string.format('/showbc', id))
            wait(1000)
            sampSendChat(string.format('/a [Статус] На данный момент свободен. Режим: ожидание!', id))
            wait(1200)
        end)
    end)
    sampRegisterChatCommand('amg', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/mute %s 1 MG || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('acheat', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/warn %s Cheats || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('avcheat', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/ban %s 7 Vred. Cheats || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('dma', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/prison %s 10 DeathMatch || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('atk', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/prison %s 10 TeamKill || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('ask', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/prison %s 10 SpawnKill || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('amq', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/ban %s 7 Упом.Родни || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('aeva', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/kban %s 5 /evad | /vadgo || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('arelog', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/sban %s relog || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('adb', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/prison %s 10 DriveBy || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('nak', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/pm %s Вы были наказаны по просьбе администратора ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('acop', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/prison %s 5 Cop in Ghetto || ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('nak1', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/pm %s Если вы не согласны с наказанием, пишите жалобу на ADM ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('st1', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/a [Статус] Неактивен. Начинаю работать по жалобе игрока [ ID: %s] Nick: ' .. adminname, idnar))
    end)
    sampRegisterChatCommand('st2', function(ids)
        local idnar = string.sub(ids, 0, string.find(ids, "%s"))
                sampAddChatMessage(ids, -1)
        local idadm = string.sub(ids, string.find(ids, "%s") + 1, string.len(ids))
        local name = sampGetPlayerNickname(idadm) -- вот это строки не было
        local adminname = string.sub(name, 0, 1) .. '.' .. string.sub(name, string.find(name, '_') + 1, string.len(name))
        sampSendChat(string.format('/a [Статус] Активен. Закончил работать по жалобе игрока [ ID: %s] Nick: ' .. adminname, idnar))
    end)




    sampRegisterChatCommand("mzr", cmd_mzr)
    sampRegisterChatCommand("mzd", cmd_mzd)
    sampRegisterChatCommand("mda", cmd_mda)
    sampRegisterChatCommand("update", cmd_update)
    sampRegisterChatCommand("pozdr", cmd_pozdr)

    wait(1)
    sampAddChatMessage(tag .. "{ff0505}Admin Tools by K.San | D.Kot запущен [V.2.1.2]", -1) -- сообщение в чат при заходе
    sampAddChatMessage(tag .. "{ff0505}Чтобы ознакомиться с функциями введите /mz", -1) -- тоже самое что и предыдущее
    sampAddChatMessage(tag .. "{ff0505}Данный скрипт создан для упрощения работы администрации. Плагиат запрещен!", -1) -- тоже самое что и предыдущее

    while true do
        wait(0)
                imgui.Process = main_window_state.v or secondary_window_state.v
                if not main_window_state.v and not secondary_window_state.v then
                        imgui.Process = false
                end
        if isKeyJustPressed(VK_F5) then
            sampSendChat("/gotomark")
        end

        local result, button, list, input = sampHasDialogRespond(10) -- /dialog0 (MsgBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                sampAddChatMessage("Приятной игры!", color_dialog)
            end
        end


        local result, button, list, input = sampHasDialogRespond(20) -- /dialog0 (MsgBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                sampSendChat("Тогда попрошу вас предоставить их на форум. Приятной игры!")
            else -- если нажата вторая кнопка (Закрыть)
                sampSendChat("Так как у вас нету доказательств, по правилам я обязан выдать вам наказание.")
            end
        end


        local result, button, list, input = sampHasDialogRespond(45) -- /dialog0 (MsgBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                sampAddChatMessage("Приятной игры!", main_color)
            else -- если нажата вторая кнопка (Закрыть)
                sampSendChat("")
            end
        end


        local result, button, list, input = sampHasDialogRespond(11) -- /dialog1 (InputBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                sampSendChat("/a Занял /o")
                wait(1200)
                sampSendChat("/o [INFO] Уважаемые игроки нашего сервера, вся администрация поздравляет вас с " .. input, color_dialog)
                wait(1200)
                sampSendChat("/a Освободил /o")
            else -- если нажата вторая кнопка (Закрыть)
                sampAddChatMessage("Приятной игры!", main_color)
            end
        end


        local result, button, list, input = sampHasDialogRespond(51) -- /dialog1 (InputBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                sampSendChat("/re " .. input)
            else -- если нажата вторая кнопка (Закрыть)
                sampAddChatMessage("Приятной игры!", main_color)
            end
        end


        local result, button, list, input = sampHasDialogRespond(12) -- /dialog2 (ListBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                if list == 0 then
                    sampShowDialog(13, "Меню", "Введите ID Игрока", "Выбрать", "Закрыть", 1)
                elseif list == 1 then
                    sampAddChatMessage("В диалоге с ID 12 выбран пункт {FFFFFF}" .. list .. " и его содержимое: {FF00FF}" .. dialogArr[list+1], color_dialog)
                elseif list == 2 then
                    sampAddChatMessage("В диалоге с ID 12 выбран пункт {FFFFFF}" .. list .. " и его содержимое: {FF00FF}" .. dialogArr[list+1], color_dialog)
                elseif list == 3 then
                    sampAddChatMessage("В диалоге с ID 12 выбран пункт {FFFFFF}" .. list .. " и его содержимое: {FF00FF}" .. dialogArr[list+1], color_dialog)
                end
            else -- если нажата вторая кнопка (Закрыть)
                sampAddChatMessage("Вы закрыли диалог с ID 12", color_dialog)
            end
        end


        local result, button, list, input = sampHasDialogRespond(13) -- /dialog3 (PasswordBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                sampSendChat("/pm " .. input, color_dialog)
            else -- если нажата вторая кнопка (Закрыть)
                sampAddChatMessage("Вы закрыли диалог с ID 13", color_dialog)
            end
        end


        local result, button, list, input = sampHasDialogRespond(14) -- /dialog4 (TabListBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                if list == 0 then
                    sampAddChatMessage("В диалоге с ID 14 выбран пункт {FFFFFF}" .. list, color_dialog)
                elseif list == 1 then
                    sampAddChatMessage("В диалоге с ID 14 выбран пункт {FFFFFF}" .. list, color_dialog)
                elseif list == 2 then
                    sampAddChatMessage("В диалоге с ID 14 выбран пункт {FFFFFF}" .. list, color_dialog)
                elseif list == 3 then
                    sampAddChatMessage("В диалоге с ID 14 выбран пункт {FFFFFF}" .. list, color_dialog)
                end
            else -- если нажата вторая кнопка (Закрыть)
                sampAddChatMessage("Вы закрыли диалог с ID 14", color_dialog)
            end
        end


        local result, button, list, input = sampHasDialogRespond(15) -- /dialog5 (TabListHeaderBox)

        if result then -- если диалог открыт
            if button == 1 then -- если нажата первая кнопка (Выбрать)
                if list == 0 then
                    sampAddChatMessage("В диалоге с ID 15 выбран пункт {FFFFFF}" .. list, color_dialog)
                elseif list == 1 then
                    sampAddChatMessage("В диалоге с ID 15 выбран пункт {FFFFFF}" .. list, color_dialog)
                elseif list == 2 then
                    sampAddChatMessage("В диалоге с ID 15 выбран пункт {FFFFFF}" .. list, color_dialog)
                elseif list == 3 then
                    sampAddChatMessage("В диалоге с ID 15 выбран пункт {FFFFFF}" .. list, color_dialog)
                end
            else -- если нажата вторая кнопка (Закрыть)
                sampAddChatMessage("Вы закрыли диалог с ID 15", color_dialog)
            end
        end

    end
end

function cmd_mz(arg)
  main_window_state.v = not main_window_state.v
end

function cmd_test(arg)
  secondary_window_state.v = not secondary_window_state.v
end

function samp.onServerMessage(color, text)
    if text:find("подозревается") then
    sampAddChatMessage("{FFFFFF}[Admin Tools]: Кто-то подозревается в {C90303}читерстве{FFFFFF}/{C90303}взломе!")  -- body
    sampAddChatMessage("{FFFFFF}[Admin Tools]: Кто-то подозревается в {C90303}читерстве{FFFFFF}/{C90303}взломе!")  -- body
    sampAddChatMessage("{FFFFFF}[Admin Tools]: Кто-то подозревается в {C90303}читерстве{FFFFFF}/{C90303}взломе!")  -- body
    end
end

function forma()
    if active_report then
        lua_thread.create(function()
            lasttime = os.time()
            lasttimes = 0
            time_out = 10
            while lasttimes < time_out do
                lasttimes = os.time() - lasttime
                wait(0)
                printStyledString("ADMIN FORM " .. time_out - lasttimes .. " WAIT", 1000, 4)
                if lasttimes == time_out then
                    active_report = false
                    printStyledString("Forma skipped", 1000, 4)
                end
            end
        end)
    else
        if isKeyJustPressed(VK_P) and not sampIsChatInputActive() and not sampIsDialogActive() then
            printStyledString('You can’t skip the form temporarily', 1000, 4)
        end
    end
end

function cmd_update(arg)
    if #arg == 0 then
        sampShowDialog(10, "Нововведения в обновлении 2.1.2", "Усовершенствована команда /forum\nКоманда /oskr была изменена на /mq\nКоманда /aoskr была изменена на /amq\nВид команды /mzr, /mzd, /mda был изменен\nБыл обновлен список команд в /mzr|/mzd|/mda\nДобавлена команда /pozdr, она поздравляет игроков с праздником, который вы ввели\nИсправлена ошибка в бинде INFO в /o\nДобавлена авто-слежка за игроком после команды /pmch\nДобавлена авто-слежка после команды /sn", "Закрыть", "", 0)
    end

end
function cmd_mzr(arg)
    if #arg == 0 then
        sampShowDialog(10, "{08F800}Список ответов на репорт:", "{5A90CE}/pr [ID] - написать игроку в /pm то что вы передали report администрации\n{5A90CE}/sn [ID] - написать игроку в /pm то что вы следите за нарушителем\n{5A90CE}pmch [ID] - написать игроку в /pm то что вы попытаетесь ему помочь\n{5A90CE}/of [ID] - написать игроку в /pm чтобы он не оффтопил 1/2\n{5A90CE}/of2 [ID] - написать игроку в /pm чтобы он не оффтопил 2/2, и то что он получает бан чата за офф топ\n{5A90CE}/tb [ID] - написать игроку в /pm то что можно встать на лидерку только по обзвону\n{5A90CE}/rput [ID] - написать игроку в /pm чтобы он сделал это РП путем\n{5A90CE}/nv [ID] - написать игроку в /pm то что не выдаем\n{5A90CE}/pmg [ID] - написать игроку в /pm то что вы ему помогли\n{5A90CE}/nak1 [ID игрока] [ID админа] - написать игроку в /pm то что если он не согласен с наказанием то пусть пишет жалобу на админа\n{5A90CE}/nak2 [ID] - написать игроку в /pm то что жалобу на администратора можно написать на форуме\n{5A90CE}/afk [ID] = написать игроку в /pm то что если он афк без esc, то вы будете вынуждены его кикнуть\n{5A90CE}/bb [ID] - назначить игрока админом 1 лвла и поздравить в /pm\n{5A90CE}/k [ID] - отправить vip объявление игрока\n{5A90CE}/kk [ID] - редактировать vip объявление игрока\n{5A90CE}/st1 [ID] [Тоже ID игрока] - написать в /a то что вы начали работать по жалобе игрока\n{5A90CE}/st2 [ID] [Тоже ID игрока] - написать в /a то что вы закончили работать по жалобе игрока\n{5A90CE}/lid [ID] - сказать игроку в /pm что нужно, чтобы встать на лидерку\n{5A90CE}/nrp [ID] - Написать просьбу в /pm, чтобы игрок сменил НОН рп ник\n{5A90CE}/админка - ввести все нужные команды после /alogin", "Закрыть", "", 0)
    end

end
function cmd_mzd(arg)
    if #arg == 0 then
        sampShowDialog(10, "{08F800}Список наказаний:", "{E3E630}/dm [ID] - посадить игрока за дм в prison\n{E3E630}/db [ID] - посадить игрока за дб в prison\n{E3E630}/tk [ID] - посадить игрока за тк в prison\n{E3E630}/sk [ID] - посадить игрока за ск в prison\n{C90303}/cheat [ID] - заварнить игрока за читы\n{C90303}/vcheat [ID} - забанить игрока за вред.читы на 7 дней\n{E3E630}/caps [ID] - замутить игрока за капс на 5 минут\n{E3E630}/osk [ID] - замутить игрока за оск на 10 минут\n{C90303}/mq [ID] - забанить игрока на 7 дней за упом. родни\n{E3E630}/flood [ID] - замутить игрока за флуд на 5 минут\n{E3E630}/cop [ID] - посадить игрока за копа в гетто в /prison\n{E3E630}/kb [ID] - выдать бан команд за ложный ответ в репорт\n{E3E630}/eva [ID] - выдать бан команд за ошибки в /vad\n{E3E630}/forum [ID] - тпешнуть игрока/администратора, зафризить, и сказать то что на него поступила Жалоба\n{E3E630}/kb [ID] - выдать /kban за некк./ложный ответ\n{E3E630}/kfjb [ID] - выдать /kban за жалобу на форуме\n{C90303}/afjb [ID] - выдать /awarn за жалобу на форуме\n{C90303}/relog [ID] - выдать /sban с причиной relog\n{C90303}/npa [ID] - Выдать /awarn с причиной Нарушение Правил Администрации", "Закрыть", "", 0)
    end

end
function cmd_mda(arg)
    if #arg == 0 then
        sampShowDialog(10, "{08F800}Список наказаний от лица другого админа:", "{C90303}/acheat [ID игрока] [ID админа] - выдать /warn за читы от лица другого админа\n{C90303}/avcheat [ID игрока] [ID админа] - выдать /ban за вред.читы от лица другого админа\n{E3E630}/dma [ID игрока] [ID админа] - посадить в /prison за дм от лица другого админа\n{E3E630}/atk [ID игрока] [ID админа] - посадить в /prison за тк от лица другого админа\n{E3E630}/ask[ID игрока] [ID админа] - посадить в /prison за ск от лица другого админа\n{C90303}/amq [ID игрока] [ID админа] - выдать /ban за Упом.Родни от лица другого админа\n{E3E630}/aeva [ID игрока] [ID админа] - выдать /kban за /evad | /vadgo\n{E3E630}/acop [ID игрока] [ID админа] - посадить игрока в деморган за копа в гетто от имени другого администратора\n{C90303}/arelog [ID] [ID админа] - выдать /sban c причиной relog от лица другого админа", "Закрыть", "", 0)
    end

end
function cmd_pozdr(arg)
    if #arg == 0 then
        sampShowDialog(11, "Поздравить игроков с праздником", "Введите название праздника(пример: 9 мая)", "Поздравить", "Отмена", 1)
    end

end

function imgui.OnDrawFrame()
  if main_window_state.v then
    local ex, ey = getScreenResolution()
    if isKeyJustPressed(VK_U) and not sampIsChatInputActive() and not sampIsDialogActive() then
      imgui.ShowCursor = not imgui.ShowCursor
    end
    imgui.SetNextWindowPos(imgui.ImVec2(ex / 2, ey / 2), imgui.Cond.FirstUseEver)
    imgui.SetNextWindowSize(imgui.ImVec2(600, 500), imgui.Cond.FirstUseEver)
    imgui.Begin(u8"Admin Tools Maze Role Play", main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
    if imgui.CollapsingHeader(u8"Мероприятия") then
      if imgui.Button(u8'Объявить о начале мероприятия "Король Дигла"') then
        lua_thread.create(function()
          sampSendChat("/a Занял /aad")
          wait(1200)
          sampSendChat('/aad [МП] Сейчас пройдет мероприятие "Король Дигла". Желающие >> /gotomp')
          wait(1200)
          sampSendChat('/mp Король Дигла')
          wait(1200)
          sampSendChat("/a Освободил /aad")
        end)
      end
      if imgui.Button(u8'Объявить о начале мероприятия "Прятки"') then
        lua_thread.create(function()
          sampSendChat("/a Занял /aad")
          wait(1200)
          sampSendChat('/aad [МП] Сейчас пройдет мероприятие "Прятки". Желающие >> /gotomp')
          wait(1200)
          sampSendChat('/mp Прятки')
          wait(1200)
          sampSendChat("/a Освободил /aad")
        end)
      end
      if imgui.Button(u8'Объявить о начале мероприятия "Дерби"') then
        lua_thread.create(function()
          sampSendChat("/a Занял /aad")
          wait(1200)
          sampSendChat('/aad [МП] Сейчас пройдет мероприятие "Дерби". Желающие >> /gotomp')
          wait(1200)
          sampSendChat('/mp Дерби')
          wait(1200)
          sampSendChat("/a Освободил /aad")
        end)
      end
      if imgui.Button(u8'Объявить о начале мероприятия "Русская Рулетка"') then
        lua_thread.create(function()
          sampSendChat("/a Занял /aad")
          wait(1200)
          sampSendChat('/aad [МП] Сейчас пройдет мероприятие "Русская Рулетка". Желающие >> /gotomp')
          wait(1200)
          sampSendChat('/mp Русская Рулетка')
          wait(1200)
          sampSendChat("/a Освободил /aad")
        end)
      end
    end

    local ex, ey = getScreenResolution()
    if imgui.CollapsingHeader(u8"Заготовки для разговора с игроком") then
      if imgui.Button(u8'Представиться') then
        lua_thread.create(function()
          sampSendChat('Здравствуйте. Я администратор данного сервера, ' .. name )
          wait(1000)
          sampSendChat('Объясните свою проблему/вопрос')
        end)
      end
      if imgui.Button(u8'Сказать то вы поняли и попытаетесь помочь') then
        lua_thread.create(function()
          sampSendChat('Понял... Сейчас попытаюсь Вам помочь.')
          wait(1000)
          sampSendChat('Подождите пару минут!')
        end)
      end
      if imgui.Button(u8'Извиниться то что не смог помочь') then
        lua_thread.create(function()
          sampSendChat('Извините, я Вам не смогу помочь.')
          wait(1000)
          sampSendChat('Удачного дня!')
        end)
      end
      if imgui.Button(u8'Сказать то что вы смогли помочь') then
        lua_thread.create(function()
          sampSendChat('Я вам помог. Надеюсь Вы остались довольны.')
          wait(1000)
          sampSendChat('Удачного дня!')
        end)
      end
      if imgui.Button(u8'Продан/Передан/Взломан') then
        lua_thread.create(function()
          sampSendChat('Ув.Игрок, Вы подозреваетесь в продаже/передачи/взломе аккаунта.')
          wait(1000)
          sampSendChat('Сейчас я попрошу Вас назвать следующее:')
          wait(1000)
          sampSendChat('Город регистрации аккаунта, дата регистрации аккаунта!')
          wait(1000)
          sampSendChat('В противном случае вы можете быть заблокированы!')
        end)
      end
    end

    local ex, ey = getScreenResolution()
    if imgui.CollapsingHeader(u8"Заготовки /o") then
      if imgui.Button(u8'info') then
        lua_thread.create(function()
          sampSendChat('/a Занял /o')
          wait(1150)
          sampSendChat('/o [INFO] Ув. Игроки проекта Maze Role Play. Администрация сервера желает вам приятной игры!')
          wait(1150)
          sampSendChat('/o [INFO] Есть вопрос? Увидели нарушителя? Ждем ваши запросы в /mm >> Связь с администрацией!')
          wait(1150)
          sampSendChat('/o [INFO] Ув. Лидеры/Заместители, проводите собеседования, игрокам скучно!')
          wait(1150)
          sampSendChat('/o [INFO] Хорошего всем дня и приятной игры на Maze Role Play!')
          wait(1150)
          sampSendChat('/a Освободил /o')
        end)
      end
      if imgui.Button(u8'Набор в ПО') then
        lua_thread.create(function()
          sampSendChat('/a Занял /o')
          wait(1200)
          sampSendChat('/o [ПО] Внимание! В пиар-отдел 2.0 объявлен набор.')
          wait(1200)
          sampSendChat('/o [ПО] Главное требование иметь ВК.Ваша работа будет вознагрождаться донат рублями.')
          wait(1200)
          sampSendChat('/o [ПО] Вам выдаётся бот пиара,который будет делать всю работу за вас и админа.')
          wait(1200)
          sampSendChat('/o [ПО] Для вступления, просьба написать в /report "ПО"!')
          wait(1200)
          sampSendChat('/a Освободил /o')
        end)
      end
    end
    if imgui.Button(u8'Очистить чат', imgui.ImVec2(110, 25)) then
      ClearChat()
    end
    imgui.SameLine()
    if imgui.Button(u8'Заспавниться', imgui.ImVec2(110, 25)) then
      sampSendChat("/spawn")
    end
    imgui.SameLine()
    if imgui.Button(u8'Переподключиться', imgui.ImVec2(120, 25)) then
      sampConnectToServer('176.32.39.170', '7777')
    end
    imgui.Text(u8"Список команд на данный момент:", second_color)
    imgui.Text(u8"/mzr - Список команд для ответа в репорт")
    imgui.Text(u8"/mzd - Список команд для наказания")
    imgui.Text(u8"/mzda - Список команд для наказания от лица другого админа")
    imgui.End()
  end
    if secondary_window_state.v then
      imgui.Begin(u8"Заголовок 2", secondary_window_state)
      imgui.Text(u8"Привет")
      imgui.End()
    end
end

function blue()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.Alpha = 1.00

    style.WindowRounding = 2.0
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
    style.ChildWindowRounding = 2.0
    style.FrameRounding = 2.0
    style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
    style.ScrollbarSize = 13.0
    style.ScrollbarRounding = 0
    style.GrabMinSize = 8.0
    style.GrabRounding = 1.0

    colors[clr.FrameBg]                = ImVec4(0.16, 0.29, 0.48, 0.54)
    colors[clr.FrameBgHovered]         = ImVec4(0.26, 0.59, 0.98, 0.40)
    colors[clr.FrameBgActive]          = ImVec4(0.26, 0.59, 0.98, 0.67)
    colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
    colors[clr.TitleBgActive]          = ImVec4(0.16, 0.29, 0.48, 1.00)
    colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
    colors[clr.CheckMark]              = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.SliderGrab]             = ImVec4(0.24, 0.52, 0.88, 1.00)
    colors[clr.SliderGrabActive]       = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.Button]                 = ImVec4(0.26, 0.59, 0.98, 0.40)
    colors[clr.ButtonHovered]          = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.ButtonActive]           = ImVec4(0.06, 0.53, 0.98, 1.00)
    colors[clr.Header]                 = ImVec4(0.26, 0.59, 0.98, 0.31)
    colors[clr.HeaderHovered]          = ImVec4(0.26, 0.59, 0.98, 0.80)
    colors[clr.HeaderActive]           = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.Separator]              = colors[clr.Border]
    colors[clr.SeparatorHovered]       = ImVec4(0.26, 0.59, 0.98, 0.78)
    colors[clr.SeparatorActive]        = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.ResizeGrip]             = ImVec4(0.26, 0.59, 0.98, 0.25)
    colors[clr.ResizeGripHovered]      = ImVec4(0.26, 0.59, 0.98, 0.67)
    colors[clr.ResizeGripActive]       = ImVec4(0.26, 0.59, 0.98, 0.95)
    colors[clr.TextSelectedBg]         = ImVec4(0.26, 0.59, 0.98, 0.35)
    colors[clr.Text]                   = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.TextDisabled]           = ImVec4(0.50, 0.50, 0.50, 1.00)
    colors[clr.WindowBg]               = ImVec4(0.06, 0.06, 0.06, 0.94)
    colors[clr.ChildWindowBg]          = ImVec4(1.00, 1.00, 1.00, 0.00)
    colors[clr.PopupBg]                = ImVec4(0.08, 0.08, 0.08, 0.94)
    colors[clr.ComboBg]                = colors[clr.PopupBg]
    colors[clr.Border]                 = ImVec4(0.43, 0.43, 0.50, 0.50)
    colors[clr.BorderShadow]           = ImVec4(0.00, 0.00, 0.00, 0.00)
    colors[clr.MenuBarBg]              = ImVec4(0.14, 0.14, 0.14, 1.00)
    colors[clr.ScrollbarBg]            = ImVec4(0.02, 0.02, 0.02, 0.53)
    colors[clr.ScrollbarGrab]          = ImVec4(0.31, 0.31, 0.31, 1.00)
    colors[clr.ScrollbarGrabHovered]   = ImVec4(0.41, 0.41, 0.41, 1.00)
    colors[clr.ScrollbarGrabActive]    = ImVec4(0.51, 0.51, 0.51, 1.00)
    colors[clr.CloseButton]            = ImVec4(0.41, 0.41, 0.41, 0.50)
    colors[clr.CloseButtonHovered]     = ImVec4(0.98, 0.39, 0.36, 1.00)
    colors[clr.CloseButtonActive]      = ImVec4(0.98, 0.39, 0.36, 1.00)
    colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.43, 0.35, 1.00)
    colors[clr.PlotHistogram]          = ImVec4(0.90, 0.70, 0.00, 1.00)
    colors[clr.PlotHistogramHovered]   = ImVec4(1.00, 0.60, 0.00, 1.00)
    colors[clr.ModalWindowDarkening]   = ImVec4(0.80, 0.80, 0.80, 0.35)
end