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

Alkoigel

Участник
Автор темы
116
15
Версия MoonLoader
.026-beta
Пытаюсь написать небольшой скрипт, но увы у меня не получается одна деталь.
В общем задача такая, если на сервере написать команду, например "/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
 

Alkoigel

Участник
Автор темы
116
15
Lua:
function sampev.onShowDialog(id, style, title, button1, button2, text)
if id == Ид Диалога then
adminLevel = text:match('Уровень: (%d)')
end
end
Ну и в ini записать допустим
Та не, я понимаю как вызвать саму проверку, но как сохранить результат (полученный лвл), чтобы в последствии через if adminLevel < 3 then sampSendchat("/a /ban ...")
elseif adminLevel == 3 then sampSendchat("/ban ...")
else sampSendchat("/banip ...")
 

Shepi

Активный
178
37
Та не, я понимаю как вызвать саму проверку, но как сохранить результат (полученный лвл), чтобы в последствии через if adminLevel < 3 then sampSendchat("/a /ban ...")
elseif adminLevel == 3 then sampSendchat("/ban ...")
else sampSendchat("/banip ...")
Дай фулл код
 
  • Нравится
Реакции: qdIbp

qdIbp

Автор темы
Проверенный
1,387
1,143
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 и Shepi

Alkoigel

Участник
Автор темы
116
15
Lua:
function sampev.onShowDialog(id, style, title, button1, button2, text)
if id == Ид Диалога then
adminLevel = text:match('Уровень: (%d)')
end
end
Ну и в ini записать допустим
Хотя всё же, взяв за основу - благодарю, всё сработало :)
 
  • Нравится
  • Злость
Реакции: Neil_ и Shepi