Lua Checker

Akionka

akionka.lua
Автор темы
Проверенный
742
499
Сделай чтобы автообновления небыло. Прописываешь /checker а там написано Update log и типо Обновить. Чтобы самим можно было выбирать надо автообновление или нет. или скажи где написать и что написать чтобы небыло автообновления
Код:
script_name('Admin Checker')
script_author('akionka')
script_version('1.7')
script_version_number(8)

local sampev = require 'lib.samp.events'
local encoding = require 'encoding'
local inicfg = require 'inicfg'
local imgui = require 'imgui'
local dlstatus = require 'moonloader'.download_status
local isGoUpdate = false
encoding.default = 'cp1251'
u8 = encoding.UTF8

local admins = {}
local admins_online = {}
local ini = inicfg.load({
    settings = {
        shownofit = true,
        showonscreen = false,
        posX = 40,
        posY = 460,
        color = 0xFF0000,
        color = 0xFF0000,
        font = "Arial",
        startmsg = true
    },
    color = {
        r = 255,
        g = 255,
        b = 255,
    }
}, "admins")

function sampev.onPlayerQuit(id, reason)
    for i, v in ipairs(admins_online) do
        if v["id"] == id then
            if ini.settings.shownotif then
                sampAddChatMessage(u8:decode("{c3ef15}"..v["nick"].." покинул сервер"), -1)
            end
            table.remove(admins_online, i)
            break
        end
    end
end

function sampev.onPlayerJoin(id, clist, isNPC, nick)
    for i, v in ipairs(admins) do
        if nick == v then
            table.insert(admins_online, {nick = nick, id = id})
            if ini.settings.shownofit then
                sampAddChatMessage(u8:decode("{c3ef15}"..nick.." авторизовался"), -1)
            end
            break
        end
    end
end
local settings_window_state = imgui.ImBool(false)
local onscreen = imgui.ImBool(ini.settings.showonscreen)
local startmsg = imgui.ImBool(ini.settings.startmsg)
local shownofit = imgui.ImBool(ini.settings.shownofit)
local posX = imgui.ImInt(0)
local posY = imgui.ImInt(0)
local pos = imgui.ImVec2(0, 0)
local fontA = imgui.ImBuffer(ini.settings.font, 256)

local r, g, b = imgui.ImColor(ini.color.r, ini.color.g, ini.color.b):GetFloat4()
local color = imgui.ImFloat3(r, g, b)
function imgui.OnDrawFrame()
  if settings_window_state.v then
        imgui.Begin("Меню", settings_window_state, 66)
        posX.v = ini.settings.posX
        posY.v = ini.settings.posY
        if imgui.InputInt("X", posX) then
            ini.settings.posX = posX.v
            inicfg.save(ini, "admins")
        end
        if imgui.InputInt("Y", posY) then
            ini.settings.posY = posY.v
            inicfg.save(ini, "admins")
        end
        if imgui.InputText("Шрифт", fontA) then
            ini.settings.font = fontA.v
            font = renderCreateFont(ini.settings.font, 9, 5)
            inicfg.save(ini, "admins")
        end
        if imgui.ColorEdit3('Цвет текста', color) then
            ini.color = {r = color.v[1] * 255, g = color.v[2] * 255, b = color.v[3] * 255, }
            ini.settings.color = join_argb(255, color.v[1] * 255, color.v[2] * 255, color.v[3] * 255)
            inicfg.save(ini, "admins")
        end
        if imgui.Checkbox("Рендер на экране", onscreen) then
            ini.settings.showonscreen = onscreen.v
            inicfg.save(ini, "admins")
        end
        if imgui.Checkbox("Оповещения о входе/выходе администраторов", shownofit) then
            ini.settings.shownofit = shownofit.v
            inicfg.save(ini, "admins")
        end
        if imgui.Checkbox("Стартовое сообщение", startmsg) then
            ini.settings.startmsg = startmsg.v
            inicfg.save(ini, "admins")
        end
        imgui.End()
  end
