Roblox 脚本 - 随机陷阱激活



我正在做一张地图,其中一部分玩家必须决定踩3个步骤中的哪一个。 1 是可以的,会让他们通过,其他人会杀死他们。

我正在尝试做的是随机激活,以确保每个游戏以不同的步骤开始是安全的。

我tried._G随机选择数字 1-3,根据数字,步骤 1、2 或 3 将是安全的,另一个将被激活 kill 脚本。但这从未奏效。

可以选择克隆地图并手动更改步骤,并且开始时只需随机地图,但这似乎适得其反。

有没有办法让函数在游戏开始时选择随机数(随机种子),并根据主脚本中选择的数字(在工作场所或其他地方?),其他本地脚本可以读取这个数字并决定部分是杀戮陷阱还是只是一块砖?

这将允许我使用一个选择的数字来确定游戏的其他可能部分。因此,玩家每次进入游戏时都不会记住安全的传球方式。

编辑(下面的旧答案):

因此,您只需要在每次服务器启动时生成一个介于 1 和 3 之间的随机数,确保它实际上是随机的(并且每次都不相同)。以前你会使用 math.random() 和 math.randomseed(),但 2017 年底引入了 Random 类。 两个有用的链接:

  • 随机功能的公告
  • 随机维基文章

简而言之,以下是使用 Random 生成随机整数的方法:

local rng = Random.new(tick()) -- tick() is here used as the seed
local SafeDoor = rng:NextInteger(1, 3) -- will give you a number between (and including) 1 and 3

你选择如何告诉客户这件事取决于你,你可以看看我的旧答案,以获得一些关于如何处理这个问题的提示。 通常,我的目标是从服务器而不是客户端进行杀戮,因为您通常不应该信任客户端以获取此类信息。在服务器上执行此操作也意味着客户端不必暴露在号码中,因此无法欺骗他们到正确的门。


旧答案:

我不完全确定您要完成什么,但是如果我理解正确,您是在要求一种在每个会话开始时在服务器和客户端之间共享生成的数字的方法?

这可以通过多种方式完成。这里有两个: 在你喜欢的任何服务器脚本中生成数字。

  1. 在 IntValue(如果需要小数,则为 NumberValue)中公开数字,服务器和客户端(如 ReplicadStorage)均可访问的位置。所有 LocalScripts 都可以随时读取此值,并且您可以挂接 .更改事件以跟踪更改。
  2. 或者,您可以通过 Remote* 对象传输此号码,并让 LocalScripts 在需要时请求它。

如果您询问是否可以在不同地方(和/或同一地点的服务器)之间转移号码,那么是的 - 这也是可能的,但稍微复杂一些。您可以使用新添加的消息传递服务,或将值存储在数据存储中。如果你不太在乎安全性,你也可以在将玩家传送到新地方时,在传送数据中发送玩家传送数据中的号码。

如果我误解了您的要求,请发表评论,我会为您提供更好的答案。

最新更新