17173有料社区

标题: 教你如何编写一个简单的符合自己需求的AHK脚本(附代码 [打印本页]

作者: 魂殇灬驭诗追梦    时间: 2020-1-16 21:31
标题: 教你如何编写一个简单的符合自己需求的AHK脚本(附代码
本帖最后于  2020-6-17 17:25 编辑

注意!有可能会被封号!注意!有可能会被封号!注意!有可能会被封号!(不过发邮件给客服可解)下载的教程可以看这篇帖子http://bbs.17173.com/thread-11190886-1-1.html
开始正题,从一键喝药开始
  1. $1::
  2. Send {1}
  3. Send {2}
  4. Send {3}
  5. Send {4}
  6. Send {5}
  7. Return
复制代码
这个是简单的一键喝药脚本,第一行的$1::表示按下1触发12345五个键位$表示1这个键被下面的代码替代了,所以不会触发循环,return结束。大括号里面只有一个命令时可以不加,复杂的命令则必须要加
学会这个之后可以考虑一些别的操作
比如熔岩护盾这个技能由护甲决定数值,我们有坚岩药水+3000护甲放在键1,有一个其他药水可以在药水持续时间内加100%护甲放在键2
我们想要每次按下熔岩护盾时触发这两个药水获得更高的数值,可以这样写
  1. $^r::
  2. Send 1
  3. Send 2
  4. Sleep 20
  5. Send ^r
  6. Return
复制代码
把熔岩护盾这个技能放在ctrl+r(^表示ctrl键,^r就是ctrl+r),$屏蔽Ctrl+r键不会无限循环
为什么要放在ctrl+r是因为不会干扰你在168聊天吹
sleep 20 表示触发12之后等待20毫秒防止网络延迟,具体数值可以自己调整,return表示结束
然后是地雷自动引爆
有简单的
  1. Loop{
  2. Send d
  3. Sleep 350
  4. }
复制代码
loop表示循环执行下面的代码,这段代码就表示每隔350毫秒按一次d,除非手动退出ahk,否则不会停止
不过,因为有链爆地雷这个技能的存在,一直按d键会丢失大量dps,所以我们用右键松开引爆的方法(因为我喜欢右键扔雷,想改的话把所有的RButton改成你想要的键)
  1. $RButton::
  2. Send {RButton Down}
  3. Loop
  4. {
  5. GetKeyState, state, RButton , P
  6. if state = U
  7.     {
  8.     Send {RButton Up}
  9.     Sleep 130
  10.     Send {d}
  11.     Break
  12.     }
  13. }
  14. Return
复制代码
这段代码也很好理解
$RButton:: 表示屏蔽鼠标右键,并用下面的代码替代
Send, {RButton Down} 表示发送鼠标右键按下的指令
Loop{ 表示循环
{}里表示循环内容
GetKeyState, state, RButton , P 表示监视鼠标状态,state为状态参数,有U和D两种,U是Up表示抬起,D为Down表示按下,RButton表示被监视的键位是鼠标右键,P表示获取物理状态
if state = U表示如果鼠标的物理状态为抬起
{}里表示如果鼠标右键抬起会发生的事情
Send {RButton Up}表示发送弹起鼠标右键的指令
Sleep 130表示等待130毫秒防止网络延迟
Send {d}表示发送d键
break表示跳出循环
return表示结束地雷杖的可以参考一下这段
  1. $RButton::
  2. Send {RButton Down}
  3. Loop
  4. {
  5. GetKeyState, state, RButton , P
  6. if state = U
  7.     {
  8.     Send {RButton Up}
  9.     Sleep 130
  10.     Send {d}
  11.     Break
  12.     }
  13. }
  14. Loop
  15. {
  16. GetKeyState, state, RButton , P
  17. if state = U
  18.     {
  19.     Sleep 1630
  20.     Send {d}
  21.     Break
  22.     }
  23. }
  24. Return
复制代码
多加了个循环

还可以用下面这段代码表示只在流放之路运行时起效,避免在网页之类的地方干扰使用,放在第一行就好
  1. #IfWinActive ahk_exe PathOfExile_x64.exe
复制代码
注意这段代码是指PathOfExile_x64.exe这个进程,如果不确定的话ctrl+alt+del打开任务管理器查看一下

另外,所有的符号均是英文符号


对AHK有兴趣学习的可以去这个网站http://ahkcn.sourceforge.net/docs/commands/(中文化的AHK帮助文档)
上面的网站偶尔会挂掉,可以去下面这个

https://wyagd001.github.io/zh-cn/docs/commands/Send.htm#Raw

作者: 流放之路咪咪爱    时间: 2020-1-16 22:13
好东西学到了
作者: 油炸大腰子    时间: 2020-1-16 22:18
这个有点厉害,请问如果是药侠的话,那么12345,这五个药水是不是要每个药水下面都最好根据药剂持续时间编辑好sleep的时长?
作者: 黑皮蛋w    时间: 2020-1-16 22:53
先mark在学 感觉学不会。。
作者: SD个发给    时间: 2020-1-16 23:02
看不懂,鼠标宏不是更安全吗
作者: 流放小虾    时间: 2020-1-17 00:33
好东西收藏
作者: 千代伊    时间: 2020-1-17 00:36
看不太懂 但是感觉有点东西
作者: 卐卐圣卍卍    时间: 2020-1-17 00:40
一直用右键引爆宏,玩土也雷很轻松
作者: 玩家U_140087525    时间: 2020-1-17 00:54
手动点赞,厉害厉害
作者: 魂殇灬驭诗追梦    时间: 2020-1-17 11:12
发表于 2020-1-16 22:18
这个有点厉害,请问如果是药侠的话,那么12345,这五个药水是不是要每个药水下面都最好根据药剂持续时间编 ...

sleep的作用是推迟下一个指令发送的时间,如果你想要一个药剂生效之后生效第二个的话可以sleep,如果只是想要全体药剂不间断的话,要使用循环,不过提醒一下,这种复杂的指令可能会导致封号,而且还需要考虑到网络延迟
作者: 油炸大腰子    时间: 2020-1-17 11:16
发表于 2020-1-17 11:12
sleep的作用是推迟下一个指令发送的时间,如果你想要一个药剂生效之后生效第二个的话可以sleep,如果只是 ...

唉……真是没法两全啊,本来还想着套用你这个方法让所有的药剂根据时长来保证不断药呢,看样子还是得手动……
作者: 撒旦前往113245    时间: 2020-1-17 11:30
$W::
Sleep 200
Send {d}
Return
烟雾地雷放在W上这样写对吗?
作者: 名城苏州大米    时间: 2020-1-17 11:32
谢谢哦  受益匪浅!!!!!
作者: 玩家U_68366838    时间: 2020-1-17 11:34
之前只会简单的一键喝药 ,学习到了 楼主厉害
作者: 魂殇灬驭诗追梦    时间: 2020-1-17 11:38
发表于 2020-1-17 11:30
$W::
Sleep 200
Send {d}

$代表$后面的键位被替换掉了你需要添加一个send {w}
作者: 魂殇灬驭诗追梦    时间: 2020-1-17 11:43
发表于 2020-1-17 11:16
唉……真是没法两全啊,本来还想着套用你这个方法让所有的药剂根据时长来保证不断药呢,看样子还是得手动 ...

其实如果你不怕被封的话也可以自动喝药,我简单写了一个你参考一下
  1. $1::
  2. send 1
  3. send 2
  4. send 3
  5. send 4
  6. SetTimer, send_1, 4500
  7. SetTimer, send_2, 6000
  8. SetTimer, send_3, 4000
  9. SetTimer, send_4, 5000
  10. return

  11. send_1:
  12.     Send 1
  13. return

  14. send_2:
  15.     Send 2
  16. return

  17. send_3:
  18.     Send 3
  19. return

  20. send_4:
  21.     Send 4
  22. return
复制代码

按下1触发脚本,发送1234指令然后等待循环,4秒发送一次1,6秒发送一次2
作者: 油炸大腰子    时间: 2020-1-17 11:45
发表于 2020-1-17 11:43
其实如果你不怕被封的话也可以自动喝药,我简单写了一个你参考一下
按下1触发脚本,发送1234指令然后等待 ...

非常感谢,我先存下……但真心怕封。

再次感谢。
作者: 玩家U_140238591    时间: 2020-1-17 11:47
总觉得这种东西很危险
作者: 蹦哒蹦达    时间: 2020-1-17 11:48
这个真是技术贴。
作者: 魂殇灬驭诗追梦    时间: 2020-1-17 11:54
发表于 2020-1-17 11:47
总觉得这种东西很危险

一键喝药之类的简单指令不会被封,不过稍微复杂点的例如上面的循环吃药就有可能,不过GGG对脚本的打击主要是打击工作室,个人的话发个邮件就可以解了
作者: csuhkkk    时间: 2020-1-17 11:58
发表于 2020-1-16 22:18
这个有点厉害,请问如果是药侠的话,那么12345,这五个药水是不是要每个药水下面都最好根据药剂持续时间编 ...

你可以分成5个loop,分别用settimer计时,然后用一个开关管理。。
作者: 未见青山老丶丶    时间: 2020-1-17 12:08
我居然在流放之路学编程?
作者: 白侠baixia    时间: 2020-1-17 12:11
AHK在用鼠标做映射的时,游戏中难免不舒服卡顿,简直老大难

作者: 岚心语1    时间: 2020-1-17 12:11
学习到了,谢谢大佬
作者: 魂殇灬驭诗追梦    时间: 2020-1-17 12:24
发表于 2020-1-17 12:11
AHK在用鼠标做映射的时,游戏中难免不舒服卡顿,简直老大难

活捉白侠大佬,大佬做的查价工具很好用
作者: 玩家U_137603886    时间: 2020-1-17 12:25
你好,我用了AHK,在文本里面测试都没问题,但是启动游戏,按绑定的按键就是没反应,不知道为什么呢
作者: ABAI    时间: 2020-1-17 12:37
学习了
作者: 玩家U_138240315    时间: 2020-1-17 12:54

谢谢分享
作者: csuhkkk    时间: 2020-1-17 13:26
发表于 2020-1-16 23:02
看不懂,鼠标宏不是更安全吗

你可以去暗黑区看看鼠标宏的lua脚本,但是lua的入门门槛比ahk高多了
作者: 玩家U_136654011    时间: 2020-1-17 13:31
这个是什么啊?是宏吗?
作者: 魂殇灬驭诗追梦    时间: 2020-1-17 13:34
发表于 2020-1-17 13:31
这个是什么啊?是宏吗?

差不多吧
作者: 玩家U_136829993    时间: 2020-1-17 13:54
发表于 2020-1-17 11:54
一键喝药之类的简单指令不会被封,不过稍微复杂点的例如上面的循环吃药就有可能,不过GGG对脚本的打击主 ...

邮件一般怎么写?说我是普通玩家,就用ahk来喝喝药,不挂机。就可以了吗?
作者: 白侠baixia    时间: 2020-1-17 13:57
发表于 2020-1-17 12:24
活捉白侠大佬,大佬做的查价工具很好用


作者: 魂殇灬驭诗追梦    时间: 2020-1-17 14:03
发表于 2020-1-17 13:54
邮件一般怎么写?说我是普通玩家,就用ahk来喝喝药,不挂机。就可以了吗?

就说我的账号被锁了请解开,用你注册账号的邮箱发
作者: 玩家U_26806433    时间: 2020-1-17 14:06
玩地雷用这个会舒服不少  哈哈
作者: LEE·存    时间: 2020-1-17 14:10
收藏
作者: re4far    时间: 2020-1-17 14:39
mark了 感谢分享
作者: rpgreat    时间: 2020-1-17 14:41
这个必须赞一下,用处太大了。。
作者: 羽想试试能改多长的ID    时间: 2020-1-17 14:43
  1. ~RButton::
  2. Send, {d Down}
  3. Loop
  4. {
  5. GetKeyState, state, RButton, P
  6. if state = U
  7.     {
  8.     Send, {d Up}
  9.     Break
  10.     }
  11. }
  12. Return
复制代码


我冰雨BD用的和你地雷类似,右键旋风斩转的时候自动按D放漩涡增伤。

作者: 1流刃若火1    时间: 2020-1-17 16:53
大佬 那种按住某个按键后 隔几秒吃一次所有药的代码有吗
作者: 一口热汽水    时间: 2020-1-17 19:37
这个技术贴很关键,干货满满
作者: 魂殇灬驭诗追梦    时间: 2020-1-17 22:09
发表于 2020-1-17 16:53
大佬 那种按住某个按键后 隔几秒吃一次所有药的代码有吗
  1. ~RButton::
  2. Loop
  3. {
  4. GetKeyState, state, RButton, P
  5. if state = D
  6.     {
  7.      send 1
  8.      send 2
  9.      send 3
  10.      send 4
  11.      send 5
  12.      sleep 4000
  13.     }
  14. if state = U
  15.     {
  16.     Break
  17.     }
  18. }
  19. Return
复制代码

把楼上羽大佬的代码改了一下,应该应该是符合你需求的,按住右键每隔四秒按一次12345,松开右键结束
作者: 满满当当德    时间: 2020-1-17 22:10
大佬nb
作者: 魂殇灬驭诗追梦    时间: 2020-1-17 22:11
发表于 2020-1-17 14:43
我冰雨BD用的和你地雷类似,右键旋风斩转的时候自动按D放漩涡增伤。

捉羽大佬,大佬我把你贴的代码改动一下给楼下示范了
作者: 唔哇唔哇唔哇    时间: 2020-1-18 09:56
有点东西
作者: 门板盾牌    时间: 2020-1-18 10:00
这个真是技术贴。~~~~~
作者: 小小大木尧p    时间: 2020-1-18 10:21
学习到了 楼主厉害
作者: 风的声音不想换    时间: 2020-1-18 11:51
厉害谢谢  分享
作者: 雪海葬香    时间: 2020-1-18 12:58
大佬有个问题想要请教你。
我想要写一个自动改造的AHK,大概想要实现的功能是利用^C获取装备词缀在粘贴板上
然后剪贴板上如果出现相应文字就停止。
clipboard=   
    Send ^c
    ClipWait
    ;itemMod = %clipboard%       ; 获得剪切板内容
之后该怎么做望大佬指教,多泄多泄。
作者: 砸罐不是吹的    时间: 2020-1-18 15:43
额,不过有可能会封号让人不敢试啊
作者: 緣灬隨風    时间: 2020-1-18 17:53
这个必须赞一下,有步骤有说明,清晰易懂!
作者: 玩家U_140270661    时间: 2020-1-18 18:00
谢谢分享 学习了
作者: ╰微笑向暖    时间: 2020-1-18 18:00
按键精灵感觉会简单点。。
作者: 玩家U_139648369    时间: 2020-1-18 18:53
学到了。明天就买个宏键盘
作者: 玩家U_138298811    时间: 2020-1-18 18:55
大佬  问一下 我用了你的脚本  为什么按1的时候  会把shift给按了
作者: 魂殇灬驭诗追梦    时间: 2020-1-18 20:40
发表于 2020-1-18 12:58
大佬有个问题想要请教你。
我想要写一个自动改造的AHK,大概想要实现的功能是利用^C获取装备词缀在粘贴板上 ...

自动改造工具GGG不允许使用,白侠大佬的自动改造都下了
作者: 魂殇灬驭诗追梦    时间: 2020-1-18 20:43
发表于 2020-1-18 18:55
大佬  问一下 我用了你的脚本  为什么按1的时候  会把shift给按了

我贴的一键吃药的脚本?不会吧,没用到shift键啊,shift键用+代表的你看看你代码里有没有+
作者: 青溟道长    时间: 2020-1-18 21:02
感谢分享, 我也要试试
作者: 玩家U_136279506    时间: 2020-1-18 21:23
什么鬼
作者: afafqaf    时间: 2020-1-18 21:50
阿三大苏打撒旦
作者: 玩家U_138298811    时间: 2020-1-18 22:28
发表于 2020-1-18 20:43
我贴的一键吃药的脚本?不会吧,没用到shift键啊,shift键用+代表的你看看你代码里有没有+ ...

下面就是我的代码  我查了没有+啊  可是我只要按 q或者2、3 都会触发shift,不知道为什么,游戏哪设置有问题?
#IfWinActive ahk_exe PathOfExile_x64.exe
$Q::
Send {Q Down}
Loop
{
GetKeyState, state, Q , P
if state = U
    {
    Send {Q Up}
    Sleep 130
    Send {d}
    Break
    }
}
Return

$3::
Send {3}
Sleep 20
Send {W}
Return

$2::
Send {2}
Send {1}
Send {4}
Send {5}
Sleep 20
Send {E}
Return

作者: 佐佐急急急    时间: 2020-1-18 22:30
感觉都是大佬玩的,我们这些渣渣还是直接下载就好
作者: 0D1012    时间: 2020-1-18 23:37
先mark在学 感觉学不会。
作者: 玩家U_138648167    时间: 2020-1-18 23:41
这个确实不错,我自己也研究了一下写了一个简单的,看到你的帖子发现可以改进一下
作者: jdgjuyj    时间: 2020-1-19 07:05
热管换热挺好
作者: 玩家U_140131094    时间: 2020-1-19 08:18
大佬牛逼啊
作者: 魂殇灬驭诗追梦    时间: 2020-1-19 13:10
发表于 2020-1-18 22:28
下面就是我的代码  我查了没有+啊  可是我只要按 q或者2、3 都会触发shift,不知道为什么,游戏哪设置有 ...

ahk里区分大小写,你send的是大写的键位
作者: 凡尘若如梦丶    时间: 2020-1-19 19:38
技术贴 手动点赞
作者: kangyitaoasd    时间: 2020-1-19 19:51
如果连上地理网辅助,扔雷按一下是连续仍好几个,自动引爆的延迟是不是得调的高一点?
作者: 魂殇灬驭诗追梦    时间: 2020-1-19 20:55
发表于 2020-1-19 19:51
如果连上地理网辅助,扔雷按一下是连续仍好几个,自动引爆的延迟是不是得调的高一点? ...

是的
作者: laoyi3377    时间: 2020-1-19 22:07
本帖最后于  2020-1-20 00:27 编辑

我用的是地雷杖连的地雷网,用了楼主的代码,地上总是有不能引爆的地雷。在楼主的指导下,稍微改了下代码,现在可以了....



作者: 清河常常    时间: 2020-1-21 09:35
请教楼主,我想实现的是:在按下“w”使用蓄力疾风闪的同时按下“5”喝蓝药。简单编个命令后发现,由于蓄力疾风闪是持续吟唱技能,按下w会一直循环“点按”w和5,导致蓄力疾风闪不能持续吟唱。也百度了不少,水平有限,实在是无能为力,请帮助一下,万分感谢。
作者: 我就是7777777    时间: 2020-1-21 09:48
我暂时用不着,实在不行鼠标驱动宏搞定。为LZ点赞。
作者: 魂殇灬驭诗追梦    时间: 2020-1-21 14:19
发表于 2020-1-21 09:35
请教楼主,我想实现的是:在按下“w”使用蓄力疾风闪的同时按下“5”喝蓝药。简单编个命令后发现,由于蓄力 ...
  1. ~w::
  2. Loop
  3. {
  4. GetKeyState, state, w, P
  5. if state = D
  6.     {
  7.     send 5
  8.     sleep 4000
  9. }
  10. if state = U
  11.     {
  12.     Break
  13.     }
  14. }
  15. Return
复制代码

按住w每隔5000毫秒用一次5键位药剂具体数值自己调,松开w结束
作者: 清河常常    时间: 2020-1-21 15:46
发表于 2020-1-21 14:19
按住w每隔5000毫秒用一次5键位药剂具体数值自己调,松开w结束

非常感谢
作者: 玩家U_130937037    时间: 2020-1-21 20:44

之前只会简单的一键喝药 ,学习到了 楼主厉害
作者: 笑吧速度为首的非    时间: 2020-1-21 21:26

作者: Jikce.Sty    时间: 2020-1-21 21:32
地雷救星
作者: 玩家U_129495922    时间: 2020-1-21 23:55
程序猿表示so easy
作者: 玩家U_115668872    时间: 2020-1-21 23:57
好东西,感谢分享~~~~~
作者: 8贝卡斯8    时间: 2020-1-22 00:00
鼠标宏或者多玩连点器就能轻易解决了
作者: 玩家U_140267206    时间: 2020-1-24 17:45
感谢分享
作者: 情已逝,神已伤    时间: 2020-2-1 19:35
好东西,收藏了。
作者: Gilessun    时间: 2020-2-2 02:50
有人国服能用吗,为什么我游戏界面内AHK就没反应游戏外正常
作者: 魂殇灬驭诗追梦    时间: 2020-2-2 18:50
发表于 2020-2-2 02:50
有人国服能用吗,为什么我游戏界面内AHK就没反应游戏外正常

#IfWinActive ahk_exe PathOfExile_x64.exe 这一行删掉或者把后面的PathOfExile_x64.exe换成国服的
作者: 呀呀呀……    时间: 2020-2-12 10:46
大佬,可以做一个物品自动分类一键放仓库么
作者: z.花落无声    时间: 2020-2-12 11:17
感谢大神,学习了,真技术活啊。有空学习一下。
作者: 晚知星火    时间: 2020-2-12 11:36
请教, 要实现长按左键的效果 需要怎么写呢。
作者: 这个蛮蛮蛮的    时间: 2020-2-12 12:26
请问左键连点能做吗??好像要
作者: 魂殇灬驭诗追梦    时间: 2020-2-12 13:16
发表于 2020-2-12 11:36
请教, 要实现长按左键的效果 需要怎么写呢。

参考自动引爆的代码,LButton是左键
作者: ╰_______unvn    时间: 2020-2-19 10:59
本帖最后于  2020-2-19 12:46 编辑

大佬,能不能写一个这样的
按住Q键施法
鼠标左键按下 停止Q键施法
鼠标左键弹起  Q键继续施法


作者: 神经没有    时间: 2020-2-19 16:46
提醒一句,游戏里脚本无效的话,在打开ahk脚本时右键选择“以管理员权限运行”
作者: BIONICc    时间: 2020-3-16 01:13
问下楼主大大,地雷仗第二次爆炸的地雷,怎么通过右键触发
作者: 拂晓之前的黎明    时间: 2020-3-16 02:22
换三十岁以前,能学个把月,现在年纪大了学不动了
作者: zmsm    时间: 2020-3-16 02:30
好东西学习收藏
作者: hudaha    时间: 2020-3-17 11:36
谢谢楼主分享
作者: 中老年酋长    时间: 2020-3-17 12:12
我想搞一个自动战吼,
按一个启动,再按一下关闭,
怎么实现从loop里跳出
作者: 大梦8520    时间: 2020-3-17 12:21

先mark在学 感觉学不会。。
作者: 唇角的危笑    时间: 2020-3-17 12:50
我想知道这种 代码能用到罗技鼠标宏上面不? 罗技自带的,停止总是特别困难。
作者: 爱笑的龙猫丶    时间: 2020-3-17 13:27
引爆地雷在空格键上 空格键咋打




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