end

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

    update()
    while updateinprogess ~= false do wait(0) if isGoUpdate then isGoUpdate = false goupdate() end end

    loadadmins()
    for id = 0, 1000 do
        for i, v in ipairs(admins) do
            if sampIsPlayerConnected(id) then
                if sampGetPlayerNickname(id) == v then
                    table.insert(admins_online, {nick = v, id = id})
                end
            end
        end
    end

    if ini.settings.startmsg then
        sampAddChatMessage(u8:decode("[Admins]: Скрипт {00FF00}успешно{FFFFFF} загружен. Версия: {2980b9}"..thisScript().version.."{FFFFFF}."), -1)
        sampAddChatMessage(u8:decode("[Admins]: Автор - {2980b9}Akionka{FFFFFF}. Выключить данное сообщение можно в {2980b9}/checker{FFFFFF}."), -1)
        sampAddChatMessage(u8:decode("[Admins]: Кстати, чтобы посмотреть список администраторов он-лайн введи {2980b9}/admins{FFFFFF}."), -1)
    end

    sampRegisterChatCommand("admins", function()
        if #admins_online == 0 then sampAddChatMessage(u8:decode("{4a884f}Администраторы онлайн: ({FF0000}0{4a884f})"), -1) return true end
        sampAddChatMessage(u8:decode("{4a884f}Администраторы онлайн: ("..#admins_online..")"), -1)
        for i, v in ipairs(admins_online) do
            sampAddChatMessage(u8:decode(""..v["nick"].."["..v["id"].."]{FFFFFF}"), -1)
        end
    
    end)
    sampRegisterChatCommand("checker", function()
        settings_window_state.v = not settings_window_state.v
    end)
    font = renderCreateFont(ini.settings.font, 9, 5)
    while true do
        wait(0)
        if isGoUpdate then goupdate() break end
        if ini.settings.showonscreen then
            local renderPosY = ini.settings.posY
            renderFontDrawText(font, "Admins Online ["..#admins_online.."]:", ini.settings.posX, ini.settings.posY, bit.bor(ini.settings.color, 0xFF000000))
            renderPosY = renderPosY + 30
            for _, v in ipairs(admins_online) do
                renderFontDrawText(font, v["nick"].." ["..v["id"].."]", ini.settings.posX, renderPosY, bit.bor(ini.settings.color, 0xFF000000))
                renderPosY = renderPosY + 15
            end
        end
        imgui.Process = settings_window_state.v
    end
end

function loadadmins()
    if doesFileExist("moonloader/config/adminlist.txt") then
        for admin in io.lines("moonloader/config/adminlist.txt") do
            table.insert(admins, admin:match("(%S+)"))
        end
        print(u8:decode('Загрузка закончена. Загружено: '..#admins..' админов.'))
    else
        print(u8:decode('Файла с админами в директории <moonloader/config/adminlist.txt> не обнаружено, создан автоматически'))
        io.close(io.open("moonloader/config/adminlist.txt", "w"))
    end
end
function update()
    local fpath = os.getenv('TEMP') .. '\\checker-version.json'
    downloadUrlToFile('https://raw.githubusercontent.com/Akionka/checker/master/version.json', fpath, function(id, status, p1, p2)
        if status == dlstatus.STATUS_ENDDOWNLOADDATA then
            local f = io.open(fpath, 'r')
            if f then
                local info = decodeJson(f:read('*a'))
                if info and info.version then
                    version = info.version
                    version_num = info.version_num
                    if version_num > thisScript().version_num then
                        sampAddChatMessage(u8:decode("[Admins]: Найдено объявление. Текущая версия: {2980b9}"..thisScript().version.."{FFFFFF}, новая версия: {2980b9}"..version.."{FFFFFF}. Начинаю закачку."), -1)
                        isGoUpdate = true
                    else
                        sampAddChatMessage(u8:decode("У вас установлена самая свежая версия скрипта"), -1)
                        updateinprogess = false
                    end
                end
            end
        end
    end)
end
function goupdate()
    downloadUrlToFile("https://raw.githubusercontent.com/Akionka/checker/master/checker.lua", thisScript().path, function(id3, status1, p13, p23)
        if status1 == dlstatus.STATUS_ENDDOWNLOADDATA then
            sampAddChatMessage(u8:decode('[Admins]: Новая версия установлена! Чтобы скрипт обновился нужно либо перезайти в игру, либо ...'), -1)
            sampAddChatMessage(u8:decode('[Admins]: ... если у вас есть автоперезагрузка скриптов, то новая версия уже готова и снизу вы увидите приветственное сообщение.'), -1)
            sampAddChatMessage(u8:decode('[Admins]: Скорее всего прямо сейчас у вас сломался курсор. Введите {2980b9}/checker{FFFFFF}.'), -1)
            sampAddChatMessage(u8:decode('[Admins]: Если что-то пошло не так, то сообщите мне об этом в VK или Telegram > {2980b0}vk.com/akionka teleg.run/akionka{FFFFFF}.'), -1)
            updateinprogess = false
        end
    end)
end
function join_argb(a, r, g, b)
   local argb = b
   argb = bit.bor(argb, bit.lshift(g, 8))
   argb = bit.bor(argb, bit.lshift(r, 16))
   argb = bit.bor(argb, bit.lshift(a, 24))
   return argb
end
чем тебя автообновление не устраивает?
 

AlfacH

Известный
111
24
Ладно, сделаю. Но что всё-таки не так с автообновлением?
все норм, я просто цвета там поменял. а автообновление сбивает его
сделай его прям в этот код и все
Код:
script_name('Admin Checker')
script_author('akionka')
script_version('1.7')
script_version_number(8)

local sampev = require 'lib.samp.events'
local encoding = require 'encoding'
local inicfg = require 'inicfg'
local imgui = require 'imgui'
local dlstatus = require 'moonloader'.download_status
local isGoUpdate = false
encoding.default = 'cp1251'
u8 = encoding.UTF8

local admins = {}
local admins_online = {}
local ini = inicfg.load({
    settings = {
        shownofit = true,
        showonscreen = false,
        posX = 40,
        posY = 460,
        color = 0xFF0000,
        color = 0xFF0000,
        font = "Arial",
        startmsg = true
    },
    color = {
        r = 255,
        g = 255,
        b = 255,
    }
}, "admins")

function sampev.onPlayerQuit(id, reason)
    for i, v in ipairs(admins_online) do
        if v["id"] == id then
            if ini.settings.shownotif then
                sampAddChatMessage(u8:decode("{c3ef15}"..v["nick"].." покинул сервер"), -1)
            end
            table.remove(admins_online, i)
            break
        end
    end
end

function sampev.onPlayerJoin(id, clist, isNPC, nick)
    for i, v in ipairs(admins) do
        if nick == v then
            table.insert(admins_online, {nick = nick, id = id})
            if ini.settings.shownofit then
                sampAddChatMessage(u8:decode("{c3ef15}"..nick.." авторизовался"), -1)
            end
            break
        end
    end
end
local settings_window_state = imgui.ImBool(false)
local onscreen = imgui.ImBool(ini.settings.showonscreen)
local startmsg = imgui.ImBool(ini.settings.startmsg)
local shownofit = imgui.ImBool(ini.settings.shownofit)
local posX = imgui.ImInt(0)
local posY = imgui.ImInt(0)
local pos = imgui.ImVec2(0, 0)
local fontA = imgui.ImBuffer(ini.settings.font, 256)

local r, g, b = imgui.ImColor(ini.color.r, ini.color.g, ini.color.b):GetFloat4()
local color = imgui.ImFloat3(r, g, b)
function imgui.OnDrawFrame()
  if settings_window_state.v then
        imgui.Begin("Меню", settings_window_state, 66)
        posX.v = ini.settings.posX
        posY.v = ini.settings.posY
        if imgui.InputInt("X", posX) then
            ini.settings.posX = posX.v
            inicfg.save(ini, "admins")
        end
        if imgui.InputInt("Y", posY) then
            ini.settings.posY = posY.v
            inicfg.save(ini, "admins")
        end
        if imgui.InputText("Шрифт", fontA) then
            ini.settings.font = fontA.v
            font = renderCreateFont(ini.settings.font, 9, 5)
            inicfg.save(ini, "admins")
        end
        if imgui.ColorEdit3('Цвет текста', color) then
            ini.color = {r = color.v[1] * 255, g = color.v[2] * 255, b = color.v[3] * 255, }
            ini.settings.color = join_argb(255, color.v[1] * 255, color.v[2] * 255, color.v[3] * 255)
            inicfg.save(ini, "admins")
        end
        if imgui.Checkbox("Рендер на экране", onscreen) then
            ini.settings.showonscreen = onscreen.v
            inicfg.save(ini, "admins")
        end
        if imgui.Checkbox("Оповещения о входе/выходе администраторов", shownofit) then
            ini.settings.shownofit = shownofit.v
            inicfg.save(ini, "admins")
        end
        if imgui.Checkbox("Стартовое сообщение", startmsg) then
            ini.settings.startmsg = startmsg.v
            inicfg.save(ini, "admins")
        end
        imgui.End()
  end
end

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

    update()
    while updateinprogess ~= false do wait(0) if isGoUpdate then isGoUpdate = false goupdate() end end

    loadadmins()
    for id = 0, 1000 do
        for i, v in ipairs(admins) do
            if sampIsPlayerConnected(id) then
                if sampGetPlayerNickname(id) == v then
                    table.insert(admins_online, {nick = v, id = id})
                end
            end
        end
    end

    if ini.settings.startmsg then
        sampAddChatMessage(u8:decode("[Admins]: Скрипт {00FF00}успешно{FFFFFF} загружен. Версия: {2980b9}"..thisScript().version.."{FFFFFF}."), -1)
        sampAddChatMessage(u8:decode("[Admins]: Автор - {2980b9}Akionka{FFFFFF}. Выключить данное сообщение можно в {2980b9}/checker{FFFFFF}."), -1)
        sampAddChatMessage(u8:decode("[Admins]: Кстати, чтобы посмотреть список администраторов он-лайн введи {2980b9}/admins{FFFFFF}."), -1)
    end

    sampRegisterChatCommand("admins", function()
        if #admins_online == 0 then sampAddChatMessage(u8:decode("{4a884f}Администраторы онлайн: ({FF0000}0{4a884f})"), -1) return true end
        sampAddChatMessage(u8:decode("{4a884f}Администраторы онлайн: ("..#admins_online..")"), -1)
        for i, v in ipairs(admins_online) do
            sampAddChatMessage(u8:decode(""..v["nick"].."["..v["id"].."]{FFFFFF}"), -1)
        end
    
    end)
    sampRegisterChatCommand("checker", function()
        settings_window_state.v = not settings_window_state.v
    end)
    font = renderCreateFont(ini.settings.font, 9, 5)
    while true do
        wait(0)
        if isGoUpdate then goupdate() break end
        if ini.settings.showonscreen then
            local renderPosY = ini.settings.posY
            renderFontDrawText(font, "Admins Online ["..#admins_online.."]:", ini.settings.posX, ini.settings.posY, bit.bor(ini.settings.color, 0xFF000000))
            renderPosY = renderPosY + 30
            for _, v in ipairs(admins_online) do
                renderFontDrawText(font, v["nick"].." ["..v["id"].."]", ini.settings.posX, renderPosY, bit.bor(ini.settings.color, 0xFF000000))
                renderPosY = renderPosY + 15
            end
        end
        imgui.Process = settings_window_state.v
    end
end

function loadadmins()
    if doesFileExist("moonloader/config/adminlist.txt") then
        for admin in io.lines("moonloader/config/adminlist.txt") do
            table.insert(admins, admin:match("(%S+)"))
        end
        print(u8:decode('Загрузка закончена. Загружено: '..#admins..' админов.'))
    else
        print(u8:decode('Файла с админами в директории <moonloader/config/adminlist.txt> не обнаружено, создан автоматически'))
        io.close(io.open("moonloader/config/adminlist.txt", "w"))
    end
end
function update()
    local fpath = os.getenv('TEMP') .. '\\checker-version.json'
    downloadUrlToFile('https://raw.githubusercontent.com/Akionka/checker/master/version.json', fpath, function(id, status, p1, p2)
        if status == dlstatus.STATUS_ENDDOWNLOADDATA then
            local f = io.open(fpath, 'r')
            if f then
                local info = decodeJson(f:read('*a'))
                if info and info.version then
                    version = info.version
                    version_num = info.version_num
                    if version_num > thisScript().version_num then
                        sampAddChatMessage(u8:decode("[Admins]: Найдено объявление. Текущая версия: {2980b9}"..thisScript().version.."{FFFFFF}, новая версия: {2980b9}"..version.."{FFFFFF}. Начинаю закачку."), -1)
                        isGoUpdate = true
                    else
                        sampAddChatMessage(u8:decode("У вас установлена самая свежая версия скрипта"), -1)
                        updateinprogess = false
                    end
                end
            end
        end
    end)
end
function goupdate()
    downloadUrlToFile("https://raw.githubusercontent.com/Akionka/checker/master/checker.lua", thisScript().path, function(id3, status1, p13, p23)
        if status1 == dlstatus.STATUS_ENDDOWNLOADDATA then
            sampAddChatMessage(u8:decode('[Admins]: Новая версия установлена! Чтобы скрипт обновился нужно либо перезайти в игру, либо ...'), -1)
            sampAddChatMessage(u8:decode('[Admins]: ... если у вас есть автоперезагрузка скриптов, то новая версия уже готова и снизу вы увидите приветственное сообщение.'), -1)
            sampAddChatMessage(u8:decode('[Admins]: Скорее всего прямо сейчас у вас сломался курсор. Введите {2980b9}/checker{FFFFFF}.'), -1)
            sampAddChatMessage(u8:decode('[Admins]: Если что-то пошло не так, то сообщите мне об этом в VK или Telegram > {2980b0}vk.com/akionka teleg.run/akionka{FFFFFF}.'), -1)
            updateinprogess = false
        end
    end)
end
function join_argb(a, r, g, b)
   local argb = b
   argb = bit.bor(argb, bit.lshift(g, 8))
   argb = bit.bor(argb, bit.lshift(r, 16))
   argb = bit.bor(argb, bit.lshift(a, 24))
   return argb
end
 

Akionka

akionka.lua
Автор темы
Проверенный
742
499
все норм, я просто цвета там поменял. а автообновление сбивает его
сделай его прям в этот код и все
Код:
script_name('Admin Checker')
script_author('akionka')
script_version('1.7')
script_version_number(8)

local sampev = require 'lib.samp.events'
local encoding = require 'encoding'
local inicfg = require 'inicfg'
local imgui = require 'imgui'
local dlstatus = require 'moonloader'.download_status
local isGoUpdate = false
encoding.default = 'cp1251'
u8 = encoding.UTF8

local admins = {}
local admins_online = {}
local ini = inicfg.load({
    settings = {
        shownofit = true,
        showonscreen = false,
        posX = 40,
        posY = 460,
        color = 0xFF0000,
        color = 0xFF0000,
        font = "Arial",
        startmsg = true
    },
    color = {
        r = 255,
        g = 255,
        b = 255,
    }
}, "admins")

function sampev.onPlayerQuit(id, reason)
    for i, v in ipairs(admins_online) do
        if v["id"] == id then
            if ini.settings.shownotif then
                sampAddChatMessage(u8:decode("{c3ef15}"..v["nick"].." покинул сервер"), -1)
            end
            table.remove(admins_online, i)
            break
        end
    end
end

function sampev.onPlayerJoin(id, clist, isNPC, nick)
    for i, v in ipairs(admins) do
        if nick == v then
            table.insert(admins_online, {nick = nick, id = id})
            if ini.settings.shownofit then
                sampAddChatMessage(u8:decode("{c3ef15}"..nick.." авторизовался"), -1)
            end
            break
        end
    end
end
local settings_window_state = imgui.ImBool(false)
local onscreen = imgui.ImBool(ini.settings.showonscreen)
local startmsg = imgui.ImBool(ini.settings.startmsg)
local shownofit = imgui.ImBool(ini.settings.shownofit)
local posX = imgui.ImInt(0)
local posY = imgui.ImInt(0)
local pos = imgui.ImVec2(0, 0)
local fontA = imgui.ImBuffer(ini.settings.font, 256)

local r, g, b = imgui.ImColor(ini.color.r, ini.color.g, ini.color.b):GetFloat4()
local color = imgui.ImFloat3(r, g, b)
function imgui.OnDrawFrame()
  if settings_window_state.v then
        imgui.Begin("Меню", settings_window_state, 66)
        posX.v = ini.settings.posX
        posY.v = ini.settings.posY
        if imgui.InputInt("X", posX) then
            ini.settings.posX = posX.v
            inicfg.save(ini, "admins")
        end
        if imgui.InputInt("Y", posY) then
            ini.settings.posY = posY.v
            inicfg.save(ini, "admins")
        end
        if imgui.InputText("Шрифт", fontA) then
            ini.settings.font = fontA.v
            font = renderCreateFont(ini.settings.font, 9, 5)
            inicfg.save(ini, "admins")
        end
        if imgui.ColorEdit3('Цвет текста', color) then
            ini.color = {r = color.v[1] * 255, g = color.v[2] * 255, b = color.v[3] * 255, }
            ini.settings.color = join_argb(255, color.v[1] * 255, color.v[2] * 255, color.v[3] * 255)
            inicfg.save(ini, "admins")
        end
        if imgui.Checkbox("Рендер на экране", onscreen) then
            ini.settings.showonscreen = onscreen.v
            inicfg.save(ini, "admins")
        end
        if imgui.Checkbox("Оповещения о входе/выходе администраторов", shownofit) then
            ini.settings.shownofit = shownofit.v
            inicfg.save(ini, "admins")
        end
        if imgui.Checkbox("Стартовое сообщение", startmsg) then
            ini.settings.startmsg = startmsg.v
            inicfg.save(ini, "admins")
        end
        imgui.End()
  end
end

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

    update()
    while updateinprogess ~= false do wait(0) if isGoUpdate then isGoUpdate = false goupdate() end end

    loadadmins()
    for id = 0, 1000 do
        for i, v in ipairs(admins) do
            if sampIsPlayerConnected(id) then
                if sampGetPlayerNickname(id) == v then
                    table.insert(admins_online, {nick = v, id = id})
                end
            end
        end
    end

    if ini.settings.startmsg then
        sampAddChatMessage(u8:decode("[Admins]: Скрипт {00FF00}успешно{FFFFFF} загружен. Версия: {2980b9}"..thisScript().version.."{FFFFFF}."), -1)
        sampAddChatMessage(u8:decode("[Admins]: Автор - {2980b9}Akionka{FFFFFF}. Выключить данное сообщение можно в {2980b9}/checker{FFFFFF}."), -1)
        sampAddChatMessage(u8:decode("[Admins]: Кстати, чтобы посмотреть список администраторов он-лайн введи {2980b9}/admins{FFFFFF}."), -1)
    end

    sampRegisterChatCommand("admins", function()
        if #admins_online == 0 then sampAddChatMessage(u8:decode("{4a884f}Администраторы онлайн: ({FF0000}0{4a884f})"), -1) return true end
        sampAddChatMessage(u8:decode("{4a884f}Администраторы онлайн: ("..#admins_online..")"), -1)
        for i, v in ipairs(admins_online) do
            sampAddChatMessage(u8:decode(""..v["nick"].."["..v["id"].."]{FFFFFF}"), -1)
        end
   
    end)
    sampRegisterChatCommand("checker", function()
        settings_window_state.v = not settings_window_state.v
    end)
    font = renderCreateFont(ini.settings.font, 9, 5)
    while true do
        wait(0)
        if isGoUpdate then goupdate() break end
        if ini.settings.showonscreen then
            local renderPosY = ini.settings.posY
            renderFontDrawText(font, "Admins Online ["..#admins_online.."]:", ini.settings.posX, ini.settings.posY, bit.bor(ini.settings.color, 0xFF000000))
            renderPosY = renderPosY + 30
            for _, v in ipairs(admins_online) do
                renderFontDrawText(font, v["nick"].." ["..v["id"].."]", ini.settings.posX, renderPosY, bit.bor(ini.settings.color, 0xFF000000))
                renderPosY = renderPosY + 15
            end
        end
        imgui.Process = settings_window_state.v
    end
end

function loadadmins()
    if doesFileExist("moonloader/config/adminlist.txt") then
        for admin in io.lines("moonloader/config/adminlist.txt") do
            table.insert(admins, admin:match("(%S+)"))
        end
        print(u8:decode('Загрузка закончена. Загружено: '..#admins..' админов.'))
    else
        print(u8:decode('Файла с админами в директории <moonloader/config/adminlist.txt> не обнаружено, создан автоматически'))
        io.close(io.open("moonloader/config/adminlist.txt", "w"))
    end
end
function update()
    local fpath = os.getenv('TEMP') .. '\\checker-version.json'
    downloadUrlToFile('https://raw.githubusercontent.com/Akionka/checker/master/version.json', fpath, function(id, status, p1, p2)
        if status == dlstatus.STATUS_ENDDOWNLOADDATA then
            local f = io.open(fpath, 'r')
            if f then
                local info = decodeJson(f:read('*a'))
                if info and info.version then
                    version = info.version
                    version_num = info.version_num
                    if version_num > thisScript().version_num then
                        sampAddChatMessage(u8:decode("[Admins]: Найдено объявление. Текущая версия: {2980b9}"..thisScript().version.."{FFFFFF}, новая версия: {2980b9}"..version.."{FFFFFF}. Начинаю закачку."), -1)
                        isGoUpdate = true
                    else
                        sampAddChatMessage(u8:decode("У вас установлена самая свежая версия скрипта"), -1)
                        updateinprogess = false
                    end
                end
            end
        end
    end)
end
function goupdate()
    downloadUrlToFile("https://raw.githubusercontent.com/Akionka/checker/master/checker.lua", thisScript().path, function(id3, status1, p13, p23)
        if status1 == dlstatus.STATUS_ENDDOWNLOADDATA then
            sampAddChatMessage(u8:decode('[Admins]: Новая версия установлена! Чтобы скрипт обновился нужно либо перезайти в игру, либо ...'), -1)
            sampAddChatMessage(u8:decode('[Admins]: ... если у вас есть автоперезагрузка скриптов, то новая версия уже готова и снизу вы увидите приветственное сообщение.'), -1)
            sampAddChatMessage(u8:decode('[Admins]: Скорее всего прямо сейчас у вас сломался курсор. Введите {2980b9}/checker{FFFFFF}.'), -1)
            sampAddChatMessage(u8:decode('[Admins]: Если что-то пошло не так, то сообщите мне об этом в VK или Telegram > {2980b0}vk.com/akionka teleg.run/akionka{FFFFFF}.'), -1)
            updateinprogess = false
        end
    end)
end
function join_argb(a, r, g, b)
   local argb = b
   argb = bit.bor(argb, bit.lshift(g, 8))
   argb = bit.bor(argb, bit.lshift(r, 16))
   argb = bit.bor(argb, bit.lshift(a, 24))
   return argb
end
Бред собачий, автообновление не может сломать цвет. В будущем переведу все скрипты на такое обновление.
 

AlfacH

Известный
111
24
Бред собачий, автообновление не может сломать цвет. В будущем переведу все скрипты на такое обновление.
боже, я заменил цвета ников админов. автообновление делает обратно твой цвет. я че хуйню по твоему пишу? если пишу значит что-то есть
 

admin23

Известный
15
0
Предлагаю дополнить скрипт и добавить чекер хелперов и друзей.
Еще желательно сделать так, чтобы человек мог по желанию выключить или включить чекер админов/хелперов/друзей через команду /checker.
 
Последнее редактирование:

CHmoki

Активный
199
51
так ты добавил авто обновление списка админов или нет
чтобы знать нужно ли обновлять мне список
 

Akionka

akionka.lua
Автор темы
Проверенный
742
499
Пока что мне нравится скрипт, но всё же, юзать его буду, если введёшь обновы: парсинг форума, для автообновления списка (да это жоска, я понимаю); распределение по цвету соответствующему должности админа.

Эти функи будут самые значимые в чекере, тк специально для тринити подобного нет.

Если не введёшь - твой чекер абсолютно ничем не будет отличаться от других. Введи хоть одну идею.
Я уже на всё сообщения подобного характера ответил выше.