17173有料社区

标题: 技术贴:分享一个3.8地蕾引爆宏 [打印本页]

作者: 东皇钟1024    时间: 2019-9-12 11:38
标题: 技术贴:分享一个3.8地蕾引爆宏
本帖最后于  2019-9-12 18:57 编辑

声明:AHK宏,使用者后果自负(国际服本人一直使用,无风险;国服未试过)

说明下用途:
假设w埋雷,d引爆,那么:
1、按下w后如果0.4秒内不再次按w,则自动引爆;
2、按住w不放连续埋雷,松开w后0.4秒内不再次按w,则自动引爆。
代码中,标红处可根据需要自行更改,w指埋雷键,400指用于判断的间隔毫秒。


代码如下:

~w::
settimer, MyTimedLabel, -400 ;延时400毫秒引爆
return

MyTimedLabel:
GetKeyState, state, w, P   ;如果长按埋雷则不引爆,松开或者点按后,引爆
if state=U
        Send d
return





作者: 野蛮人0.0    时间: 2019-9-12 11:52
以前的那种,一边走一边爆的,这种是直接没了吗
作者: 长安饕餮    时间: 2019-9-12 11:59
不是有机器人啊
作者: dsgfree    时间: 2019-9-12 12:02
不会用。。
作者: 东皇钟1024    时间: 2019-9-12 12:24
发表于 2019-9-12 11:52
以前的那种,一边走一边爆的,这种是直接没了吗

以前写宏简单,模拟每250ms不停按d就可以了。
现在由于引爆序列的缘故,地蕾和以前不一样了,玩过自然懂。
作者: 流放小虾    时间: 2019-9-12 12:31
谢谢了,可以加下讨论一下吗
作者: 东皇钟1024    时间: 2019-9-12 12:47
发表于 2019-9-12 12:31
谢谢了,可以加下讨论一下吗

直接私信就可以,不过回的不一定及时
作者: njq623    时间: 2019-9-12 13:01
鼠标宏是一样的吗?一直用的鼠标宏。。。
作者: 胖头陀月    时间: 2019-9-12 13:44
这样是不是刷图和BOSS战就可以兼顾了
作者: 东皇钟1024    时间: 2019-9-12 14:17
发表于 2019-9-12 13:01
鼠标宏是一样的吗?一直用的鼠标宏。。。

鼠标宏一般是原厂自带的,逻辑判断的功能不是很强大
作者: 东皇钟1024    时间: 2019-9-12 14:18
发表于 2019-9-12 13:44
这样是不是刷图和BOSS战就可以兼顾了

个人认为是这样。反正不能指望机器人,太ruo智了
作者: Mconia    时间: 2019-9-12 14:19
新dilei昨天玩了一会,比以前还累手
作者: 东皇钟1024    时间: 2019-9-12 14:20
发表于 2019-9-12 11:59
不是有机器人啊

玩过就知道,这机器人技能太ruo智了
作者: 玩家U_139284895    时间: 2019-9-12 14:48
国服wegame把ahk屏蔽了吧
作者: 丿灬陌路离殇    时间: 2019-9-12 16:04
这个绝对要赞一下 给了我一个新思路 哈哈 可以改成很多东西 非常感谢了
作者: 晚知星火    时间: 2019-9-12 16:07
配合连锁雷还是高爆雷好一些呢
作者: 翔子13888    时间: 2019-9-12 17:11
怎么设置在右键上啊,右键的按键应该用什么表示

作者: Richardwang123    时间: 2019-9-12 17:15
怕被封号 一直不敢用宏
作者: 卐卐圣卍卍    时间: 2019-9-12 17:22
你这个太累了,我还是1个右键就行了
作者: 白侠baixia    时间: 2019-9-12 17:31
  1. #SingleInstance Ignore
  2. #MaxThreadsPerHotkey, 2
  3. SetKeyDelay, 50, 50

  4. ;参数设置
  5. global ping := 300        ;初始间隔ms


  6. ~w::
  7. settimer, MyTimedLabel,% -ping
  8. return


  9. MyTimedLabel:
  10. if WinActive("ahk_exe PathOfExile_x64.exe") and getkeystate(w) = U
  11.         Send {d}
  12. return
