{LUA} 如何在脚本中调用另一个脚本?

我在 Lua/Roblox 中有一个问题! 基本上,我想要在一个脚本中调用另一个脚本。这可能听起来像一个愚蠢的问题,但实际上并不是:P

例如:

我有一个位于 ServerScriptStorage 中的脚本:script1。

而我想要编写代码来触发 script2 的内容。

举个例子:

script1 的内容:

game.Players.PlayerAdded:Connect(function()

  这里触发 script2!

end)

script2 的内容:

print("此消息由脚本中的事件触发!")

这是一个相当简单的任务,所以请给我最简单和最短版本的代码。我不需要任何关于同时启动两个脚本之类的特殊版本。我是一个初学者脚本,所以请保持简单。

谢谢,NorteX。

点赞
用户9311837
用户9311837
workspace.SCRIPT2.Disabled = true -- 禁用SCRIPT2,您可以删除此代码并手动在SCRIPT2属性中禁用它。
game.Players.PlayerAdded:Connect(function()
workspace.SCRIPT2.Disabled = false -- 激活SCRIPT2。您可以多次更改“disabled”状态以进行重启和多次操作。
end)

此外,您可以将workspace.SCRIPT2.Disabled 替换为第二个脚本所在的位置,例如,workspace.FolderOne.scripts.SCRIPT2.Disabled。只需确保它指向脚本并保持"disabled"的状态,以便知道何时禁用/启用它。

2018-09-13 19:50:20
用户2077120
用户2077120

在纯 Lua 中,使用 dofile 可能是最合理的选择。然而,在 Roblox 中,这种方法必须要大不相同。我建议使用一个名为“Script2”的 ModuleScript 来完成这个任务。然后,您可以使用 require() 加载脚本。因为“require”脚本会将返回的值缓存起来供未来的“require”使用,这意味着 ModuleScript 的内容只会被执行一次。因此,如果您有要运行多次的代码,您应该将其封装在一个 ModuleScript 返回的函数中。

假设您的设置如下,以下是代码的样子:

Script1:

local script2 = require(game.ServerScriptService.Script2)

game.Players.PlayerAdded:Connect(function(player)
    script2()
end)

Script2:

-- In game.ServerScriptService.Script2 as a ModuleScript
return function()
    print("This message is triggered by event in script!")
end

查看 ModuleScripts 文档 以了解更多信息。

2018-09-15 23:05:02