lua - 脚本不只停止键盘
问题描述
大家好,我有一个键盘 G105
,我试图制作一个小脚本,它正在工作,但它不想停止。
我想打开 G1 和关闭 G2。谢谢
**Macro LIST**
skill Selfbuff -- use after any playmacro "Petx" after reuse time
1 PlayMacro(selfbuff1) Sleep (1800000) --30 minutes
2 PlayMacro(selfbuff2) Sleep (600000) -- 10 minutes
-- add more
Skill Empower -- use after any playmacro "Petx" if none of then are
runing, can be at same time with "Skill Sellbuff" list
1 PlayMacro(Boost1) Reuse time = 480 seconds,Boosting time = 60 seconds
2 PlayMacro(Boost2) Reuse time = 600 seconds, Boosting time = 180 seconds
-- add more
-- G1 = 2pet
-- G2 = 3pet
local function interruptable_sleep(delay)
local tm = GetRunningTime() + delay
repeat
if IsKeyLockOn("scrolllock") then return true end
local t = tm - GetRunningTime()
if t > 0 then Sleep(math.min(t, 100)) end
until t <= 0
end
function OnEvent(event, arg)
if event=="G_PRESSED" and arg==1 then
repeat
local exit
for _, phase in ipairs{
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
{macro = "Pet1", sleep_macro = 2000, },
-- if on reuse PlayMacro(selfbuff1),PlayMacro(Selfbuff2), may add more
-- if on reuse PlayMacro(boots1),PlayMacro(boost2) may add some
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
{macro = "Pet2", sleep_macro = 2000, },
-- if on reuse PlayMacro(selfbuff1),PlayMacro(Selfbuff2), may add more
-- if on reuse PlayMacro(boots1),PlayMacro(boost2) may add some
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
} do
PlayMacro(phase.macro)
exit = interruptable_sleep(phase.sleep_macro)
AbortMacro()
if exit then break end
end
until exit
PressAndReleaseKey("scrolllock")
end
end
非常感谢您的帮助,但我无法理解
这是我的完整脚本谢谢你
local function interruptable_sleep(delay)
local tm = GetRunningTime() + delay
repeat
if IsKeyLockOn("scrolllock") then return true end
local t = tm - GetRunningTime()
if t > 0 then Sleep(math.min(t, 100)) end
until t <= 0
end
function OnEvent(event, arg)
if event=="G_PRESSED" and arg==1 then
repeat
local exit
for _, phase in ipairs{
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
{macro = "Pet1", sleep_macro = 2000, },
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
{macro = "Pet2", sleep_macro = 2000, },
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
} do
PlayMacro(phase.macro)
exit = interruptable_sleep(phase.sleep_macro)
AbortMacro()
if exit then break end
end
until exit
Sleep(250)
PressAndReleaseKey("scrolllock")
elseif event=="G_PRESSED" and arg==2 then
repeat
local exit
for _, phase in ipairs{
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
{macro = "Pet1", sleep_macro = 2000, },
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
{macro = "Pet2", sleep_macro = 2000, },
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
{macro = "Pet3", sleep_macro = 2000, },
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
} do
PlayMacro(phase.macro)
exit = interruptable_sleep(phase.sleep_macro)
AbortMacro()
if exit then break end
end
until exit
Sleep(250)
PressAndReleaseKey("scrolllock")
elseif event=="G_PRESSED" and arg==3 then
repeat
local exit
for _, phase in ipairs{
{macro = "Basicos1", sleep_macro = 13000, },
{macro = "Pick", sleep_macro = 1000, },
{macro = "PetLargo1", sleep_macro = 2800, },
{macro = "Basicos1", sleep_macro = 13000, },
{macro = "Pick", sleep_macro = 1000, },
{macro = "PetLargo2", sleep_macro = 2800, },
} do
PlayMacro(phase.macro)
exit = interruptable_sleep(phase.sleep_macro)
AbortMacro()
if exit then break end
end
until exit
Sleep(250)
PressAndReleaseKey("scrolllock")
elseif event=="G_PRESSED" and arg==4 then
repeat
local exit
for _, phase in ipairs{
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
{macro = "PetLargo1", sleep_macro = 2800, },
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
{macro = "PetLargo2", sleep_macro = 2800, },
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
{macro = "PetLargo3", sleep_macro = 2800, },
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
} do
PlayMacro(phase.macro)
exit = interruptable_sleep(phase.sleep_macro)
AbortMacro()
if exit then break end
end
until exit
Sleep(250)
PressAndReleaseKey("scrolllock")
elseif event=="G_PRESSED" and arg==5 then
repeat
local exit
for _, phase in ipairs{
{macro = "Basicos1", sleep_macro = 16000,},
{macro = "Pick", sleep_macro = 500,},
} do
PlayMacro(phase.macro)
exit = interruptable_sleep(phase.sleep_macro)
AbortMacro()
if exit then break end
end
until exit
Sleep(250)
PressAndReleaseKey("scrolllock")
end
end
专为汽车农业游戏中的不同地点而设计
解决方案
我想打开 G1 和关闭 G2。
IMO,不可能用 G2 或 G1 停止你的脚本。
但是您可以使用 ScrollLock 键来停止脚本:
ScrollLock LED 最初是关闭的。
按 G1,脚本启动。
在脚本运行时,按下 ScrollLock,其 LED 会亮起。
该脚本完成其工作并关闭 ScrollLock LED。
function OnEvent(event, arg)
if event=="G_PRESSED" and arg==1 then
repeat
for _, Fkey in ipairs{"F1", "F2"} do
PlayMacro("Basicos")
for t = 1, 20 do
Sleep(1000)
if IsKeyLockOn("scrolllock") then break end
end
AbortMacro()
PressAndReleaseKey(Fkey)
if IsKeyLockOn("scrolllock") then break end
Sleep(1500)
end
until IsKeyLockOn("scrolllock") -- is ScrollLock LED on?
PressAndReleaseKey("scrolllock") -- turn it off
end
end
更新
local function interruptable_sleep(delay)
local tm = GetRunningTime() + delay
repeat
if IsKeyLockOn("scrolllock") then return true end
local t = tm - GetRunningTime()
if t > 0 then Sleep(math.min(t, 100)) end
until t <= 0
end
function OnEvent(event, arg)
if event=="G_PRESSED" and arg==1 then
repeat
local exit
for _, phase in ipairs{
{macro = "Basicos", sleep_macro = 13000, fkey = "F1", sleep_fkey = 2000},
{macro = "Basicos", sleep_macro = 15000, fkey = "F2", sleep_fkey = 1800},
{macro = "BUFF", sleep_macro = 5000, fkey = "F3", sleep_fkey = 2500},
} do
PlayMacro(phase.macro)
exit = interruptable_sleep(phase.sleep_macro)
AbortMacro()
if exit then break end
PressAndReleaseKey(phase.fkey)
exit = interruptable_sleep(phase.sleep_fkey)
if exit then break end
end
until exit
PressAndReleaseKey("scrolllock")
end
end
更新#2
-- G1 = 2pet
-- G2 = 3pet
local function interruptable_sleep(delay)
local tm = GetRunningTime() + delay
repeat
if IsKeyLockOn("scrolllock") then return true end
local t = tm - GetRunningTime()
if t > 0 then Sleep(math.min(t, 100)) end
until t <= 0
end
function OnEvent(event, arg)
if event=="G_PRESSED" and arg==1 then
repeat
local exit
for _, phase in ipairs{
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
{macro = "Pet1", sleep_macro = 2000, },
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
{macro = "Pet2", sleep_macro = 2000, },
{macro = "Basicos1", sleep_macro = 16000, },
{macro = "Pick", sleep_macro = 2000, },
} do
PlayMacro(phase.macro)
exit = interruptable_sleep(phase.sleep_macro)
AbortMacro()
if exit then break end
end
until exit
PressAndReleaseKey("scrolllock")
elseif event=="G_PRESSED" and arg==2 then
local loop_ctr = 0
repeat
local exit
loop_ctr = loop_ctr + 1
for _, phase in ipairs{
{macro = "Basicos1", sleep_macro = 16000, skip_on_first_loop = false, },
{macro = "Pick", sleep_macro = 2000, skip_on_first_loop = false, },
{macro = "Pet1", sleep_macro = 2000, skip_on_first_loop = false, },
{macro = "Basicos1", sleep_macro = 16000, skip_on_first_loop = false, },
{macro = "Pick", sleep_macro = 2000, skip_on_first_loop = false, },
{macro = "Pet2", sleep_macro = 2000, skip_on_first_loop = false, },
{macro = "Basicos1", sleep_macro = 16000, skip_on_first_loop = false, },
{macro = "Pick", sleep_macro = 2000, skip_on_first_loop = false, },
{macro = "Pet3", sleep_macro = 2000, skip_on_first_loop = false, },
{macro = "Basicos1", sleep_macro = 16000, skip_on_first_loop = false, },
{macro = "Pick", sleep_macro = 2000, skip_on_first_loop = false, },
} do
if loop_ctr > 1 or not phase.skip_on_first_loop then
PlayMacro(phase.macro)
exit = interruptable_sleep(phase.sleep_macro)
AbortMacro()
if exit then break end
end
end
until exit
PressAndReleaseKey("scrolllock")
end
end
推荐阅读
- c# - 带有 Interop.Excel 的 C# 服务不能作为服务工作,而只能在本地工作
- javascript - IndexOf 函数现在可以正常工作了吗?Javascript(使用过滤组件)
- python - Pandas - 单元格中的 to_csv 引用列表
- javascript - 反转谷歌图表中的条形图
- python - 如何在 pandas 数据帧的每 n 行中删除 p 行?
- django - 字段“id”需要一个数字但得到“127.0.0.1”
- c - 如何使用 '%c' 和 scanf() 输入字符串
- android - Android 上的 ConfigFS 出现“功能未实现”错误
- javascript - 如何在电子 nodejs 中创建自定义字母字符映射
- python - 如果其中发生异常,实例化一个新的相同线程会导致堆栈溢出(python)吗?