复制代码
加了只能在游戏内使用
感兴趣可以设置聊天失效 不写了

作者: 东皇钟1024    时间: 2019-9-12 18:58
发表于 2019-9-12 16:04
这个绝对要赞一下 给了我一个新思路 哈哈 可以改成很多东西 非常感谢了

之前的对于长按引爆模式还有点不流畅,现在又优化了一下,没有什么问题了
作者: 东皇钟1024    时间: 2019-9-12 18:59
发表于 2019-9-12 17:31
加了只能在游戏内使用
感兴趣可以设置聊天失效 不写了

嗯这个专业,怎么早没看到,省得我翻开文档找半天。。。
作者: 玩家U_136626999    时间: 2019-9-15 20:01
完全不会弄啊。。代码复制过去d雷还是不引爆是为啥
作者: 玩家U_127105456    时间: 2019-9-15 20:17
谢谢
作者: 东皇钟1024    时间: 2019-9-16 09:31
发表于 2019-9-15 20:01
完全不会弄啊。。代码复制过去d雷还是不引爆是为啥

要用管理员模式执行
作者: 名城苏州大米    时间: 2019-9-16 09:47
A大给你的建议 怎么在你这个 AHK 里面实现呢?AHK不怎么会用呢
作者: 勇敢的小蜜蜂    时间: 2019-9-16 10:24
厉害了这个,收藏了
作者: 陈一发最牛逼丶    时间: 2019-9-16 10:29
这666啊 感谢大佬
作者: 紫云灵霄    时间: 2019-9-16 11:03
厉害了,试用了一下不错,如果能改成右键放土也雷就更好了
作者: 左大向    时间: 2019-9-16 12:59
马克一下,回头试试,我现在是右键引爆
作者: 無三無四    时间: 2019-9-16 13:19
请问,如果我用罗技鼠标 应该怎么做宏。求指教
作者: Kami0000    时间: 2019-9-16 13:20
看来土也雷小号可以启动了
作者: 深空远航    时间: 2019-9-16 13:53
没用过AHK,想问下这个代码的逻辑:
~w::
settimer, MyTimedLabel, -400 ;延时400毫秒引爆
-------------------------
如果在400ms内在再次按W,程序逻辑走向是怎么样的? 不接收400ms的按键行为?或是AHK不响应,直到400ms后才接收下一次按键行为?

作者: 东皇钟1024    时间: 2019-9-16 14:26
发表于 2019-9-16 09:47
A大给你的建议 怎么在你这个 AHK 里面实现呢?AHK不怎么会用呢

A大的意思是把send d那行替换掉。
我是在if state=U上加了一行:if WinActive("ahk_exe PathOfExile_x64.exe") ,也能达到效果
作者: 东皇钟1024    时间: 2019-9-16 14:28
发表于 2019-9-16 13:53
没用过AHK,想问下这个代码的逻辑:
~w::
settimer, MyTimedLabel, -400 ;延时400毫秒引爆

逻辑也简单,就是计时器,按下w后计时器启动,400毫秒后按下d引爆。在这400毫秒期间,如果再次按下w,则计时器重置。
作者: 东皇钟1024    时间: 2019-9-16 14:31
发表于 2019-9-16 13:19
请问,如果我用罗技鼠标 应该怎么做宏。求指教

抱歉,我没用过罗技鼠标,不大会。。。
作者: 我要吃煎包    时间: 2019-9-16 14:31
为什么不用键盘连点器一直点D呢?多舒服
作者: 买裤子拉倒    时间: 2019-9-16 15:01
案件精灵可以这样用不??
作者: CHIVUWANG    时间: 2019-9-16 15:08
如果详细写下如何使用就完美了,毕竟很多人没有用过类似的。
作者: 玩家U_133787366    时间: 2019-9-16 15:17
还有这种操作啊?
作者: 深空远航    时间: 2019-9-16 15:28
本帖最后于  2019-9-16 15:32 编辑
发表于 2019-9-16 14:28
逻辑也简单,就是计时器,按下w后计时器启动,400毫秒后按下d引爆。在这400毫秒期间,如果再次按下w,则 ...

