Вопрос с вкл/откл действий команды

Сheesecake

Участник
Автор темы
60
2
Версия MoonLoader
Другое
Как сделать включение/отключение команды?
Например я пишу /test 1 1 1 и началась работа команды, но если я пропишу еще раз - действие остановится (Можно и любой другой командой остановить, главное чтобы действие остановилось). Делал как-то с active = not active, но оно продолжало работу. Буду благодарен за хелпу =)


Lua:
function cmd_md(pam)
  lua_thread.create(function()
    local car, clr1, clr2 = pam:match('(%d+)%s(%d+)%s(%d+)')
    if car and clr1 and clr2 then
    setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
    setCharHeading(PLAYER_PED, 270)
    vec2 = getHeadingFromVector2d(x1, y1)
    shit = math.rad(vec2)
    shit = shit + 4.8
    setCameraPositionUnfixed(-0, shit)
    wait(500)
    sampSendChat("/test "..car.." "..clr1.." "..clr2)
    wait(1000)
        setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
    setCharHeading(PLAYER_PED, 270)
    vec2 = getHeadingFromVector2d(x1, y1)
    shit = math.rad(vec2)
    shit = shit + 4.8
    setCameraPositionUnfixed(-0, shit)
    wait(500)
    sampSendChat("/test "..car.." "..clr1.." "..clr2)
    wait(1000)
      else
    sampAddChatMessage(u8'Не ввел параметры, другалек', -1)
    end
    end)
end
 
Решение
Как сделать включение/отключение команды?
Например я пишу /test 1 1 1 и началась работа команды, но если я пропишу еще раз - действие остановится (Можно и любой другой командой остановить, главное чтобы действие остановилось). Делал как-то с active = not active, но оно продолжало работу. Буду благодарен за хелпу =)


Lua:
function cmd_md(pam)
  lua_thread.create(function()
    local car, clr1, clr2 = pam:match('(%d+)%s(%d+)%s(%d+)')
    if car and clr1 and clr2 then
    setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
    setCharHeading(PLAYER_PED, 270)
    vec2 = getHeadingFromVector2d(x1, y1)
    shit = math.rad(vec2)
    shit = shit + 4.8
    setCameraPositionUnfixed(-0, shit)
    wait(500)
    sampSendChat("/test...

PanSeek

t.me/dailypanseek
Всефорумный модератор
908
1,776
Как сделать включение/отключение команды?
Например я пишу /test 1 1 1 и началась работа команды, но если я пропишу еще раз - действие остановится (Можно и любой другой командой остановить, главное чтобы действие остановилось). Делал как-то с active = not active, но оно продолжало работу. Буду благодарен за хелпу =)


Lua:
function cmd_md(pam)
  lua_thread.create(function()
    local car, clr1, clr2 = pam:match('(%d+)%s(%d+)%s(%d+)')
    if car and clr1 and clr2 then
    setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
    setCharHeading(PLAYER_PED, 270)
    vec2 = getHeadingFromVector2d(x1, y1)
    shit = math.rad(vec2)
    shit = shit + 4.8
    setCameraPositionUnfixed(-0, shit)
    wait(500)
    sampSendChat("/test "..car.." "..clr1.." "..clr2)
    wait(1000)
        setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
    setCharHeading(PLAYER_PED, 270)
    vec2 = getHeadingFromVector2d(x1, y1)
    shit = math.rad(vec2)
    shit = shit + 4.8
    setCameraPositionUnfixed(-0, shit)
    wait(500)
    sampSendChat("/test "..car.." "..clr1.." "..clr2)
    wait(1000)
      else
    sampAddChatMessage(u8'Не ввел параметры, другалек', -1)
    end
    end)
end
Lua:
sampRegisterChatCommand('bool', function() bool = not bool end) -- где регистрируются команды
bool = true

function cmd_md(pam)
    if bool then
        lua_thread.create(function()
            local car, clr1, clr2 = pam:match('(%d+)%s(%d+)%s(%d+)')
            if car and clr1 and clr2 then
                setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
                setCharHeading(PLAYER_PED, 270)
                vec2 = getHeadingFromVector2d(x1, y1)
                shit = math.rad(vec2)
                shit = shit + 4.8
                setCameraPositionUnfixed(-0, shit)
                wait(500)
                sampSendChat("/test "..car.." "..clr1.." "..clr2)
                wait(1000)
                setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
                setCharHeading(PLAYER_PED, 270)
                vec2 = getHeadingFromVector2d(x1, y1)
                shit = math.rad(vec2)
                shit = shit + 4.8
                setCameraPositionUnfixed(-0, shit)
                wait(500)
                sampSendChat("/test "..car.." "..clr1.." "..clr2)
                wait(1000)
            else
                sampAddChatMessage(u8'Не ввел параметры, другалек', -1)
            end
        end)
    end
end
Lua:
bool = true

function cmd_md(pam)
    bool = not bool
    if bool then
        lua_thread.create(function()
            local car, clr1, clr2 = pam:match('(%d+)%s(%d+)%s(%d+)')
            if car and clr1 and clr2 then
                setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
                setCharHeading(PLAYER_PED, 270)
                vec2 = getHeadingFromVector2d(x1, y1)
                shit = math.rad(vec2)
                shit = shit + 4.8
                setCameraPositionUnfixed(-0, shit)
                wait(500)
                sampSendChat("/test "..car.." "..clr1.." "..clr2)
                wait(1000)
                setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
                setCharHeading(PLAYER_PED, 270)
                vec2 = getHeadingFromVector2d(x1, y1)
                shit = math.rad(vec2)
                shit = shit + 4.8
                setCameraPositionUnfixed(-0, shit)
                wait(500)
                sampSendChat("/test "..car.." "..clr1.." "..clr2)
                wait(1000)
            else
                sampAddChatMessage(u8'Не ввел параметры, другалек', -1)
            end
        end)
    end
end
Так пробовал?
 
  • Нравится
Реакции: MeG@LaDo[N] ^_^

MeG@LaDo[N] ^_^

Известный
280
320
Как сделать включение/отключение команды?
Например я пишу /test 1 1 1 и началась работа команды, но если я пропишу еще раз - действие остановится (Можно и любой другой командой остановить, главное чтобы действие остановилось). Делал как-то с active = not active, но оно продолжало работу. Буду благодарен за хелпу =)


