lock =false
function OnEvent(event, arg)
EnablePrimaryMouseButtonEvents(true)
--OutputLogMessage("event=%s arg=%d\n",event,arg)
--OutputLogMessage(arg)
if (event == "MOUSE_BUTTON_PRESSED" and arg == 5) then
notLock()
end
if (event == "MOUSE_BUTTON_PRESSED" and arg == 1 and lock) then
start()
end
end
function notLock()
lock = not lock
end
function start()
repeat
MoveMouseRelative(0,1)
Sleep(9)
until not IsMouseButtonPressed(1)
end
if (event == "MOUSE_BUTTON_PRESSED" and arg == 5) 判断鼠标是否按下 and 按的是5键(5号键对应鼠标的侧键),and是且的意思,两个都满足才执行里面的内容,这里因为我们按下的是鼠标左键 arg就等于了1 所以直接到下一个if
第二个判断
if (event == "MOUSE_BUTTON_PRESSED" and arg == 1 and lock) 同样的判断 同样的and 鼠标按下 and 按的是5键 and lock,这里就体现了lock 的作用 因为上面我们lock定义了一个false,所以这个判断结果为false,并不会执行, 这样整个函数就跑完了,你就发现什么都没有做 因为全跳过了,所以体现了lock的作用,一个开关,不可能按下鼠标左键就往下压吧。当你按下鼠标5号键 lock就为 not lock ,not就是非的意思 ,比如你lock现在等于false not一下就等于了true ,如果现在是true not一下就等于false了,
重点函数 start
压枪的函数了,压枪说白了就是在你按下开火的同时把鼠标往下移动,那我们就需要一个api了MoveMouseRelative(x,y),移动鼠标,x的值为横向移动,正为右,负为左,y的值为纵向移动,正为下,负为上,移动有了 那我们不可呢只移动一次就完了 这个时候加一个循环repeat until 结算循环的条件放在until , IsMouseButtonPressed(1) 这个api为判断你是否按下鼠标,里面写的1就是鼠标左键,我们要的是按下就一直循环,所以在前面加一个not 就实现了一直循环,循环完成了,执行的时候发现压得太快了,一瞬间就到了底部,程序的运行都是毫秒级的,所以基本就是一毫秒往下动一次, 这个时候需要加一个延时,Sleep(1),里面传的数越大,延时就越久。