2387911242
最近在玩空岛,但是...资源是个问题。氪金也很严重,随便一个装备就要大几百,一个VIP便宜的四五十一个月,贵的两三百一个月~我这种靠技术吃饭的人如何忍受得了如此贵的东西!!!
于是乎,就开始研究如何自动在岛上制作一个全自动的机器人
根据某位红石大佬的说法,实现Minecraft原版自动挖矿是完全不可能的,那不如从根本上解决这个问题.于是,MCFaker v1.0诞生了~~~一半(这就是我为什么发到茶馆的原因)

MCFaker能做的很多,你能干的,MCFaker也能干.挖矿,附魔,钓鱼啥的不在话下(目前正在一一实现),就是因为他是基于Minecraft协议开发的,与官方的Minecraft客户端没有任何关系,底层协议传输是由PyCraft实现(目前某些操作如换物品槽仅支持1.12.2)

目前,MCFaker实现的有:
1.半自动走路(之所以是叫半自动,是因为必须要人工规划路线,机器人只会按照你给定的每个坐标点去走,其实根本原因就是没有实现对于区块数据的获取和解析)
2.半自动挖矿(也是需要给定坐标,但是对于原版插件空岛来说就可以全自动)
3.放置方块(也是需要给定坐标)
4.切换手中物品(只能切换在物品槽中的物品,无法从背包中拿取物品)

目前,MCFaker正在实现的有:
1.获取区块数据,规划简单路线(但仅仅是简单路线,作者算法方面烂的像某种物品一样,有知道算法的小伙伴可以在开源后于Github上修改)
2.获取物品NBT数据,实现对物品的使用情况规划和提醒机器人主补物资或者对于特殊附魔(经验修补)等物品耐久的探测并自动实现相应操作(如扔经验瓶补耐久或切换稿子)
3.与窗**互的能力,可以实现对背包的存取或自动烧矿自动售卖物品合成等

总之,以后在生存当中,复杂的事情就可以交给机器人来干了,下面放出我当时做的空岛自动挖矿程序作为示例(需要根据情况修改,而且需要配套主程序使用):
import time
from minecraft.networking.types import (
    Double, Float, Boolean, VarInt, String, Byte, Position, Enum,
    RelativeHand, BlockFace, Vector, Direction, PositionAndLook,
    multi_attribute_alias,Short
)
def main(handler):
    #Begin:AuthMe Plugin Login(Please change your passowrd)
    handler.chat('/login YourPassword')
    time.sleep(1)
    handler.chat('Hello everyone!The bot is start running')
    #BEGIN:Walking to the teleport point
    time.sleep(1)
    handler.goto(14.5,9,-4.5,180,0)
    time.sleep(0.1)
    handler.goto(14.5,8,-6.6,180,32)
    _y=8
    for i in range(66,485,2):
        handler.goto(14.5,_y,-i/10,180,32)#Calc the position
        if i>232.5:#The second stair
            _y=6
        elif i >162.5:#The first stair
            _y=7
        time.sleep(0.05)#Waiting for walk
    time.sleep(5)#Waiting for the teleport
    #Teleport to the master
    handler.chat('/tpa xieyi1393')
    handler.setHeldSlot(1)#Set slot to the Second Slot(0->Slot 1 1->Slot2)
    time.sleep(1)
    while True:#Breaking The Blocks
        handler.breakBlock(Position(4399,98,393),2,0.3)
        handler.breakBlock(Position(4399,98,392),2,0.3)
        handler.breakBlock(Position(4399,98,391),2,0.3)
        handler.breakBlock(Position(4399,98,390),2,0.3)
        handler.breakBlock(Position(4399,98,389),2,0.3)

好了,过几天我就会把他开源然后正式发布到成品发布区

⚡️👮
我记得有G端实现了这种功能

幽月琉璃
都是大佬
每一个字的看得懂连起来不知道在说什么系列

2387911242
电磁步兵 发表于 2020-8-5 12:12
我记得有G端实现了这种功能

是的,但是我是完全脱离Minecraft,这样有一个好处就是占用小,甚至可以在云服,挂机宝上挂机(曾经我试着用挂机宝,结果提示....)

PercyDan
写mod不好吗

纸月亮
那样会不会乱套

第一页 上一页 下一页 最后一页