Почему не идёт проверка с конфига

.KOHTOP.

Активный
Автор темы
226
35
Версия MoonLoader
.027.0-preview
Сделал короче что-то типо проверки на ведённый ключ, а оно не рабит

Код:
if ini.main.authkod == false then
    --Типо окно открывается
end
 
  • Эм
Реакции: YarikVL
Решение
Lua:
local imgui = require('mimgui')
local inicfg = require('inicfg')
local IniFileName = 'test.ini'

local ini = inicfg.load({ main = { authkod = false } }, IniFileName)
local window = imgui.new.bool(ini.main.authkod)

function main()
    repeat wait(0) until isSampAvailable()
    if not doesFileExist(getWorkingDirectory() .. '\\config\\' .. IniFileName) then inicfg.save(ini, IniFileName) end
    sampRegisterChatCommand('test', function()
        ini.main.authkod = not ini.main.authkod
        inicfg.save(ini, IniFileName)
    end)
    while true do
        wait(0)
        window[0] = ini.main.authkod
    end
end

local frame = imgui.OnFrame(function() return window[0] end,
    function(ok)
        imgui.Begin('window', nil)...

Hinаta

Известный
777
362
Lua:
local imgui = require('mimgui')
local inicfg = require('inicfg')
local IniFileName = 'test.ini'

local ini = inicfg.load({ main = { authkod = false } }, IniFileName)
local window = imgui.new.bool(ini.main.authkod)

function main()
    repeat wait(0) until isSampAvailable()
    if not doesFileExist(getWorkingDirectory() .. '\\config\\' .. IniFileName) then inicfg.save(ini, IniFileName) end
    sampRegisterChatCommand('test', function()
        ini.main.authkod = not ini.main.authkod
        inicfg.save(ini, IniFileName)
    end)
    while true do
        wait(0)
        window[0] = ini.main.authkod
    end
end

local frame = imgui.OnFrame(function() return window[0] end,
    function(ok)
        imgui.Begin('window', nil)
        imgui.End()
    end
)
 

.KOHTOP.

Активный
Автор темы
226
35
Lua:
local imgui = require('mimgui')
local inicfg = require('inicfg')
local IniFileName = 'test.ini'

local ini = inicfg.load({ main = { authkod = false } }, IniFileName)
local window = imgui.new.bool(ini.main.authkod)

function main()
    repeat wait(0) until isSampAvailable()
    if not doesFileExist(getWorkingDirectory() .. '\\config\\' .. IniFileName) then inicfg.save(ini, IniFileName) end
    sampRegisterChatCommand('test', function()
        ini.main.authkod = not ini.main.authkod
        inicfg.save(ini, IniFileName)
    end)
    while true do
        wait(0)
        window[0] = ini.main.authkod
    end
end

local frame = imgui.OnFrame(function() return window[0] end,
    function(ok)
        imgui.Begin('window', nil)
        imgui.End()
    end
)
А если я добавляю код в условие, что если код верный, то была галочка
Lua:
        if ffi.string(elements.input.authkod) == "229HW-BAYXG-RUSH" or "7776J-EWJD6-RUSH" then
            imgui.Text(faicons("CHECK"))
        end

Но при добавлении or "7776J-EWJD6-RUSH" галочка всегда стоит...

Как это пофиксить?
 

.KOHTOP.

Активный
Автор темы
226
35
Lua:
if ffi.string(elements.input.authkod) == "229HW-BAYXG-RUSH" or ffi.string(elements.input.authkod) == "7776J-EWJD6-RUSH" then
Lua:
if imgui.Button(u8'ГОТОВО', imgui.ImVec2(135, 35)) then
            if ffi.string(elements.input.authkod) == "" then
                message():error('Введите код в поле строки!')
            elseif ffi.string(elements.input.authkod) ~= "229HW-BAYXG-RUSH" or ffi.string(elements.input.authkod) ~= "7776J-EWJD6-RUSH" then
                message():error('Неверный код!')
            elseif ffi.string(elements.input.authkod) == "229HW-BAYXG-RUSH" or ffi.string(elements.input.authkod) == "7776J-EWJD6-RUSH" then
                ini.auth.authkod = true
                inicfg.save(ini, iniFile)
                windows.AdminTools[0] = not windows.AdminTools[0]
                windows.auth[0] = not windows.auth[0]
            end
        end

Пишет неверный код :D
 

Hinаta

Известный
777
362
Пишет неверный код :D
ну а что ты хотел, по твоему условию он будет выдавать ошибку, если переменная не равна одному из кодов. А быть равной одновременно двум разным строкам переменная не может, поэтому вот.

Lua:
elseif ffi.string(elements.input.authkod) ~= "229HW-BAYXG-RUSH" or ffi.string(elements.input.authkod) ~= "7776J-EWJD6-RUSH" then
замени or на and
 

.KOHTOP.

Активный
Автор темы
226
35
ну а что ты хотел, по твоему условию он будет выдавать ошибку, если переменная не равна одному из кодов. А быть равной одновременно двум разным строкам переменная не может, поэтому вот.

Lua:
elseif ffi.string(elements.input.authkod) ~= "229HW-BAYXG-RUSH" or ffi.string(elements.input.authkod) ~= "7776J-EWJD6-RUSH" then
замени or на and
не работает
 

Hinаta

Известный
777
362
1699192372198.png

1699192396417.png

1699192433121.png

1699192456880.png

1699192480558.png
 

.KOHTOP.

Активный
Автор темы
226
35
Бл... я просто конченный, поэтому перепутал и сделал это вообще в скрипте, которого у меня в сборке нету, спасибо