Перезагрузка скрипта

MrCH

Участник
Автор темы
113
17
Версия MoonLoader
.026-beta
При написании скрипта вскрылась проблемка, на кнопку num1 эмулируются клавиши бега, но есть одно но, этот бег надо как-то выключать. Я пытался добавить нажатие второй кнопки для перезагрузки скрипта, но она отказывается работать
lua:
local key = require 'vkeys'
require 'lib.moonloader'
require 'sampfuncs'
function main()
    while true do
        wait(0)
        if wasKeyPressed(key.VK_NUMPAD1) then
            while true do
                setVirtualKeyDown(VK_W, true)
                setVirtualKeyDown(VK_SPACE, true)
                wait(1500)
                setVirtualKeyDown(VK_SPACE, false)
                setVirtualKeyDown(VK_SHIFT, true)
                wait(10)
                setVirtualKeyDown(VK_SHIFT, false)
                setVirtualKeyDown(VK_W, false)
            end
        end
    end
end
 
Решение
Оно бы работало, если бы не эмуляция клавиш, почему-то из-за постоянно зажатой W не хочет деактивироваться скрипт, может есть какой-нибудь другой способ эмулировать бег?
Устроит зажимной на кнопку?
Lua:
require 'lib.moonloader'
function main()
    while true do wait(0)
        if isKeyDown(VK_1) then
            setVirtualKeyDown(VK_W, true)
                setVirtualKeyDown(VK_SPACE, true)
                wait(1500)
                setVirtualKeyDown(VK_SPACE, false)
                setVirtualKeyDown(VK_SHIFT, true)
                wait(10)
                setVirtualKeyDown(VK_SHIFT, false)
                setVirtualKeyDown(VK_W, false)
        end
    end
end

Dmitriy Makarov

25.05.2021
Проверенный
2,513
1,138
Зачем тебе бесконечный цикл в бесконечном цикле? 🤔
И зачем подключать библиотеку vkeys, если у тебя подключён moonloader? Да и используешь ты её только в одном случае, а в остальных обошёлся без неё.)

Ну а так, ты можешь просто bool переменную создать:
Lua:
require 'lib.moonloader'
require 'sampfuncs'

local activate = false

function main()
    while true do wait(0)
        if wasKeyPressed(VK_NUMPAD1) then
            activate = not activate
        end
    
        if activate then
            lua_thread.create(function() 
                setVirtualKeyDown(VK_W, true)
                setVirtualKeyDown(VK_SPACE, true)
                wait(1500)
                setVirtualKeyDown(VK_SPACE, false)
                setVirtualKeyDown(VK_SHIFT, true)
                wait(10)
                setVirtualKeyDown(VK_SHIFT, false)
                setVirtualKeyDown(VK_W, false)
            end)
         end
    end
end
Попробуй код выше.
 
  • Нравится
Реакции: qdIbp и ARMOR

MrCH

Участник
Автор темы
113
17
Зачем тебе бесконечный цикл в бесконечном цикле? 🤔
И зачем подключать библиотеку vkeys, если у тебя подключён moonloader? Да и используешь ты её только в одном случае, а в остальных обошёлся без неё.)

Ну а так, ты можешь просто bool переменную создать:
Lua:
require 'lib.moonloader'
require 'sampfuncs'

local activate = false

function main()
    while true do wait(0)
        if wasKeyPressed(VK_NUMPAD1) then
            activate = not activate
        end
  
        if activate then
            lua_thread.create(function()
                setVirtualKeyDown(VK_W, true)
                setVirtualKeyDown(VK_SPACE, true)
                wait(1500)
                setVirtualKeyDown(VK_SPACE, false)
                setVirtualKeyDown(VK_SHIFT, true)
                wait(10)
                setVirtualKeyDown(VK_SHIFT, false)
                setVirtualKeyDown(VK_W, false)
            end)
         end
    end
end
Попробуй код выше.
Оно бы работало, если бы не эмуляция клавиш, почему-то из-за постоянно зажатой W не хочет деактивироваться скрипт, может есть какой-нибудь другой способ эмулировать бег?
 

TieXoP

Известный
133
27
Оно бы работало, если бы не эмуляция клавиш, почему-то из-за постоянно зажатой W не хочет деактивироваться скрипт, может есть какой-нибудь другой способ эмулировать бег?
Устроит зажимной на кнопку?
Lua:
require 'lib.moonloader'
function main()
    while true do wait(0)
        if isKeyDown(VK_1) then
            setVirtualKeyDown(VK_W, true)
                setVirtualKeyDown(VK_SPACE, true)
                wait(1500)
                setVirtualKeyDown(VK_SPACE, false)
                setVirtualKeyDown(VK_SHIFT, true)
                wait(10)
                setVirtualKeyDown(VK_SHIFT, false)
                setVirtualKeyDown(VK_W, false)
        end
    end
end
 
  • Нравится
Реакции: MrCH

MrCH

Участник
Автор темы
113
17
Устроит зажимной на кнопку?
Lua:
require 'lib.moonloader'
function main()
    while true do wait(0)
        if isKeyDown(VK_1) then
            setVirtualKeyDown(VK_W, true)
                setVirtualKeyDown(VK_SPACE, true)
                wait(1500)
                setVirtualKeyDown(VK_SPACE, false)
                setVirtualKeyDown(VK_SHIFT, true)
                wait(10)
                setVirtualKeyDown(VK_SHIFT, false)
                setVirtualKeyDown(VK_W, false)
        end
    end
end
вполне