{LUA}如何在脚本中启动另一个脚本?

时间:2018-08-25 17:26:01

标签: lua scripting roblox

我有Lua / Roblox的问题! 基本上,我想从脚本中触发脚本。这听起来像是一个愚蠢的问题,但实际上不是:P

例如:

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

而且,我想对其进行编码以触发script2的内容。

示例:

脚本1的内容:

game.Players.PlayerAdded:Connect(function()

  HERE SCRIPT2 FIRING!

end)

脚本2的内容:

print("This message is triggered by event in script!")

我想这是一件非常简单的任务,所以请给我SIMPLEST和SHORTEST版本的代码。我不需要诸如在1中启动2个脚本之类的排他性内容。我是一个入门脚本,因此请保持简单。

谢谢,NorteX。

2 个答案:

答案 0 :(得分:2)

在纯Lua中,使用dofile可能最有意义。但是,在Roblox中,方法必须大不相同。我建议这样做的方法是将ModuleScript用于“ Script2”。然后,您将使用require()加载脚本。因为“需要”脚本会缓存返回的值以备将来“需要”使用,所以这意味着ModuleScript的内容将只执行一次。因此,如果您有要多次运行的代码,则应将其封装在ModuleScript返回的函数中。

这是设置后代码的样子:

脚本1:

local script2 = require(game.ServerScriptService.Script2)

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

脚本2:

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

查看ModuleScripts的文档以了解有关它们的更多信息。

答案 1 :(得分:0)

workspace.SCRIPT2.Disabled = true -- Disables SCRIPT2 , you can remove this and manually disable it in SCRIPT2's properties. game.Players.PlayerAdded:Connect(function() workspace.SCRIPT2.Disabled = false -- Activates SCRIPT2. You can alter the "disabled" state multiple time to make it reboot and operate more than once. end) 另外,您可以将workspace.SCRIPT2.Disabled替换为第二个脚本的位置,例如workspace.FolderOne.scripts.SCRIPT2.Disabled。只要确保它指向脚本并保持“ disabled”(禁用)部分不变,就可以禁用/启用它。