1、按下w后如果0.4秒内不再次按w,则自动引爆;
2、按住w不放连续埋雷,松开w后0.4秒内不再次按w,则自动引爆。
------------------
你的意思是?:
1.  按一下W,在0.4内松开,并且不再按W,等待0.4超时结束进行U判断,则自动引爆。否则在0.4内按第二次W会重置计数器(快速点击W相当于按住W),不判断不引爆。
2. 按住W,在0.4后超时自动进行判断一次P(按下)状态,不引爆。返回原始状态,继续接收W,重置计数器,重复1和2判断。或者说0.4超时,自动松开W,状态U,引爆D,结束,返回原始?

作者: 白侠baixia    时间: 2019-9-16 15:34
发表于 2019-9-16 15:28
1、按下w后如果0.4秒内不再次按w,则自动引爆;
2、按住w不放连续埋雷,松开w后0.4秒内不再次按w,则自动 ...

https://wyagd001.github.io/zh-cn/docs/commands/SetTimer.htm
要善于看文档
作者: 玩家U_136990086    时间: 2019-9-16 16:05
大佬,AHK是啥啊?怎么用啊?我是血手鼠标....很懵啊
作者: 深空远航    时间: 2019-9-16 17:30
本帖最后于  2019-9-16 18:09 编辑
发表于 2019-9-16 15:34
https://wyagd001.github.io/zh-cn/docs/commands/SetTimer.htm
要善于看文档

按照文档中的第3个例子:#3: 检测热键的单次, 两次和三次按下. 这样允许热键根据您按下次数的多少执行不同的操作。

是否可以理解为
~w ;  W对应游戏中的技能,W不管怎么按,不拦截W,技能按游戏原样发动。

settimer, MyTimedLabel, -400
;在-400ms倒计时过程中:
1. W_D、W_U、W_D、W_U.....W_D (倒计时结束并进入下一轮计时)  或者 W_D (按住)......(倒计时结束并进入下一轮计时) , 则判断按键最后一次的状态为D,则不引爆。也就是说持续投雷。
2.W_D、W_U、W_D、W_U.....W_U (倒计时结束) 或者 W_D (按住).....W_U (倒计时结束) ,则判为松开W,引爆雷。
------------------------
计时器时间作用为多久间隔判断一次按键状态。
对于快速点击,有可能踩中节奏引爆,有可能不引爆,需要停顿一会或走位就会引爆。

对于按住的情况,如果计时器过长,比较难踩中节奏。比如0.4秒后是按住状态结束,松开后再按则触发新一轮计时(好像不是触发,只要有W动作,这个计时器就是400ms一个循环),如果不在计时结束前松开,导致无法引爆,表现为持续按住,需中间停顿或变为快速点击以便踩中计时结束点。当然按住W的情况下,如果400一个间隔循环检测,只需在后续无论哪个(400-0)这个间隔松开跑位,就会触发引爆。

作者: 老男人001587    时间: 2019-9-16 17:52
非常感谢分享。
作者: 孤独与music    时间: 2019-9-16 17:56
请问AHK在哪下载 LZ给个地址
作者: Z唯心66    时间: 2019-9-16 19:01
感谢分享
作者: 买裤子拉倒    时间: 2019-9-17 09:38
发表于 2019-9-12 17:31
加了只能在游戏内使用
感兴趣可以设置聊天失效 不写了

案件精灵可以这样用不??
作者: 买裤子拉倒    时间: 2019-9-17 09:43
发表于 2019-9-12 17:31
加了只能在游戏内使用
感兴趣可以设置聊天失效 不写了

