{LUA} Как запустить другой скрипт в скрипте? - PullRequest
0 голосов
/ 25 августа 2018

У меня вопрос от Lua / Roblox! По сути, я хочу запустить сценарий из сценария. Это может звучать как глупый вопрос, но на самом деле это не так: P

Например:

У меня есть скрипт: script1 в ServerScriptStorage.

И я хочу закодировать его для запуска содержимого script2.

Примеры:

Содержание скрипта1:

game.Players.PlayerAdded:Connect(function()

  HERE SCRIPT2 FIRING!

end)

Содержание скрипта2:

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

Полагаю, это довольно простая задача, поэтому, пожалуйста, дайте мне ПРОСТУЮ и КОРОТКУЮ версию кода. Мне не нужны какие-либо эксклюзивы, такие как запуск 2-х скриптов в 1. Я начинающий скрипт, поэтому, пожалуйста, будьте проще.

Спасибо, NorteX.

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018

В чистом Lua использование dofile, вероятно, имело бы смысл.Однако в Roblox подход должен быть очень другим.Я бы порекомендовал сделать это с помощью ModuleScript для «Script2».Затем вы должны загрузить скрипт, используя 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 , чтобы узнать о них больше.

0 голосов
/ 13 сентября 2018

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.Просто убедитесь, что он указывает на сценарий и оставляет «отключенную» часть включенной, чтобы он мог отключить / включить его.

...