星露谷物语(Stardew Valley)Mod Farmtronics 机器人自动浇水代码

这篇具有很好参考价值的文章主要介绍了星露谷物语(Stardew Valley)Mod Farmtronics 机器人自动浇水代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

模组介绍:【星露谷物语】你想要一群可爱可编程的工作机器人吗?Farmtronics模组介绍_哔哩哔哩_bilibili

参考文档

Farmtronics使用的编程语言语法 MiniScript-QuickRef.pages

Api 接口参考 ·乔斯特劳特/法姆电子学维基 ·吉特哈布 (github.com)

使用版本

Farmtronics.zip-10634-1-2-0-1658871311

SMAPI 3.16.2

一些笔记

1.机器人使用笛卡尔坐标系

2.玩家最好不要站在机器人行动的路径上

3.机器人面对的方向(bot.facing)  0为up 1为right 2为down 3为left

4.机器人模组里面一些名称(Name)

Hoe锄头 Pickaxe十字镐 Scythe镰刀 Axe斧头 Watering Can喷壶

Weeds纤维(杂草) Twig木头 Stone石头

5.type:Clump为大石头和大树桩 其中Name:Boulder为石头  Name:Stump为大树桩

使用clearAhead及clearAndMove时 如果工具不能破开这些障碍物 机器人会一直使用工具尝试破坏

6.如果前面的地类型为"HoeDirt"(就是耕过的地)

使用clearAhead及clearAndMove时会用锄头把这片地清掉(无论是否有作物)

因此可以用bot.ahead.Crop == null 判断是否有作物

7.脚本一般保存在 C:\Users\用户名\AppData\Roaming\StardewValley\Saves\存档\usrdisk(即为新手教程toDo中的usr路径)此处的用户名和存档是实际名字

话不多说 上代码

我的代码包含了按行列浇水 自动补充喷壶 自动归位的功能 但是有些地方还需要优化(随缘吧)

这里是全局参数 

WaitTime为机器人前进一步后等待的时间(需要让电脑反应过来 否则下一步会前进不了)

Line和Column为需要浇水的行数和列数 你可以自由设置

WaitTime = 0.3
Line = 3
Column = 3

转向函数 使机器人转到某个方向  Facing为方向(类型为整型) 对应本文章-->一些笔记3.

TurnTo = function(Facing)
    while bot.facing != Facing
        bot.right
        end while
end function

直线寻路 判断障碍是否存在并清除 Facing为面对的方向 Steps为移动的距离

第一行的bot.可以不用加 不过我的代码里面加了我就懒得改了

还有一些寻路的部分没写(随缘补充)

bot.moveStraight= function(Facing, Steps)
  //先转向
    TurnTo(Facing)
  for i in range(Steps-1)
       //清除障碍 需要考虑大树桩和大石头这些大障碍 还有水池(type:Property) 水池的判断没有写
        if bot.ahead != null then
          //如果前面不为耕过的地(有的话bot.clearAhead也会一起清除)且不为大障碍
          if bot.ahead.name != "HoeDirt" and bot.ahead.type !="Clump" then
              bot.clearAhead
          //如果无法清除的障碍不为终点就绕过去
          //如果无法清除的障碍为终点则跳出循环
          //还要判断是否有水池
              end if
          end if
        bot.forward
        wait(WaitTime)
        end for
end function

移动至目标位置 ToX为X的目标坐标 Y坐标同理

bot.position.x为获取当前的x坐标

bot.moveTo = function(ToX,ToY)
  moveX = ToX - bot.position.x
  moveY = ToY - bot.position.y
  botTurnTo = 1
 //X轴面对的方向
  if moveX < 0 then
    moveX=-moveX
    botTurnTo = 3
    end if
//在X轴移动
if moveX !=0 then
  bot.moveStraight(botTurnTo, moveX)
  end if
//Y轴面对的方向
if moveY > 0 then
  botTurnTo = 2
else if moveY < 0 then
  moveY = -moveY
  botTurnTo = 0
end if
//Y轴移动
if moveY !=0 then
  bot.moveStraight(botTurnTo, moveY)
  end if
end function

使用水壶并往前移动一格

判断水壶是否为空 可以使用bot.inventory[index].waterLeft
这里index为水壶的序号 可以用bot.inventory[index].Name=="Watering Can"获得index

这里装水的位置(72,27)为图中红圈 你可以自由设置

星露谷物语(Stardew Valley)Mod Farmtronics 机器人自动浇水代码

 文章来源地址https://www.toymoban.com/news/detail-488876.html

UseWateringCanAhead = function
   bot.select "Watering Can"
   bot.useTool
  //这里为判断浇水后此地是否干燥
   if bot.ahead.dry ==1 then
     StX = bot.position.x
     StY = bot.position.y
    //在72,27装水
     bot.moveTo(72,27)
     TurnTo(2)
     bot.select "Watering Can"
     bot.useTool
     bot.moveTo(StX,StY)
     //重新浇水
     TurnTo(3)
     bot.select "Watering Can"
     bot.useTool
     end if
    bot.forward
    wait(WaitTime)
end function

浇水主函数

浇水的起始位置我设为白圈处 即田地最右上角的那块地的右一格

星露谷物语(Stardew Valley)Mod Farmtronics 机器人自动浇水代码

 

WaterMain = function(line, column)
  //获取浇水前的位置
  WaterOriginX = bot.position.x
  WaterOriginY = bot.position.y
  TurnTo(3)
  
 //逐行列浇水
for c in range(1,column)
 for l in range(1,line)
   UseWateringCanAhead
   end for
 bot.moveTo(WaterOriginX, WaterOriginY+c)
 TurnTo(3)