请问程序中的汉字也是要的?w是土也雷,u是什么?d是什么?
作者: 35619151    时间: 2019-9-17 10:11
没有鼠标宏,一直按键精灵
作者: 白侠baixia    时间: 2019-9-17 10:14
发表于 2019-9-16 17:30
按照文档中的第3个例子:#3: 检测热键的单次, 两次和三次按下. 这样允许热键根据您按下次数的多少执行不同 ...

你的意思是说为啥持续按住还会引爆对吧,
其实现在的键盘输入都是自带连点的,
如果你长按的话会出现一堆字母
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
而不是出现一个
这个就确保了每一次计数的最后都可以触发一次计时器,并且这个连点的延迟特别短,从而确保了可以实现长按触发

现在大多数键盘驱动都是这样的,
但是鼠标却不同了(你见过长按左键,疯狂点击的嘛)你可以把触发的~换成 ~Lbutton试试,长按是触发不了的。

鼠标写的话可以拦截对应键,模拟按下,等待鼠标松开,模拟松开,触发D
  1. *Rbutton::
  2. MouseClick, right,,, 1, 0, D  ; 按住鼠标左键.
  3. KeyWait, Rbutton  ; 等待按键被释放.
  4. MouseClick, right,,, 1, 0, U  ; 释放鼠标按钮.
  5. ControlSend ,,{d},ahk_exe PathOfExile_x64.exe
  6. return
复制代码


作者: 深空远航    时间: 2019-9-17 10:29
本帖最后于  2019-9-17 11:49 编辑
发表于 2019-9-17 10:14
你的意思是说为啥持续按住还会引爆对吧,
其实现在的键盘输入都是自*连点的,
如果你长按的话会出现一堆 ...

我的意思是有可能刚好踩中倒计时结束前的节奏按下,使得判定为按下而不引爆,表现为反应延迟。当然0.4s很短,经常需要走位,基本触发引爆的概率很大,已经算很完美了,毕竟是程序,不能做到手动那么准确。
-------------
我只是按流程逻辑看下这个函数的用法,以及对其中可能出现的各种情况作出预判,并没有去测试脚本(比较懒,可能下个AHK测试下可以更快验证下。讨论的目的也是为了让更多感兴趣的人参与进来)。

----------------------
在我第一次看到代码的时候,我以为子函数是在0.4s重复循环,快速检测是否有松开行为。看了计时器函数后,才知道是0.4s一次检测。因为以前用按键精灵玩过赛车类游戏,表现为反应迟钝,所以才去预判走下程序的流程。

===========刚下了AHK来测试============
果然测试可以更快验证自己的想法:  把代码复制到脚本,打开记事本就可以测试,结果为
1.按住W,会一直WWWWW(因为是输入状态,自动调用键盘重复输入),并没有0.4间隔自动引爆。对于程序、系统、游戏而言,就是W_D(DOWN按下状态),游戏会自动判定为按下,自动持续释放对应的技能,或吟唱,而不是中断。

2.快速点W,明显有迟钝的时候,因为0.4太短,无法准确模拟刚好踩中计时结束的节奏前按下的情况,但确实是有反应迟钝的情况。

3.如果需要某个时间间隔固定引爆,可以另外创建一个计时器,计时结束(或者一个累加变量0.4 * X次数,当X=2/3/4....),强制引爆。

对于POE而言,这样的流程足以,毕竟不是竞技游戏,以轻松为主,不需要很精确的应对各种情况,如果需要可以手动介入。如果是应对游戏检测,越简单的代码动作越好,避免误判。




作者: sadasdaaa2    时间: 2019-9-17 10:46
感谢楼主
作者: 无奥斯卡接电话    时间: 2019-9-17 12:16
谢谢,已被封号7天处理,这赛季凉了
作者: 子卓Meity    时间: 2019-9-17 12:25
国服好像不能用AHK吧?我用AHK的一键喝药和鼠标软件宏在国服是无法运行的,国际服都能用
作者: 不看不看1    时间: 2019-10-2 08:24
大老板,能价格开关么?不然打字都是WDWD啊
作者: 不看不看1    时间: 2019-10-3 10:18
老板,能加个开关么?
作者: 晚知星火    时间: 2019-12-20 11:45
发表于 2019-9-12 17:31
加了只能在游戏内使用
感兴趣可以设置聊天失效 不写了

