{LUA} 如何在脚本中触发另一个脚本?
{LUA} How to fire another script in script?
我有一个来自 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 -- 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" 部分打开,这样它就知道禁用/启用它。
在纯 Lua 中,使用 dofile
可能最有意义。然而,在 Roblox 中,方法肯定有很大不同。我建议这样做的方法是为 "Script2" 使用 ModuleScript。然后您将使用 require()
加载脚本。因为 "requiring" 一个脚本缓存了未来 "requires" 的返回值,这意味着 ModuleScript 的内容只会被执行一次。因此,如果您有想要多次 运行 的代码,您应该将它封装在 ModuleScript returns.
的函数中
根据您的设置,代码如下所示:
脚本 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 的文档以了解更多信息。
我有一个来自 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 -- 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" 部分打开,这样它就知道禁用/启用它。
在纯 Lua 中,使用 dofile
可能最有意义。然而,在 Roblox 中,方法肯定有很大不同。我建议这样做的方法是为 "Script2" 使用 ModuleScript。然后您将使用 require()
加载脚本。因为 "requiring" 一个脚本缓存了未来 "requires" 的返回值,这意味着 ModuleScript 的内容只会被执行一次。因此,如果您有想要多次 运行 的代码,您应该将它封装在 ModuleScript returns.
根据您的设置,代码如下所示:
脚本 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 的文档以了解更多信息。