//没登陆

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

帖子:319

符文:70

76#
魔盒之手 发表于 2020-7-1 14:43
不懂帮顶。。。。

哈哈,感谢
发表于 2020-7-2 01:38:37 来自凯恩之角App |显示全部楼层 来自:江苏

帖子:467

符文:83

77#
寫了以下這樣, 如何只開一個宏?
如按了 4 自動停 5, 7, 8 那些

function init()
        click_ZDPS_Move = clicks(zDH_Move)
        click_ZDPS_Mobs = clicks(zDH_Mobs)
        click_ZDPS_Boss = clicks(zDH_Boss)

        main(click_ZDPS_Move, 4)
        main(click_ZDPS_Mobs, 5)
        main(click_ZDPS_Boss, 7)
        main(click_ZDPS_Boss, 8)
        main(all_stop, 6)
end
发表于 2020-7-4 16:40:16 |显示全部楼层 来自:中国香港

帖子:319

符文:70

78#
s3000 发表于 2020-7-4 16:40
寫了以下這樣, 如何只開一個宏?
如按了 4 自動停 5, 7, 8 那些

比较优雅的解决方式,就是新建一个工具类去管理这些控制器
1.png

  1. radio = {}; -- 新建一个工具类用于处理【开启一个序列时,关闭其他所有】的业务
  2. radio.arr = {};-- 记录所有的序列
  3. function radio.ctrl(v_ctrl)--序列控制器
  4.         table.insert(radio.arr, v_ctrl)--将此控制器插入表中用于控制
  5.         return function(_arg)
  6.                 for key, value in pairs(radio.arr) do -- 遍历表中的控制器
  7.                         if(value ~= v_ctrl)then  -- 非当前调用的控制器,则直接关闭
  8.                                 value('end');
  9.                         end
  10.                 end
  11.                 v_ctrl(_arg);        -- 运行需调用的控制器
  12.         end
  13. end
复制代码


发表于 2020-7-5 02:27:27 |显示全部楼层 来自:江苏

帖子:467

符文:83

79#
以前用的是有按alt 是升級黃裝, 分解等宏, 沒按alt 就是build 用的宏,
這個功能可以實現嗎?
发表于 2020-7-6 14:32:19 |显示全部楼层 来自:中国香港

帖子:319

符文:70

80#
s3000 发表于 2020-7-6 14:32
以前用的是有按alt 是升級黃裝, 分解等宏, 沒按alt 就是build 用的宏,
這個功能可以實現嗎?

目前你可以写一个函数去判断alt是否按下,如果按下走宏一,未按下走宏二。
看起来这个需求还是蛮多人会提到的,有时间我在框架里集成一下吧。
发表于 2020-7-6 16:23:35 来自凯恩之角App |显示全部楼层 来自:江苏

帖子:467

符文:83

81#
是否寫在init 裏?, 如以下

function init()
        if IsModifierPressed("lalt") then
                -- function XXX
        else
                main(thisZDPS("end", "end", "end"), 6)
        end
end
发表于 2020-7-6 16:59:56 |显示全部楼层 来自:中国香港

帖子:319

符文:70

82#
不是,你自己写一个函数,然后把该函数放到init里,绑到g按键上
发表于 2020-7-6 18:55:37 来自凯恩之角App |显示全部楼层 来自:江苏

帖子:467

符文:83

83#
本帖最后由 s3000 于 2020-7-7 09:52 编辑

是大概這樣寫嗎?

function thisMove()
        if IsModifierPressed("lalt") then
                return run(PickUp)
        else
                return function()
                        click_ZDPS_Move("start")
                        click_ZDPS_Mobs("end")
                        click_ZDPS_Boss("end")
                end
        end
end

function init()
        main(run, 4, "MOUSE_BUTTON_PRESSED", thisMove)
end
发表于 2020-7-7 09:35:27 |显示全部楼层 来自:中国香港

帖子:319

符文:70

84#
s3000 发表于 2020-7-7 09:35
是大概這樣寫嗎?

function thisMove()
  1. function thisMove()
  2.         if IsModifierPressed("lalt") then
  3.                 run(PickUp)
  4.         else
  5.                 click_ZDPS_Move("start")
  6.                 click_ZDPS_Mobs("end")
  7.                 click_ZDPS_Boss("end")
  8.         end
  9. end

  10. function init()
  11.         main(thisMove, 4)
  12. end
复制代码


如果我没有曲解你的意思,你应该这么写
发表于 2020-7-7 09:39:57 |显示全部楼层 来自:江苏

帖子:467

符文:83

85#
雪落丶丿寒 发表于 2020-7-7 09:39
如果我没有曲解你的意思,你应该这么写

謝謝, 現運作良好,


zDH_Boss = { { "lshift", 100, 5000 } , { "4", 200 } , { 3, 100, 5000 } , { "2", 3000 } , { "1", 5000 } , { "3", 5000 } }

另外想問以上連點, 1 和 3 鍵的間隔應是一樣, 但實際中因同時按會有沖突, 如要他們之間加上 sleep 要用 非按鍵函數 嗎? 如


zDH_Boss = { { "lshift", 100, 5000 } , { "4", 200 } , { 3, 100, 5000 } , { "2", 3000 } , { clickDelay, 5000 } } ??


发表于 2020-7-8 10:05:18 |显示全部楼层 来自:中国香港

帖子:11

符文:23

86#
按最简单的代码测试了下,GHUB没输出,是不是确实不支持GHUB
发表于 2020-7-11 23:57:43 |显示全部楼层 来自:湖南

帖子:319

符文:70

87#
s3000 发表于 2020-7-8 10:05
謝謝, 現運作良好,



实现的办法很多,可以用自旋器,可以用拦截器,也可以用序列
发表于 2020-7-12 14:55:21 来自凯恩之角App |显示全部楼层 来自:江苏

帖子:319

符文:70

88#
秋夕 发表于 2020-7-11 23:57
按最简单的代码测试了下,GHUB没输出,是不是确实不支持GHUB

没错,有一个核心函数ghub不支持
发表于 2020-7-12 14:56:12 来自凯恩之角App |显示全部楼层 来自:江苏

帖子:467

符文:83

89#
我想改 press(_arg) 及 release(_arg) 如是 "Lclick" 或 "Rclikc" 時先按Shift 才按鍵 (release 時相反),

最後那行有關 spring.pressed_key 的要怎麼改?
发表于 2020-7-13 09:30:02 |显示全部楼层 来自:中国香港

帖子:319

符文:70

90#
s3000 发表于 2020-7-13 09:30
我想改 press(_arg) 及 release(_arg) 如是 "Lclick" 或 "Rclikc" 時先按Shift 才按鍵 (release 時相反),
...

一般是不推荐改框架里的函数的,你完全可以找到更好的方法来完成你的需求。如果你一定要改的话,presskey指的是该键位是否处于被按下状态,你可以在函数的最开始判断是否为左右键,若是则先调用press("lshift")。这样就不需要管那个presskey怎么处理了,这是一种递归思想
发表于 2020-7-13 09:53:34 来自凯恩之角App |显示全部楼层 来自:江苏
您需要登录后才可以回帖 登录 | 注册网易通行证