Minecraft Computercraft Rednet.broadcast() 函数不传递正确的数值,我太累了,不知道哪里错了,请帮帮我

完整的代码非常混乱、冗长,是初学者写的。基本上,我试图通过红石网络从计算机向独立的接收龟发送 x 和 z 坐标。

接收者

rednet.broadcast("等待输入!")
xAxis = rednet.receive() --已在两端都尝试过 tonumber(rednet.receive()) 结果相同
zAxis = rednet.receive()
rednet.broadcast(xAxis) --不论我在发送器中输入什么值,两个值都返回 2。
rednet.broadcast(zAxis)

发送者

if(irrelevant == "genericstringhere") then
    print(rednet.recieve()) --等待输入!
    io.write("X 轴:") --激动人心
    message = io.read() --尝试使用诸如 X 或 xAxis 等术语。
    rednet.broadcast(message) --广播输入的任何消息。
    sleep(0.3)
    io.write("Z 轴:") --更多激动人心
    message = io.read() --尝试使用诸如 Z 或 zAxis 等术语。
    rednet.broadcast(message) --再次广播输入的任何消息。
    print(rednet.receive()) --从发送方接收 xAxis 的值。
    print(rednet.receive()) --从发送方接收 zAxis 的值。
end

执行结束时,两个结果都返回 2,而不是我在 io.read() 中输入的值。我尝试了“tonumber()”、“tostring()”以及两者的所有组合,似乎都不能使它工作。

原文链接 https://stackoverflow.com/questions/70674969

点赞
stackoverflow用户7509065
stackoverflow用户7509065

根据rednet.receive的文档

返回值 number 发送方ID, any 消息, string 协议

你所看到的数字2是发送者ID而不是消息内容。你需要使用senderId, xAxis = rednet.receive()来获取发送方ID和消息内容,对所有其他指派变量值的地方也同样。如果你好奇为什么之前的打印输出中数字在消息前面出现,那就是原因。

2022-01-12 03:47:25