Как натсроить выключение/включение скрипта LUA?

Dima Lushko

Новичок
Автор темы
9
1
Версия MoonLoader
.027.0-preview
Как настроить включение/отключение скрипта на какую то команду - по типу
Пример: Вводишь команду /bob - у тебя работает скрипт и после если обратно вводишь команду /bob - скрипт выключается
 

Dima Lushko

Новичок
Автор темы
9
1
code:
require "lib.moonloader"

local state = false
function main()
    while not isSampAvailable() do wait(200) end

    sampRegisterChatCommand("bob", function()
        state = not state
        printStringNow("Bob "..(state and "enabled" or "disabled"), 500)
    end)

    while true do
        wait(0)

        if state then
            --code
        end
    end
end
Вопрос, куда подставить свой функционал скрипта в данную команду?
 

Liquit

Активный
277
91
Вопрос, куда подставить свой функционал скрипта в данную команду?
добавить переменную состояния(3 строка в коде)
local state = false
в функции main после строк
while not isSampAvailable() do wait(200) end
вставить
Lua:
sampRegisterChatCommand("bob", function()
    state = not state
    printStringNow("Bob "..(state and "enabled" or "disabled"), 500)
end)
далее, там где скрипт уже что-то делает, весь тот код запихнуть в
Lua:
if state then
--здесь твой код
end
 

A S K I T

Активный
201
69
Если нужно включить/выключить скрипт из окна imgui то делай так:

Lua:
-- Сохранение конфига.
direct_cfg = '../moonstd/Moon Shooter.ini'
cfg = inicfg.load(inicfg.load({
    settings = {
        active = false,
    },
}, direct_cfg))
inicfg.save(cfg, direct_cfg)


-- Переменная.
active = imgui.ImBool(cfg.settings.active)


-- Включение/Выключение.
if imgui.Checkbox(u8'Скрипт активен', active) then
    cfg.settings.active = active.v
    inicfg.save(cfg, direct_cfg)
end


-- Сохранение конфига.
function saveData()
    inicfg.save({
        settings =
        {
            active = cfg.settings.active,
        },
    })
end

И потом просто проверяй cfg.settings.active.
 

VRush

https://t.me/vrushscript
Проверенный
2,341
1,089
Lua:
require "lib.moonloader"
local act = false -- Задаешь что скрипт изначально выключен


function main()
repeat wait(0) until isSampAvailable() --Ждёшь запуска сампа
    sampRegisterChatCommand("command", function() -- Создание команды с функцией
        act = not act -- Задаешь что команда переключает act
        sampAddChatMessage("Скрипт: "..(state and "Работает" or "Неработает"), -1) -- Выводишь в чат состояние скрипта
    end)
    while true do
        wait(0)
        if act then -- Если скрипт активен
            -- Код который будет выполнятся когда скрипт активен
        end
    end
end
Используй как заготовку, сохрани где-то себе
 
  • Нравится
Реакции: BOSS1k