使用罗技的鼠标宏实现在暗黑3中一键切换巅峰的功能,注释很详细了。实例始用野蛮人,一般来说组队死灵法师需要这样的功能。
需要注意的是,下面最终代码里面的鼠标坐标仅仅适用于我的显示器,至于大家的显示器在游戏中的按钮的坐标,大家可以在将鼠标移动到按钮上后,执行下面代码,看罗技鼠标console输出的数值就是你的坐标了。同时显示的还有你当前按键的编号(实例输出结果arg = 2,也就是你目前按的键在代码里对应的是2这个数字),也很关键。确定坐标和你想使用的快捷键的在程序宏中对应的编码很关键!
function OnEvent(event, arg) x,y = GetMousePosition(); --获取到当前鼠标位置,并且输出到脚本console界面,为下面获得每个按钮的坐标提供很大的帮助. OutputLogMessage("event = %s, arg = %s\n", event, arg); --输出当前按了哪个按键,同样非常关键. OutputLogMessage("z = %d, %d\n", x, y); --输出当前鼠标坐标到console. end
执行上面的代码,可以看到目前按键信息以及坐标信息,如下图:
正式代码如下:
--本脚本以野蛮人作为测试,始用罗技G610键盘为例(鼠标同理)说明。实现按键盘的F5键将力量加满,体能为0; --按F6键将体能加满,力量为0.(此功能未实现,大家可以自己试试看) function OnEvent(event, arg) --此if语句判断是否按了F5,是的话加满力量,体能设为0. if(event == "G_PRESSED" and arg == 5) then --这里的5就是键盘上的f5,如果是鼠标,并且不清楚按键arg参数具体是多少, --可以将此处的if语句去除,看罗技console界面输出的结果. x,y = GetMousePosition(); --获取到当前鼠标位置,并且输出到脚本console界面, --为下面获得每个按钮的坐标提供很大的帮助. OutputLogMessage("event = %s, arg = %s\n", event, arg); --输出当前按了哪个按键,同样非常关键. OutputLogMessage("z = %d, %d\n", x, y); --输出当前鼠标坐标到console. PressKey("p"); --按P键,打开巅峰点面板. ReleaseKey("p"); Sleep(5); MoveMouseTo(33160,44399); --将鼠标移动到重置按钮处.这些坐标适用于我的显示器,你的显示器具体坐标还需要看上面的输出. PressAndReleaseMouseButton(1); --点击重置按钮,重置所有巅峰点. --以下加移速. 装备上的移速来决定巅峰加多少移速点,我这里加了28点,也就是巅峰加了14%的移速. Sleep(5); MoveMouseTo(43815,31826);--将鼠标移动到加移速的按钮处. for i = 0, 27, 1 do Sleep(2); PressAndReleaseMouseButton(1); end --以上加移速 --以下加满怒气 MoveMouseTo(43576,36746); --将鼠标移动到加怒气的按钮处. PressKey("lCtrl"); --按左ctrl键 PressAndReleaseMouseButton(1); --按左ctrl的时候,按一下左键即可加满怒气. Sleep(2); ReleaseKey("lCtrl"); --以上加满怒气 --以下加满力量 MoveMouseTo(43679,20468); --移动到力量按钮处. PressKey("lCtrl"); for i = 0, 40, 1 do --按住ctrl键的清况下点击力量按钮40下,相当于4000力量. Sleep(2); PressAndReleaseMouseButton(1); end ReleaseKey("lCtrl"); --以上加满力量 --设置完毕后,按接受按钮. MoveMouseTo(28652,49440); PressAndReleaseMouseButton(1); end end
以上。
Start the discussion at eijil.com