Проверка на админский уровень

Alkoigel

Участник
Автор темы
116
15
Пытаюсь написать небольшой скрипт, но увы у меня не получается одна деталь.
В общем задача такая, если на сервере написать команду, например "/adminka", то появится диалоговое окно, в одной из строк будет написано "Уровень: *номер*"

так вот, вопрос, как мне реализовать проверку на этот уровень, для использования в дальнейшем в других функциях, как пример в выдаче наказаний:


if pInfo.info.adminLevel < 3 then sampSendChat("/a /ban " .. ids .. " " .. arr_cheat[combo_select.v + 1] .. " " .. band .. " " .. nakaz)
elseif pInfo.info.adminLevel == 3 then sampSendChat("//ban " .. ids .. " " .. arr_cheat[combo_select.v + 1] .. " " .. band .. " " .. nakaz)
else sampSendChat("/banip " .. ids .. " " .. arr_cheat[combo_select.v + 1] .. " " .. band .. " " .. nakaz) end

прошу помочь, кто чем сможет
 
  • Вау
Реакции: qdIbp
Решение
Попробовал, не сохраняет
Lua:
function on.onShowDialog(dialogId, style, title, button1, button2, text)
    --if dialogId == *диалог id* then print(dialogId)
    if text:find('Уровень: %d+') or text:find('уровень: %d+') then
        av = text:match('%d+')
        print(av)
        xzIni.cfg.lvl = av
        if inicfg.save(xzIni, der) then end
    end
    --return false
    --end
end

qdIbp

Автор темы
Проверенный
1,386
1,141
Lua:
local inicfg = require 'inicfg'
local on = require "lib.samp.events"
local der = 'xz.ini' --moonloder>config>xz.ini
local xzIni = inicfg.load(nil, der)

if xzIni == nil then
local xzIni = inicfg.load({
  cfg =
  {
    lvl = 0
  }
})
if inicfg.save(xzIni, der) then end 
print('new file')
end

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

function on.onShowDialog(dialogId, style, title, button1, button2, text)
    --if dialogId == *диалог id* then print(dialogId)
    if text:find('уровень: %d+') then
        avl = text:match('уровень: %d+')
        ab = avl:gsub('%D+','')
        print(ab)
        xzIni.cfg.lvl = ab
        if inicfg.save(xzIni, der) then end 
    end
    --return false
    --end
end

Использовать можно как

Код:
if xzIni.cfg.lvl < 1 then
    sampSendChat('Я лох, а не админ( ')
 
Последнее редактирование:
  • Нравится
Реакции: Alkoigel

Alkoigel

Участник
Автор темы
116
15
Lua:
local inicfg = require 'inicfg'
local on = require "lib.samp.events"
local der = 'xz.ini' --moonloder>config>xz.ini
local xzIni = inicfg.load(nil, der)

if xzIni == nil then
local xzIni = inicfg.load({
  cfg =
  {
    lvl = 0
  }
})
if inicfg.save(xzIni, der) then end
print('new file')
end

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

function on.onShowDialog(dialogId, style, title, button1, button2, text)
    --if dialogId == *диалог id* then print(dialogId)
    if text:find('уровень: %d+') then
        avl = text:match('уровень: %d+')
        ab = avl:gsub('%D+','')
        print(ab)
        xzIni.cfg.lvl = ab
        if inicfg.save(xzIni, der) then end
    end
    --return false
    --end
end

Использовать можно как

Код:
if xzIni.cfg.lvl < 1 then
    sampSendChat('Я лох, а не админ( ')
Попробовал, не сохраняет
 

qdIbp

Автор темы
Проверенный
1,386
1,141
Попробовал, не сохраняет
Lua:
function on.onShowDialog(dialogId, style, title, button1, button2, text)
    --if dialogId == *диалог id* then print(dialogId)
    if text:find('Уровень: %d+') or text:find('уровень: %d+') then
        av = text:match('%d+')
        print(av)
        xzIni.cfg.lvl = av
        if inicfg.save(xzIni, der) then end
    end
    --return false
    --end
end
 
  • Нравится
Реакции: SomaGnoma