//没登陆

欢迎您来到凯恩之角,奈非天!

帖子:572

符文:2

1#
楼主

--脚本按键设置:


----鼠标左键->旋风斩


----鼠标右键->战斗怒火


----A键->战吼


----S键->无视痛苦


----D键可选(威吓呐喊、压制)


----F键->狂暴者之怒




Barbarian_Macro_LoopInterval = 10 --脚本循环间隔(毫秒)




function OnEvent(event, arg, family)


    if (event == "MOUSE_BUTTON_PRESSED" and arg == 3) then --4为罗技键盘G4键


        --如果CapsLock键未按下,则按下并释放CapsLock键


        if not (IsKeyLockOn("capslock")) then

            PressAndReleaseKey("capslock")

            Sleep(10)

        end

               

        Barbarian_Macro_FullyAuto() --V2.2野蛮人6+2全自动左键旋风斩


    end

end



function Barbarian_Macro_FullyAuto()

    --按下并释放A键(战吼)、S键(无视苦痛)、F键(狂暴者之怒)


    PressAndReleaseKey("a",  "s")

    --按下并释放鼠标右键(战斗怒火)

    PressAndReleaseMouseButton(5)

    PressAndReleaseMouseButton(3)

        

    --Shift键(右)+鼠标左键(启动左键旋风斩)


    PressKey("rshift")

    PressMouseButton(1)

    Sleep(10)

    ReleaseKey("rshift")

    Left_Mouse_Button_Pressed = true --鼠标左键已按下


               

    Times_Key_A = 0

    Times_Key_S = 0

    Times_Key_F = 0

    Times_Button_RightMouse = 0

        

    --如果CapsLock键已按下则启动循环,否则退出循环


    while (IsKeyLockOn("capslock")) do               

        Sleep(Barbarian_Macro_LoopInterval) --循环间隔


               

        Times_Key_A = Times_Key_A + 1

        Times_Key_S = Times_Key_S + 1

        Times_Key_F = Times_Key_F + 1

        Times_Button_RightMouse = Times_Button_RightMouse + 1

               

        --每0.5秒按下并释放F键(狂暴者之怒)


        if ((Times_Key_F*Barbarian_Macro_LoopInterval) == 500) then

            PressAndReleaseMouseButton(5)

            Times_Key_F = 0

        end

               

        --每5秒按下并释放S键(无视苦痛)


        if ((Times_Key_S*Barbarian_Macro_LoopInterval) == 5000) then

            PressAndReleaseKey("s")

            Times_Key_S = 0

        end

               

        --每55秒按下并释放A键(战吼)


        if ((Times_Key_A*Barbarian_Macro_LoopInterval) == 55000) then

            PressAndReleaseKey("a")

            Times_Key_A = 0

        end

               

        --每100秒按下并释放鼠标右键(战斗怒火)


        if ((Times_Button_RightMouse*Barbarian_Macro_LoopInterval) == 100000) then

            PressAndReleaseMouseButton(3)

            Times_Button_RightMouse = 0

        end

               

        --在鼠标左键已按下未释放时(左键旋风斩中),


        --按住Alt键(左)则释放鼠标左键(暂停左键旋风斩),


        --释放Alt键(左)则重新按下Shift键(右)+鼠标左键(启动左键旋风斩)


        if (IsModifierPressed("lalt")) then

            if (Left_Mouse_Button_Pressed) then

                ReleaseMouseButton(1)

                Left_Mouse_Button_Pressed = false --鼠标左键未按下


            end

        else

            if not (Left_Mouse_Button_Pressed) then

                PressKey("rshift")

                PressMouseButton(1)

                Sleep(10)

                ReleaseKey("rshift")

                Left_Mouse_Button_Pressed = true --鼠标左键已按下


            end

        end

    end

        

    --循环结束,释放鼠标左键


    ReleaseMouseButton(1)

end

我按照你的来简单改了一下,为什么每100秒自动右键战斗怒火不能触发?
发表于 2015-6-21 03:45:53 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

2#
mu8951 发表于 2015-6-21 08:10
我的是罗技鼠标g400s,可是启动不了楼主的宏,也按照要求保存了,按中键启动不了,求解

可以加下我的qq3 ...

可能是键盘那一行没有删除。
发表于 2015-6-21 10:39:32 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

3#
*apollo 发表于 2015-6-21 21:29
为什么我的鼠标右键没有反映:

    --按下并释放鼠标右键(战斗怒火)

我的开始可以,后面100秒也是不会自动右键
发表于 2015-6-21 21:55:55 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

4#
狂野之弦 发表于 2015-6-21 23:04
你是罗技鼠标的话,3中键、2右键
所以代码里PressAndReleaseMouseButton(3)相当于按的是中键

