说在开头
AHK网游有风险,使用需谨慎考虑
就拿GGG光头的一句话来说
同样的,AHK在别的方面也能使用.
如果能在大家的日常学习生活游戏中能帮助到大家的话,我觉得就很好了
相同的功能像鼠标宏/按键精灵之类的都能做到,大家也可试试其他的
最后,毕竟WG也有自己的辅助功能,只不过只有一键喝药
大家可以看看DNF的辅助选项...=-= 连自动补药都有...
我是不是可以默认TX对这些功能保持默许的态度,只不过流放之路没有就是了
说起来我们需要某些功能来提升我们的游戏体验,不还是因为游戏中有些功能没有做到位所以才需要这样的
就像GGG为了药剂更新了附魔,宝石/药剂页国服的拾取宠物等等
但有些功能就像一键整理背包这种都东西,我想GGG永远是不能出的
不是没想过,只是不能做,底线就是底线.
如果有一天tx也能把流放之路的辅助功能表填满的话,那一天的话,就不再需要什么了.
AHK是什么?全名autohotkey,简单讲自动热键,可以帮你XXXX之类的...
说起来起初为了流放之路而去用的AHK,那个时候没有启明石药剂附魔,药侠玩的很难受.更别说整理背包/地雷之类的手感问题.所以就开始研究起了AHK.
经过我不断的努力(并没有),终于实现了很多以前从未设想过的功能
渐渐的有时候我开始有种错觉,写代码要比玩游戏快乐当然前提也是要代码不BUG的时候才会有的错觉.
所以就有了本期的内容
至于能写多久还是要看大家的反馈吧!
先写几期,后面有没有就看大家了.
最后感谢大家的点赞评论支持,还有小伙伴的打赏,为我分享技术的同时更多了一些码字的动力
第一期入门篇 一键喝药 (热键触发/延迟/发送按键)
第二期进阶篇1 一键地雷 (抬起检测/循环写法/随机延迟)
第三期进阶篇2 一键选角小退/回城/藏身处 (发送文字/长按检测/双击检测)
第四期进阶篇3 自动喝药技能/按住和连点 (一键开关循环喝药/连点)
我也不想教安装呀...就算个小门槛吧~
丢个B站参考视频,讲的比较详细可以看一下.
软件代码什么的,在附件哈自己按照视频安装下
AHK作为比较好用的热键触发类型的编程语言,入门其实很简单的.我尽量讲的详细点,好让大家能尽快上手.
至于缺点的话,基本上国内网游的话属于被禁止使用的第三方软件,和按键精灵类似,有封禁风险,所以使用需慎重.
WIN+E 打开文件资源编辑器,在查看中找到文件扩展名✔勾选
将代码复制到txt中
保存关闭
找到保存好的TXT文件,F2重命名,然后把.txt 改成 .ahk 后双击运行即可
按对应热键即可触发对应功能.
在游戏中有很多命令可以使用,而使用的方法就是
按一下回车→输入对应指令→按一下回车→完成
其中对应的指令很多可以使用 /help 来查询,其中/键为除号,一定要写在开头
我简单介绍一些大家可能会想用的命令(推荐使用英文版本的双服都能用)
/游戏时间 /played
/死亡次数 /deaths
/邀请 /invite
/加为好友 /friend
/天赋 /passives
/剩余怪物 /remaining
具体意思就不多赘述了,看前面的中文意思就行了,你可以直接框选命令复制粘贴在游戏中的聊天框发送就可以使用了.
其中也有些命令没显示说明,比如
角色选择界面 /Exit
/藏身处 /hideout
/跳舞 /dance
和普通的使用方法是一样的,回车→输入对应指令→回车即可.
本期原理就是这样讲解的代码如下,可自行下载附件直接复制.
短按/长按/双击 的检测命令写法(进阶讲解较难可跳)
像这种不是很常用的命令,一般随便找个不用的键,或者组合键位当作触发键就行了
但是像我们上期提到的地雷之类的比如Q键,在打字的时候自然就会误触发
一般来讲,我们可以写个开关之类的,来控制下开启的状态,在 地雷第二期我们已经讲到的 按键抬起开关
但实际上方法不止这一种,我们后续会慢慢讲到各种触发方式
同键开关(按一下开,按一下关)
双击运行(连续2次按键才运行)
长按运行(按住一个键多少时间才运行)
本次先介绍 长按检测
在开始之前我就直说了吧,后面按键检测的模式,不适合萌新阅读,请在有一定能力后,再次进行
本次讲解的一键回城之类的功能,为按下触发方式,不需要下面的长按/双击触发方式,后面的只为进阶的技术讲解.
萌新请直接跳过这个流程,去下面的一键选角那里,,想硬啃的话,那就要做好心理准备了
一定要先看熟练使用第二期一定要先看熟练使用第二期一定要先看熟练使用第二期
在第二期中我们使用到一个命令
KeyWait, q (当X键状态切换时触发命令)
这个KeyWait命令的扩展是可以做到检测按下某个键多少时间的条件判断的,所以长按的检测是要靠它来实现.
ErrorLevel
AHK中对应的命令是 条件成功失败会进行1或0的判断
一般来讲,某项命令成功时候为1,失败时候为0
当然具体的命令要看对应的if ErrorLevel 是什么样子的,这个可以使用编辑器中的帮助文档查看的,可以回头看看视频1中的关于编辑器的讲解.
KeyWait 这个命令是可以扩展的
在 KeyWait, q 中后面加上 ,T0.5,即 KeyWait, q, T0.5
就可以变成检测Q按下去后是否满足0.5秒的条件判断,当然这样的话也会失去作为等待按键抬起的作用了.
我们可以通过这样写:
if (ErrorLevel = 1){
实现长按后命令
}else{
没实现长按后命令
}
来实现对应不同状态的条件判断.
if 为条件判断的开头语句,如果 ErrorLevel = 1也就是说长按了,就首先后面{}括号内的命令,如果 ErrorLevel = 0也就是说没长按,就首先后面else{}括号内的命令
所以这样很巧妙的设计命令,很是值得入门研究揣摩的.
而双击的检测也十分巧妙,因为KeyWait, q, T0.5,即可以判断我们长按,也可以判断我们短按,因为一个按键按下后自由这两种结果.我们在一个间隔时间内连续两次短按就可以被定义为双击.
所以后面else{}中的命令大家可以想想我们究竟间隔时间较长的2次单击才能算双击?这个判断要怎么去写呢?
这里我们就需要要使用一个变量用来记录我按下的次数,同时我们可以通过这个次数满足双击的条件之后,重新归零再次计算.
我们拆开了讲,第一条当我们触发if (Type > 0) 时,Type并没有值对吧,我们也没有在前面后面声明对应的变量,当然你也可以提前声明,所以此时的变量type为空值,空值就为0,所以就没有触发 Type ++ 的自加命令( Type=Type +1 )的简写
从而来到了Type = 1赋值的环节,赋值后马上就是SetTimer的条件判断的标签发送了,大家注意这边的settimer后面是负整数,-400 也就是说延迟400豪秒后发送,标签名为click_type的标签命令集合
在这期间内我们的变量 Type(等号也可写成:=) 一直等于1,这个-400这个负整数期间就是我们判断是否双击按键的两次间隔是时间.
(双击间隔的检测时间为-400可以自行设置对应豪秒,连续的settmer命令会中断上一个未触发的标签命令)
如果在这个期间内我们再次触发了短按Q键,那么按照else内,第一行代码 if (Type > 0) 判断时, Type就会等于1,且大于0满足IF判断的条件时
就会进入Type ++ 的自加命令( Type=Type +1 ) 这个时候,Type就等于2了!
接着继续进行SetTimer的条件判断的标签,同样的使用IF条件来判断Type=1或Type=2的判断了.
最后别忘了,要将Type = 0 归零,这样就完成了,一键3判断,短按/长按/双击
简单讲,你可以用一个键实现3个功能命令的触发233
顺便说下,鼠标宏是做不到的这样的功能的.
其实这个功能真的是很常见,很常见,特别是一些老外的竞速视频,基本上一瞬间就进入了选择角色界面,然后回城了.
又或者专家模式,快要死了,血量不健康了,一瞬间就选角小退...,多半使用了这样的功能命令,如果你说主播手速快也我认...
当然这种小功能鼠标宏也能做到,简单讲讲原理. 用在赛季初开荒是真的非常舒服,可以省下很多时间和回城卷轴.
首先我们不用宏就能做到!一定要理解,复制 /Exit, 按回车,粘贴 /Exit,狂按回车,进选人界面就会秒进....懂了嘛...
所以写法的话,我们没什么技巧就和鼠标宏录制一样,把动作重复一下就行了,代码如下基本上学过前两期的话,第三期很容易的
稍微讲解一下,如果你不了解对应想触发的键位的名字的话,可以在编辑器中输入send 然后框选F1,翻翻帮助就可以找到对应的键位名称了.
SendInput {Text}/Exit 这个命令还是拆分要讲一下
SendInput 为快速模式,简单讲比send更快的发送命令,可以这么理解
{Text}为文本模式,不会模拟按键,直接发送全部字符,可以在短时间内发送大量字符,注意{Text}只会转换{Text}后面的字符哈,所以注意位置,
所以/Exit 会在一瞬间发送到按回车后的输入框中,就是这条命令的定义.
其中我写了一个keys(keys,a,b)函数,大家感兴趣的话可以参考下,可以直接发送我想要的按键,不想用的话换成,send{enter}即可.
要引用的话就是keys("键位名称",最小延迟,最大延迟时间)记得键位名要加""双引号, 功能是 按下一个键位后按照a~b数值中随机一个值延迟后松开这个键位.
所以使用这样的功能,你也可以实现最开始我说的功能,可以自己试试看.
本质上是使用不到命令的,而且应该也没这样的命令,最快的话就是小退,但是在异界里不能用,因为会回到主城,不会回到藏身处,所以最好是使用回城卷轴.
原理也是很简单,模拟我们自己使用回城卷轴,然后用AHK写出来即可
AHK的好处就可以做的比人手快...
简单讲讲,热键触发是alt+q 两个组合键的全写,中间用 & 连接.
key("b")模拟按下背包键,别不知道改呀...
然后鼠标移动的话要使用 MouseClick
WhichButton,是左键点击,还是右键点击,中键,侧键1234..之类的, Left(默认), Right, Middle,或者X1,X2,....X几,都可以试试
X,Y 的话就是坐标值
ClickCount 点击次数,不写默认一次
Speed 模拟鼠标移动速度,0~10都行,0的话,基本一瞬间就过去了...
要移动到屏幕的哪个位置,位置就是你放回城卷轴的坐标,如果不知道坐标的话,按F12右面的那个截屏键
粘贴到WIN自带的画图中,然后粘贴一下就看到游戏画面了,点击菜单栏的裁切,接着鼠标移动到回城卷轴的位置,看画图左下的像素坐标即可.
或者找到AHK运行后的托盘图标,点击这个工具
移动鼠标的时候就会在这个位置显示,屏幕坐标,窗口坐标,当前像素颜色之类的,可以参考一下.
如果自想鼠标移动的话,可以使用MouseMove的命令,
MouseMove,X,Y,速度,因为游戏角色在画面中间,且回城的位置是固定的,所以就省略了,寻找回城门的这个流程了...
也可以直接使用MouseClick,一步到位.
和一键小退是一个原理不做赘述了,只要打上命令 /hideout ,回车发送即可,模拟按键写出来就行了
这边的话就直接使用Send {Enter} 做演示了哈,可以自行换成key("")的函数写法.
看到这里相信大家通过的我的讲解加上自己的实操就能轻松写出,并且可以自行修改了吧
看看这里就别白嫖了老哥们,直接附件下载支持一下吧,当然照着自己打也行的,孰能生巧的.
所以简单写个功能吧,仅限于看完短按/长按/双击触发的小伙伴使用
w键作为地雷键,我如果想打字的时候不受影响的话,可以怎么写来在不关闭地雷的抬起触发又打字不受影响呢?
留个小作业吧
不会写的话可以附件查看哦