我有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。
答案 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”(禁用)部分不变,就可以禁用/启用它。