Lua:
function cmd_md(pam)
  lua_thread.create(function()
    local car, clr1, clr2 = pam:match('(%d+)%s(%d+)%s(%d+)')
    if car and clr1 and clr2 then
    setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
    setCharHeading(PLAYER_PED, 270)
    vec2 = getHeadingFromVector2d(x1, y1)
    shit = math.rad(vec2)
    shit = shit + 4.8
    setCameraPositionUnfixed(-0, shit)
    wait(500)
    sampSendChat("/test "..car.." "..clr1.." "..clr2)
    wait(1000)
        setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
    setCharHeading(PLAYER_PED, 270)
    vec2 = getHeadingFromVector2d(x1, y1)
    shit = math.rad(vec2)
    shit = shit + 4.8
    setCameraPositionUnfixed(-0, shit)
    wait(500)
    sampSendChat("/test "..car.." "..clr1.." "..clr2)
    wait(1000)
      else
    sampAddChatMessage(u8'Не ввел параметры, другалек', -1)
    end
    end)
end
делай проверку просто.
в начале local active = false
а в кмд
if active then
--code
end
 

Сheesecake

Участник
Автор темы
60
2
Lua:
sampRegisterChatCommand('bool', function() bool = not bool end) -- где регистрируются команды
bool = true

function cmd_md(pam)
    if bool then
        lua_thread.create(function()
            local car, clr1, clr2 = pam:match('(%d+)%s(%d+)%s(%d+)')
            if car and clr1 and clr2 then
                setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
                setCharHeading(PLAYER_PED, 270)
                vec2 = getHeadingFromVector2d(x1, y1)
                shit = math.rad(vec2)
                shit = shit + 4.8
                setCameraPositionUnfixed(-0, shit)
                wait(500)
                sampSendChat("/test "..car.." "..clr1.." "..clr2)
                wait(1000)
                setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
                setCharHeading(PLAYER_PED, 270)
                vec2 = getHeadingFromVector2d(x1, y1)
                shit = math.rad(vec2)
                shit = shit + 4.8
                setCameraPositionUnfixed(-0, shit)
                wait(500)
                sampSendChat("/test "..car.." "..clr1.." "..clr2)
                wait(1000)
            else
                sampAddChatMessage(u8'Не ввел параметры, другалек', -1)
            end
        end)
    end
end
Lua:
bool = true

function cmd_md(pam)
    bool = not bool
    if bool then
        lua_thread.create(function()
            local car, clr1, clr2 = pam:match('(%d+)%s(%d+)%s(%d+)')
            if car and clr1 and clr2 then
                setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
                setCharHeading(PLAYER_PED, 270)
                vec2 = getHeadingFromVector2d(x1, y1)
                shit = math.rad(vec2)
                shit = shit + 4.8
                setCameraPositionUnfixed(-0, shit)
                wait(500)
                sampSendChat("/test "..car.." "..clr1.." "..clr2)
                wait(1000)
                setCharCoordinates(PLAYER_PED, -1476.2, 1249.8, 1028.5)
                setCharHeading(PLAYER_PED, 270)
                vec2 = getHeadingFromVector2d(x1, y1)
                shit = math.rad(vec2)
                shit = shit + 4.8
                setCameraPositionUnfixed(-0, shit)
                wait(500)
                sampSendChat("/test "..car.." "..clr1.." "..clr2)
                wait(1000)
            else
                sampAddChatMessage(u8'Не ввел параметры, другалек', -1)
            end
        end)
    end
end
Так пробовал?
делай проверку просто.
в начале local active = false
а в кмд
if active then
--code
end
~~~~
Примерно так-же делал, но действия телепортов продолжаются т.е не останавливается команда :/
 

PanSeek

t.me/dailypanseek
Всефорумный модератор
908
1,776
~~~~
Примерно так-же делал, но действия телепортов продолжаются т.е не останавливается команда :/
Может слишком быстро прописываете снова? Там как минимум 3 секунды нужно ждать для выполнения всего кода (то что в потоке).
Как по мне лучше отдельной командой активацию сделать, но это зависит от случая. И примерно - это как..?
 

Сheesecake

Участник
Автор темы
60
2
Может слишком быстро прописываете снова? Там как минимум 3 секунды нужно ждать для выполнения всего кода (то что в потоке).
Как по мне лучше отдельной командой активацию сделать, но это зависит от случая. И примерно - это как..?
Просто это лишь отрывок маленький от всей команыд, в основной команде идут около 30 повторов таких телепортов с указанными параметрами. "Примерно", то-есть криво, но сейчас сделал по примеру, а все равно не останавливается. :[
Мне нужно чтобы можно было в любой момент остановить команду и продолжение этих телепортов сбрасывалось т.е команда отключилась грубо говоря, но чет не выходит