问题标签 [computercraft]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1707 浏览

if-statement - lua if else while 语句限制?

我试图在游戏中为基于 lua 的计算机制作程序。虽然当它运行时它的行为很奇怪

当它运行时,它以“请输入密码:”开头,输入“qwerty”它想要的密码后,它会无限循环“密码正确,解锁”。当我输入不正确的密码时,它不会运行 else 语句中的任何代码,只是返回输入密码屏幕。没有错误代码或崩溃。任何了解 lua 的人都知道我是否编写了 while/if/elseif 函数错误或变通方法。

谢谢!

0 投票
1 回答
137 浏览

http - 将数据发布到 Particle(以前称为 Spark)Photon 时,Lua 索引 nil 值

我的表弟和我一直在试验他的新 Photon 芯片,我们决定发挥创造力,使用 ComputerCraft(Minecraft 模组)和一些 Lua 代码来驾驶他制造的汽车。不幸的是,每次我们给出一个输入时,它都会索引一个 nil 值;我们不确定是因为 http.post 代码错误还是我们不知道...有什么想法吗?

(其余代码看起来与因此省略号相同)

我们试图将字符串传递给将驱动电机的 Photon 函数,但每次我们创建一个红石信号时,它都会显示“Drive:11:尝试索引?(一个 nil 值)”——但只有当 Photon 是连接的。

0 投票
3 回答
131 浏览

lua - 如何在turtleOS Minecraft Tekkit 中编写自己的函数

我的问题是:是否可以在turtleOS 中创建新的函数或方法?如何?

例如,我想编写一个函数 turnArround() 并且我想在另一个程序中使用它

我知道如何在 Lua 中创建一个新函数。我只是不知道如何在turtleOS 的程序中编写和调用它。

0 投票
1 回答
825 浏览

lua - Lua“if then”语句出错(预期“结束”(在第 28 行关闭“if”))

我收到一条错误消息

老实说,我不知道自己在做什么,因为我是 Lua 和一般编码的新手。我认为这与没有end地方有关。

0 投票
2 回答
178 浏览

variables - 默认情况下启用本地变量的程序

所以我对 Lua 中的全局默认样式感到恼火。我正在尝试编写一个程序,该程序将使在它之后运行的所有程序都无法创建全局变量。当他们尝试时,该变量将设置为该程序的功能环境。我想出了这个,它似乎可以工作,但由于某种原因,在 ComputerCraft rom/programs/edit 的 [edit: 9] 中抛出了一个错误。当我运行一个测试程序时,

它工作正常并阻止创建全局变量,同时仍然允许该程序访问它,但它不适用于其他程序。我试过做 _G.a、local a 和其他事情,但它们都有效。有谁知道为什么它可能不适用于其他程序?

0 投票
3 回答
155 浏览

lua - 带有方法的表,如何处理/检查它们?

所以没有上下文,我有一个返回表的方法。试着打印出来,好像表主要包含要调用的方法。但是对LUA不是很了解,我不知道如何正确获取有关我应该调用的这些方法的一些信息。

我试图从事物的创建者那里获取文档,但据我所知没有。而且由于这是在computercraft(minecraft mod)内部,因此我也没有很多可以依赖的功能。

所以只知道它是一个带有我可以调用的方法的表,我如何正确地弄清楚如何调用它们,以及使用什么参数等?

0 投票
1 回答
54 浏览

lua - 在控制台中手动输入命令有效,但在程序中无效

我遇到了一个问题,我可以在 lua 的命令行版本中执行每个函数,但是,当我运行程序时,它不会抛出任何错误,它只是结束。我不知道如何诊断这个,但我有尝试为不同的事情抛出几次错误,它会出错并打印错误。

我也会在此处留下完整程序的 pastebin 链接。

0 投票
2 回答
570 浏览

post - Computercraft POST 请求“无法连接”

我正在尝试将 OAuth 2.0 实施到计算机技术中,为此,我必须提出以下请求:

我只是得到一个Could not connect错误

在做了一些测试后,我发现它http.checkUrl()可以与这个 url 一起使用,它可以curl在终端中使用,并且也http.get("https://accounts.google.com")可以正常工作。似乎这不起作用的唯一原因是因为计算机技术没有POST正确处理请求。

奇怪的是这http.get("https://accounts.google.com/o.oauth2/device/code")也不起作用,这真的令人困惑。虽然这不是一个有效的请求,但它应该会成功并得到 的响应{"error":"Invalid request"},当我使用curl.

我在这里做错了什么,还是有某种解决方法?

0 投票
2 回答
181 浏览

lua - 如何按值对内表进行排序?

所以,正如标题所说,我想在 Lua 中对一张表进行排序。下面是一个这样的示例嵌套表。

我想通过并返回列出的前十名的表格,tabl[*]['amount']其中它们各自的tabl[*]['displayName']* 是tabl[1.0]通过的通配符tabl[max.0]

完成的表格应如下所示:

我希望这对所有人都有意义。

完整嵌套表格的链接:Full Piece FYI:我无法控制表格如何返回给我;我从这个API的函数listItems()中得到了它们。

0 投票
0 回答
135 浏览

lua - Minecraft Lua Computercraft Turtle Script 中的变量范围或竞争条件

我为 Mining Turtle 创建了以下脚本:

对于测试,尺寸为 5,深度为 2。它应该挖掘 5x5 块 2 块深。

发生了什么:乌龟挖出一个像螺旋一样的矩形区域。然后它从螺旋的中心回到起始位置。现在它下降一并再次开始“深度”时间。

但是当它第二次应该回到起始位置时,它表现出一种奇怪的行为。它不是左左左前曲折,而是在左前左后停止,然后以某种方式转身结束。

我已经假设它可能是范围并重命名了变量。我为变量添加了调试输出。一切似乎都是正确的。我找不到那里正在发生的事情。我想这可能是一个竞争条件。

任何帮助,将不胜感激。

谢谢,鲍里斯