我昨天就发现这个问题,尝试改成2键,结果代码只能执行到开始启动狂暴者之怒,到了鼠标2键就执行不了了,之后旋风什么的都自动停止,但是狂暴者之怒的代码还能继续循环,很奇怪。
发表于 2015-6-22 00:42:23 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

5#
*apollo 发表于 2015-6-22 00:42
现在还是有2个问题没解决:

1.第一个左键旋风流中,右键战斗怒火无效:

我也是这样改的,确实无效。

还有,我没有设置D键,看我的代码就知道,我用了鼠标4键和5键,但是很奇怪,除了战斗怒火不能执行循环外,用那个3键代码,一切正常。

点评

狂野之弦  试试用侧键,毕竟左中右是主按键  发表于 2015-6-22 00:49
*apollo  不知道是不是中间设为宏快捷键和鼠标右键有冲突。  发表于 2015-6-22 00:46
发表于 2015-6-22 00:44:33 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

6#
无语冬夜 发表于 2015-6-19 14:37
刚刚测试了一下, 很好用,非常感谢分享。不过我是罗技302鼠标,用下面的设置arg2代表的是鼠标右键,arg3才 ...

我的是G500,有类似问题。看来是大家理解错误,把3和2搞反,结果反而出现反循环,因为设置了右键是启动宏,结果反而按了中键后执行了全套代码,但是最奇怪的部分是为什么按中键会启动右键的宏……
发表于 2015-6-22 00:48:53 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

7#
*apollo 发表于 2015-6-22 00:45
第二个问题:
1.左键先祖流中,还是右键战斗怒火无效:
function Barbarian_Macro_FullyAuto()

应该是楼主把鼠标的2和3弄反了,但是这也不能解释为什么按中键能启动宏……
发表于 2015-6-22 00:49:30 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

8#
难道是123键都是主按键,所以只要按下去就会启动宏?
发表于 2015-6-22 00:50:29 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

9#
调试失败,确实G500里,3键就是中键,只能认为脚本不能识别2为右键。当我把宏启动键设为2后,按右键才能启动宏
发表于 2015-6-22 00:56:03 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

10#
本帖最后由 diS.Silent 于 2015-6-22 01:32 编辑
狂野之弦 发表于 2015-6-22 00:53
你的罗技鼠标到底2是中键还是3是中键,我是按15楼说的更新的代码
我没有罗技鼠标,没法测试

apollo应该和我是同系列鼠标,设置也一样,15楼的则不是。
发表于 2015-6-22 00:56:32 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

11#
最诡异的应该是

--按下并释放A键(战吼)、S键(无视苦痛)、F键(狂暴者之怒)


    PressAndReleaseKey("a",  "s")

    --按下并释放鼠标右键(战斗怒火)

    PressAndReleaseMouseButton(5)

    PressAndReleaseMouseButton(3)

这段话里,设置为3居然能够激活右键的战斗怒火,只是不能执行下面那个100秒的战斗怒火循环
发表于 2015-6-22 00:58:15 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

12#
本帖最后由 diS.Silent 于 2015-6-22 01:17 编辑

if ((Times_Button_RightMouse*Barbarian_Macro_LoopInterval) == 100000) then

            PressAndReleaseMouseButton(3)

            Times_Button_RightMouse = 0

        end

只能认为是((Times_Button_RightMouse这一句的表述有问题,和MouseButton(2)这句对不上号。

还有一个问题,就是这个脚本如果怒气消耗完毕,就不会再自动旋风斩,必须按CAPS LOCK重新开或按一下ALT。
发表于 2015-6-22 01:04:48 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

13#
本帖最后由 diS.Silent 于 2015-6-22 01:21 编辑

      --每100秒按下并释放鼠标右键(战斗怒火)


        if ((Times_Button_RightMouse*Barbarian_Macro_LoopInterval) == 100000) then

            ReleaseMouseButton(3)

            PressAndReleaseMouseButton(3)

            Times_Button_RightMouse = 0

        end

实验完毕,其他部分继续保留3,这样改就可以顺利循环100秒一次的战斗怒火了。搞不明白2和3到底怎么回事,干脆将错就错,哈哈哈。
发表于 2015-6-22 01:20:05 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

14#
我用的不是F键而是鼠标5键来激活狂暴者之怒,然则
Times_Key_F = Times_Key_F + 1
这类词缀都没有改动,依然暴力循环了……

实在没有心力查找对应词缀了,有多余代码也将就了
发表于 2015-6-22 01:25:12 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]

帖子:572

符文:2

15#
依然用的当时改的宏,升级了win10后ALT重启旋风斩失效了……原因未明。
发表于 2015-8-6 18:33:52 |显示全部楼层 来自:海南
[armory]http://cn.battle.net/d3/en/profile/diSSilent-5604/hero/18772608[/armory]
您需要登录后才可以回帖 登录 | 注册网易通行证