Когда я выхожу с сервера, телепортируюсь в другой мир, или же просто покидаю чанк, то (не всегда!) проявляется следующий эффект:
Одна из переменных (в приведённом тексте TimeOut. Я пробовал её переименовать) перестаёт принимать значения.
То есть, для примера, когда я возвращаюсь в чанк и нажимаю на кнопку открытия дверей, вызывается функция VisitRequest, которая вызывает в свою очередь после проверки вызывает функцию OpenDoor, которая успешно отрабатывает, и вызывает в свою очередь функцию WaitMenu.
Которая выполняет всё успешно (судя по надписи на экране). Но переменная TimeOut не принимает значение delay, и остаётся в нуле (её значение по-умолчанию), судя по выводу на экран и дальнейшему поведению программы.
Обнуление переменной исключается, так как единственное место где она обнуляется не исполняется (меню не отрисовывается).
Может кто-то с таким сталкивался? Из-за чего такое возможно?
Update: Это наблюдается на как минимум двух компьютерах с двумя разными программами...
Не знаю, где лучше расположить эту тему.
Ситуация:
Есть дом на сервере EvilCraft. В нём работает в режиме non-stop примерно 5 компьютеров (включая один сервер и одного робота).
В доме есть дверь. На которой запущена программа входного замка.
Программа (урезанная до скелета, чисто для демонстрации. В приведённой версии эффект наблюдается вполне) приведена тут:
https://pastebin.com/yzf4eRZq
Проблема:
Когда я выхожу с сервера, телепортируюсь в другой мир, или же просто покидаю чанк, то (не всегда!) проявляется следующий эффект:
Одна из переменных (в приведённом тексте TimeOut. Я пробовал её переименовать) перестаёт принимать значения.
То есть, для примера, когда я возвращаюсь в чанк и нажимаю на кнопку открытия дверей, вызывается функция VisitRequest, которая вызывает в свою очередь после проверки вызывает функцию OpenDoor, которая успешно отрабатывает, и вызывает в свою очередь функцию WaitMenu.
function WaitMenu(delay) sMode = -1; TimeOut = delay; timestamp = computer.uptime(); gpu.fill(1,7, resX, resY, " "); gpu.set(8, 9, "PLEASE WAIT"); end
Которая выполняет всё успешно (судя по надписи на экране). Но переменная TimeOut не принимает значение delay, и остаётся в нуле (её значение по-умолчанию), судя по выводу на экран и дальнейшему поведению программы.
Обнуление переменной исключается, так как единственное место где она обнуляется не исполняется (меню не отрисовывается).
Может кто-то с таким сталкивался? Из-за чего такое возможно?
Update: Это наблюдается на как минимум двух компьютерах с двумя разными программами...
Изменено пользователем AexПоделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах