Member 14848624 Ответов: 1

Как я могу "ждать", пока событие не будет вызвано? Луа (у меня)


Привет, я создаю игру с использованием Lua, включая встроенные функции, предоставляемые Roblox. Однако этот вопрос не является специфичным для Roblox = я думаю, что он может применяться ко всему, что использует язык Lua. Однако просто имейте в виду, что решение может включать в себя встроенные функции Roblox. Поэтому у меня есть скрипт, однако мне нужно, чтобы он ждал, пока одно из моих значений не будет равно 1. Это как флаг. Хотя я знаком с функцией wait (), которая позволяет приостановить сценарий на несколько секунд, я не уверен, как сделать что-то вроде "подождите, пока Flag.Value = 1". У меня есть локальная функция, которую я хочу запустить, но только тогда, когда значение флага равно 1.

Что я уже пробовал:

Я уже пробовал несколько подходов, таких как использование цикла while true. Я написал что-то вроде этого:

в то время как верно делать
если Flag.Value = 1 do
examplefunction()
конец
конец

Однако это возвращает ошибку: "тайм-аут скрипта: исчерпано допустимое время выполнения". Я не уверен, что эта ошибка связана, но когда я избавился от своего цикла и просто вызвал функцию, ошибки не было. Есть ли способ сделать такое заявление, как "подождите, пока"? Спасибо

1 Ответов

Рейтинг:
8

OriginalGriff

Проблема в том, что выполнение занимает слишком много времени, и Roblox предполагает, что ваше приложение разбилось и умерло - поэтому оно убивает его за вас. Ваш while петля сидит там, проверяя флаг снова и снова, и больше ничего не делает, поэтому предполагается, что он никогда не выйдет.

Вы можете посмотреть здесь: Как справиться с "таймаутом скрипта: исчерпано допустимое время выполнения" - поддержка сценариев - форум разработчиков Roblox[^] - это может объяснить это лучше, и это показывает, что вам, вероятно, нужно сделать.