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

{LUA}如何在脚本中启动另一个脚本?,lua,scripting,roblox,Lua,Scripting,Roblox,我有一个来自Lua/Roblox的问题! 基本上,我想从一个脚本中激发一个脚本。这听起来可能是个愚蠢的问题,但事实并非如此:P 例如: 我在ServerScriptStorage中有一个脚本:script1 我想将其编码为激发script2的内容 示例: 脚本1的内容: game.Players.PlayerAdded:Connect(function() HERE SCRIPT2 FIRING! end) 脚本2的内容: print("This message is triggere

我有一个来自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!")
这是相当简单的任务,我想,所以请给我最简单和最短的代码版本。我不需要像在1中启动2脚本这样的任何排他性。我是一个乞丐脚本,所以请保持简单


谢谢,NorteX。

workspace.SCRIPT2.Disabled=true——禁用SCRIPT2,您可以删除它并在SCRIPT2的属性中手动禁用它。
game.Players.PlayerAdded:Connect(函数()
workspace.SCRIPT2.Disabled=false——激活脚本2。您可以多次更改“Disabled”状态,使其重新启动并多次运行。
结束)

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

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

以下是给定设置时代码的外观:

脚本1:

localscript2=require(game.ServerScriptService.script2)
游戏.玩家.玩家添加:连接(功能(玩家)
脚本2()
(完)
脚本2:


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

在常规lua中,您将使用每次运行脚本的
dofile()
require()
将只加载模块一次,但它可以返回一个函数,您可以随时调用该函数。也许在roblox中?在pure LUA中,有一个类似的问题,有关于这个主题的详细答案:
-- In game.ServerScriptService.Script2 as a ModuleScript
return function()
    print("This message is triggered by event in script!")
end