限制游戏内使用会需要读取游戏内存吗,还有聊天时不生效怎么设置,单纯回车判定不行吧?
作者: 看穿一切的逗比    时间: 2019-12-21 14:20
谢谢分享
作者: 风云ざ再起    时间: 2019-12-21 14:42
发表于 2019-9-12 14:48
国服wegame把ahk屏蔽了吧

你用管理员启动
作者: clementzcj、    时间: 2019-12-22 05:23
大佬,能不能发个AHK的使用流程
作者: 玩家U_125386481    时间: 2019-12-22 05:24
好666666666666666666
作者: 流星4321    时间: 2019-12-22 10:25
你好大神, 我用这个代码  设置的是鼠标右键。  点摁引爆好用  但是长按 松开后不爆  是什么原因呢
作者: weakwolf    时间: 2019-12-22 10:29
感谢楼主的分享
作者: 长城长长长城    时间: 2019-12-24 15:19
发表于 2019-9-12 17:31
加了只能在游戏内使用
感兴趣可以设置聊天失效 不写了

感谢,大大分享。

作者: 职业背锅兽、    时间: 2019-12-30 09:17
感谢大佬~
作者: 麥尨岘甲    时间: 2019-12-30 09:41
留个脚印,需要的时候再来,感谢
作者: 奔跑的电冰箱    时间: 2020-1-2 02:29
发表于 2019-12-22 10:25
你好大神, 我用这个代码  设置的是鼠标右键。  点摁引爆好用  但是长按 松开后不爆  是什么原因呢 ...

我也是 这是咋了呢?
作者: 玩家U_139113992    时间: 2020-2-12 22:15
感谢楼主分享。用过了,我把W换成鼠标右键,“如果长按埋雷则不引爆,松开或者点按后,引爆”无法实现,按住不放等400毫秒还是会引爆,楼主能不能改一改?
作者: HY浩洋    时间: 2020-3-18 09:46
发表于 2019-9-17 09:43
请问程序中的汉字也是要的?w是土也雷,u是什么?d是什么?

getkeystate(w) = U

意思是获取键盘 W 状态是 UP  就是未被按下 的意思
作者: 打宝不掉崇高    时间: 2020-3-18 11:02
发表于 2019-9-12 17:31
加了只能在游戏内使用
感兴趣可以设置聊天失效 不写了

求教这个聊天失效,怎么写,新手一枚~感觉可以应用到很多场景
作者: 若兮流风    时间: 2020-3-19 19:04
这个使用ahk么
作者: 凶猛的大蘑菇    时间: 2020-4-2 11:38
怕被封号~所以都用鼠标宏
作者: 123aa31az    时间: 2020-4-2 12:12
最新更新地雷直接绑到位移左键就行了
作者: 玩家U_140322185    时间: 2020-4-2 17:51
感谢分享
作者: 烦恼恼哦哦    时间: 2020-4-2 18:07
收下啦  谢谢
作者: 官人别走呀    时间: 2020-5-14 17:02
好贴要赞一个
作者: Cxgod0619    时间: 2020-5-14 17:03
有点复杂啊
作者: 我是给力星期五    时间: 2020-6-17 12:01
常按w松开之后不自动释放是什么情况啊?s11赛季
作者: dajid对对对    时间: 2020-6-17 12:37
发表于 2020-6-17 12:01
常按w松开之后不自动释放是什么情况啊?s11赛季

现在机制是雷放的越多 一次性引爆伤害越高
作者: 墨饵1112    时间: 2020-6-17 13:19
不管怎么说  还是感谢




欢迎光临 17173有料社区 (//bbs.17173.com/) Powered by Discuz! X3.2