魂殇灬驭诗追梦 发表于 2020-1-16 21:31:14

教你如何编写一个简单的符合自己需求的AHK脚本(附代码

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

还可以用下面这段代码表示只在流放之路运行时起效,避免在网页之类的地方干扰使用,放在第一行就好
#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-6-17 17:25 编辑

流放之路咪咪爱 发表于 2020-1-16 22:13:11

好东西学到了

油炸大腰子 发表于 2020-1-16 22:18:21

这个有点厉害,请问如果是药侠的话,那么12345,这五个药水是不是要每个药水下面都最好根据药剂持续时间编辑好sleep的时长?

黑皮蛋w 发表于 2020-1-16 22:53:56

先mark在学 感觉学不会。。

SD个发给 发表于 2020-1-16 23:02:21

看不懂,鼠标宏不是更安全吗

流放小虾 发表于 2020-1-17 00:33:39

好东西收藏

千代伊 发表于 2020-1-17 00:36:37

看不太懂 但是感觉有点东西

卐卐圣卍卍 发表于 2020-1-17 00:40:49

一直用右键引爆宏,玩土也雷很轻松

玩家U_140087525 发表于 2020-1-17 00:54:20

手动点赞,厉害厉害

魂殇灬驭诗追梦 发表于 2020-1-17 11:12:10

油炸大腰子 发表于 2020-1-16 22:18
这个有点厉害,请问如果是药侠的话,那么12345,这五个药水是不是要每个药水下面都最好根据药剂持续时间编 ...

sleep的作用是推迟下一个指令发送的时间,如果你想要一个药剂生效之后生效第二个的话可以sleep,如果只是想要全体药剂不间断的话,要使用循环,不过提醒一下,这种复杂的指令可能会导致封号,而且还需要考虑到网络延迟

油炸大腰子 发表于 2020-1-17 11:16:39

魂殇灬驭诗追梦 发表于 2020-1-17 11:12
sleep的作用是推迟下一个指令发送的时间,如果你想要一个药剂生效之后生效第二个的话可以sleep,如果只是 ...

唉……真是没法两全啊,本来还想着套用你这个方法让所有的药剂根据时长来保证不断药呢,看样子还是得手动……

撒旦前往113245 发表于 2020-1-17 11:30:36

$W::
Sleep 200
Send {d}
Return
烟雾地雷放在W上这样写对吗?

名城苏州大米 发表于 2020-1-17 11:32:52

谢谢哦受益匪浅!!!!!

玩家U_68366838 发表于 2020-1-17 11:34:31

之前只会简单的一键喝药 ,学习到了 楼主厉害

魂殇灬驭诗追梦 发表于 2020-1-17 11:38:29

撒旦前往113245 发表于 2020-1-17 11:30
$W::
Sleep 200
Send {d}


$代表$后面的键位被替换掉了你需要添加一个send {w}

魂殇灬驭诗追梦 发表于 2020-1-17 11:43:15

油炸大腰子 发表于 2020-1-17 11:16
唉……真是没法两全啊,本来还想着套用你这个方法让所有的药剂根据时长来保证不断药呢,看样子还是得手动 ...

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

send_1:
    Send 1
return

send_2:
    Send 2
return

send_3:
    Send 3
return

send_4:
    Send 4
return
按下1触发脚本,发送1234指令然后等待循环,4秒发送一次1,6秒发送一次2

油炸大腰子 发表于 2020-1-17 11:45:18

魂殇灬驭诗追梦 发表于 2020-1-17 11:43
其实如果你不怕被封的话也可以自动喝药,我简单写了一个你参考一下
按下1触发脚本,发送1234指令然后等待 ...

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

再次感谢。

玩家U_140238591 发表于 2020-1-17 11:47:43

总觉得这种东西很危险

蹦哒蹦达 发表于 2020-1-17 11:48:56

这个真是技术贴。

魂殇灬驭诗追梦 发表于 2020-1-17 11:54:20

不兴无应 发表于 2020-1-17 11:47
总觉得这种东西很危险

一键喝药之类的简单指令不会被封,不过稍微复杂点的例如上面的循环吃药就有可能,不过GGG对脚本的打击主要是打击工作室,个人的话发个邮件就可以解了
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 教你如何编写一个简单的符合自己需求的AHK脚本(附代码