end for
 //回到原位
 bot.moveTo(WaterOriginX,WaterOriginY)
end function

最后别忘了运行函数

WaterMain(Line,Column)

程序使用方法

1.将上述代码按文章顺序复制 用记事本之类的软件打开 保存为.ms文件

2.将这个.ms文件放置在 本文章的一些笔记-->7. 所说的usr路径里面

3.右击机器人 输入代码

load "文件名"
run

这里我将文件保存为"water.ms"

星露谷物语(Stardew Valley)Mod Farmtronics 机器人自动浇水代码

 

到了这里,关于星露谷物语(Stardew Valley)Mod Farmtronics 机器人自动浇水代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 顶顶通呼叫中心中间件机器人压力测试配置(mod_cti基于FreeSWITCH)

    介绍 顶顶通呼叫中心中间件机器人压力测试(mod_cit基于FreeSWITCH) 一、配置acl.conf 打开ccadmin-》点击配置文件-》点击acl.conf-》我这里是已经配置好了的,这里的192.168.31.145是我自己的内网IP,你们还需要自行修改 二、配置线路 打开ccadmin-点击线路-》配置拨号串: sofia/external/${

    2024年01月24日
    浏览(45)
  • LLaMA模型指令微调 字节跳动多模态视频大模型 Valley 论文详解

    Valley: Video Assistant with Large Language model Enhanced abilitY 大家好,我是 卷了又没卷,薛定谔的卷的AI算法工程师「陈城南」 ~ 担任某大厂的算法工程师,带来最新的前沿 AI知识和工具,包括AI相关技术、ChatGPT、AI绘图等, 欢迎 大家交流 ~。 近期基于LLaMA微调的模型有很多,Alpaca,

    2024年02月15日
    浏览(47)
  • 智能机器人的智能化机器人机器人协同与机器人机器人协同机器人模拟与仿真技术

    作者:禅与计算机程序设计艺术 《77. \\\"智能机器人的智能化机器人机器人协同与机器人机器人协同机器人模拟与仿真技术\\\"》 随着科技的发展,人工智能在机器人领域得到了广泛应用。智能机器人不仅具备高效率、高精度、高可靠性等优点,还可以进行自主决策、路径规划、

    2024年02月09日
    浏览(97)
  • 基于OpenCV的谷物颗粒识别

    这个程序旨在通过图像处理技术实现对颗粒的计数。主要运用了计算机视觉库OpenCV以及数值计算库NumPy,通过颜色分割、灰度处理、二值化、轮廓检测等步骤,最终达到统计颗粒数量的目的。 首先,在程序的开头导入了必要的库,包括OpenCV用于图像处理,NumPy用于数组操作,

    2024年01月20日
    浏览(46)
  • java呼叫中心-java语音机器人-java电销机器人源码-javaAI语音机器人源码-语音识别-ai机器人源码,语音机器人源码,电话机器人源码,电销机器人源码,ai电销机器人,语音机器人部署

    ai机器人源码,语音机器人源码,电话机器人源码,电销机器人源码,ai电销机器人,语音机器人部署,电话机器人系统部署,AI语音机器人,电销机器人部署,电销机器人系统部署,smartivr   沟通交流的老铁,可以点击该链接添加沟通:戳我戳我戳我 ·节点名称及AI话术     

    2024年04月15日
    浏览(65)
  • 医疗机器人软件中的机器人机器人编程技术:机器人技术的创新应用

    作者:禅与计算机程序设计艺术 随着科技的发展,医疗机器人逐渐成为人们关注的热门话题。医疗机器人可以在医院、康复中心等各种场合为病人提供帮助,不仅可以提高工作效率,还能降低医护人员的工作强度。而机器人编程技术则是实现医疗机器人功能的关键,本文将围

    2024年02月07日
    浏览(65)
  • java实现钉钉群机器人@机器人获取信息后,机器人回复(机器人接收消息)

    1.需求 鉴于需要使用钉钉群机器人回复,人们提出的问题,需要识别提出的问题中的,后端进行处理实现对应的业务逻辑 2.实现方式 用户@群机器人,附带提出的问题,后端接收消息后识别消息内容,读取到进行对应的业务逻辑操作后,机器人获取返回的信息后

    2024年02月14日
    浏览(53)
  • 智能机器人在机器人机器人感知与运动控制技术与应用案例

    作者:禅与计算机程序设计艺术 当前,物联网、云计算、人工智能和机器人技术已成为我国产业界研究热点。随着机器人的高速发展,无论是研究、制造还是服务,都受到了越来越多的关注。同时,随着大数据、IoT(Internet of Things)技术的广泛应用,机器人应用也被迅速推向

    2024年02月09日
    浏览(57)
  • 聊天机器人的机器人API:提供机器人API接口,使开发者能够方便地实现聊天机器人功能

    作者:禅与计算机程序设计艺术 聊天机器人的机器人API:提供机器人API接口,使开发者能够方便地实现聊天机器人功能 1.1. 背景介绍 随着人工智能技术的飞速发展,智能对话交互已逐渐成为各行各业的趋势。在各种智能场景中,聊天机器人作为一种创新的交流方式,为用户

    2024年02月15日
    浏览(59)
  • 移动机器人 | 火星探矿机器人

    “火星探矿机器人”旨在要开发若干个自主机器人,将其送到火星上去搜寻和采集火星上的矿产资源。 火星环境对于开发者和自主机器人而言事先不可知,但是可以想象火星表面会有多样化的地形情况,如河流、巨石、凹坑等,机器人在运动过程中会遇到各种障碍; 另外,火

    2024年02月06日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包