软件Tags:
罗技万能是一款兼容所有罗技鼠标的驱动程序,尤其对于那些需要通过宏来游戏的朋友而言,简直是天赐良机,再也不必费心去寻找同型号的驱动了。这款通用版驱动便可轻松实现宏设置,理论上适用于所有游戏,诚邀您下载体验。
当前的默认设置如下:
键盘的G6关闭,G1、G2、G3、G4、G5为五个参数。然而,我目前仅启用了G1和G2,其余的可根据个人需求自行开启,毕竟并非每位用户都需要五个参数,不是吗?
鼠标左键用于压枪,G8则为左键连点与压枪的结合。如果您想更改热键等设置,可以参考我所做的绿色注释进行调整。
我已尽量将我能想到的内容进行了注释。如若还有不解之处,欢迎随时向我询问。
① 首先,新建一个与游戏相应的配置文件,别忘了在游戏期间将配置文件锁定的选项勾选上。
若不知游戏运行时的应用程序位置,可先启动游戏,再打开任务管理器,右键点击相应进程,选择“打开文件所在的位置”即可找到...
② 在配置文件上右键选择“编写脚本”
③ 在左上角点击“脚本”→“导入”,选择“覆盖”
④ 完成
如需使用更多参数,可自行删除mod前的---,然后下拉修改相应的参数即可
特别说明:
V3和V2可视为一个精简版与一个高级版,两个版本基本相同,唯有V3增加了多压枪参数。因此,如想使用此功能,最好同时拥有罗技的键盘和鼠标。若仅有一只鼠标,请自行衡量其按键是否足够。提示,如果全部开启,则需要额外的7个G键。需特别指出,V3版本较为复杂,如果没有动手能力且对多参数需求不高,建议继续使用V2。此外,V3因参数众多,特增设了一个通过左ALT键暂停压枪的功能。请注意!这是V3版本!
就我个人的看法而言,无论是编写罗技LUA还是其他代码,实际上差别不大,只要明确了解功能的原理,便可顺利实现。
例如,若需实现压枪功能,则需理解其原理:开火时鼠标持续向下拉动,不就可以了吗?因此,可以理解为:若按下左键,则鼠标持续向下移动。
那么公式化可表述为:
如果按下左键,则
鼠标持续向下移动。
既然如此,根据if...then...的逻辑,便是 if (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then
然后是鼠标向下移动MoveMouseRelative(x y)
紧接着,根据if...then...后需添加end以结束if,后续再添加一个end即可:
if (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then
MoveMouseRelative(x y)
end
然而,压枪并非仅仅一次移动,而是一个持续的过程。那么如何才能持续?让它不断执行即可!因此我们需加上一个循环repeat。
压枪功能仅在开火时启用。那么在不开火时,显然是不能进行压枪的。何时不开火呢?即松开左键或未按下左键时,添加循环条件until not IsMouseButtonPressed(1)。
因此,完整的代码为:
if (event == "MOUSE_BUTTON_PRESSED" and arg == 1) then
repeat
MoveMouseRelative(x y)
until not IsMouseButtonPressed(1)
end
这便是一个最基本的标准压枪宏,接下来可以继续细化。例如,压枪不应一直进行,因此要加个开关:
if (event == "G_PRESSED" and arg == 1) then
norecoil = true
end
自然,既然可以开启,也要能够关闭。因此,便需要添加else:
if (event == "G_PRESSED" and arg == 1) then
norecoil = true
else
norecoil = false
end
或者更简洁一点:
if (event == "G_PRESSED" and arg == 1) then
norecoil = not norecoil
end
既然开关已经设定,开关与“电灯”必然需要联系在一起。故而,压枪需满足两个条件,一个是按下左键,一个是开关已开启。因此,需添加开关条件,变为:
if (event == "MOUSE_BUTTON_PRESSED" and arg == 1 and norecoil) then
之后整体代码为:
if (event == "G_PRESSED" and arg == 1) then
norecoil = not norecoil
end
if (event == "MOUSE_BUTTON_PRESSED" and arg == 1 and norecoil) then
repeat
MoveMouseRelative(x y)
until not IsMouseButtonPressed(1)
end