发布于 

用易语言解决我的世界自动钓鱼

前言

我们在玩MC的时候能通过钓鱼来获得经验,附魔物品,但是自己钓鱼也特别费时间,而游戏也限制mod,游戏版本也越来越新甚至也没有这种mod,所以我分享一年之前自己通过易语言编写程序来解决,因为原来的源码找不见了,所以硬着头皮接着重新搞一个,反正不管bug如何,能用肯定是能用,效果是挂了一夜一背包的鱼还有很多其他的附魔书、马鞍啥的,毕竟也只是编程起步逻辑思路的练习。

思路

钓鱼的时候会有水花溅落的声音,我们可以通过检测音量合成器下MC音量条的波动来触发钓鱼,也就是触发右键实现钓鱼下钩的操作。


但是首先得设置游戏音乐防止其他声音干扰,如图:

把友好生物这个音量打开就行,其余全关闭,现在音量条就在钓鱼上钩时出现波动,不受其他的影响。

实践

先创建新窗口

因为原理是检测屏幕像素点颜色变化,所以我们需要超级模块取点颜色()这个命令。

先添两个标签,一个用来显示鼠标X坐标,一个显示鼠标Y坐标,并且时时检测,所以还要一个时钟,在周期事件下:

1
2
3
4
5
6
7
.版本 2

.子程序 _时钟1_周期事件

颜色 = 到整数 (取点颜色 (, 到整数 (标签1.标题), 到整数 (标签2.标题)))
标签1.标题 = 到文本 (取鼠标水平位置 ())
标签2.标题 = 到文本 (取鼠标垂直位置 ())

我们要检测鼠标所指的像素点颜色数值,并且锁定,所以只能用注册热键的方式来实现锁定,我设置的是F7:

所以在 子程序 __启动窗口_创建完毕 下添加

1
注册热键 (_启动窗口.取窗口句柄 (), 标签1.取窗口句柄 (), 0, #F7键)

我们用“标签1”这个组件的反馈事件来执行按下F7后的命令,添加“标签3”来显示状态:

1
2
3
4
5
6
7
8
9
10
11
12
13
.版本 2

.子程序 _标签1_反馈事件, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型

.如果 (标签3.标题 ≠ “取坐标中”)
时钟1.时钟周期 = 100
标签3.标题 = “取坐标中”
.否则
标签3.标题 = “取坐标完毕”
时钟1.时钟周期 = 0

取完坐标之后得到的颜色数值到“编辑框1”里面,然后再添加一个时钟用来时时检测之前锁定的坐标点当前的颜色数值,然后在于刚刚得到的颜色数值(编辑框1.内容)进行对比,如果不同则执行鼠标点击的命令,在此我又添加了一个“标签5”用来显示钓鱼状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
.版本 2
.支持库 eAPI
.支持库 spec

.子程序 _时钟2_周期事件

颜色 = 到整数 (取点颜色 (, 到整数 (标签1.标题), 到整数 (标签2.标题)))
.如果 (颜色 ≠ 到整数 (标签4.标题))
标签5.标题 = “点击”
标签5.文本颜色 = #绿色
模拟鼠标点击 (取鼠标水平位置 (), 取鼠标垂直位置 (), 2)
时钟2.时钟周期 = 0
标签5.文本颜色 = #红色
延迟 (到整数 (编辑框1.内容))
模拟鼠标点击 (取鼠标水平位置 (), 取鼠标垂直位置 (), 2)
延迟 (1000)
时钟2.时钟周期 = 200
标签5.标题 = “下钩”
.否则
标签5.标题 = “检测中”
.如果结束


设置了两次延迟的原因是第一次钓上来后,防止太快导致第二次下钩不成功。

完成

这样也算完成了

下载

成品

源码