Время и ответы, которые приходят позже
То, на чём спотыкаются все: попросить не значит, что уже сделано.
Почему скрипту приходится ждать
Second Life находится в другом месте. Запрошенный телепорт уходит в регион, и ответ возвращается, когда регион будет готов, обычно через несколько секунд.
Ваш скрипт сам по себе для этого не останавливается: следующая строка выполняется, пока аватар ещё в пути. То же и со сведениями: список тех, кто рядом, запрошенный в момент подключения, может оказаться коротким или без имён.
Подождать и посмотреть снова
Схема всегда одна: попросить, немного подождать, проверить и сдаться после разумного числа попыток.
import time
avatar.teleport_home()
for attempt in range(30):
time.sleep(1)
status = avatar.execute("get_connection_status")
print(attempt, status)- import time это обычный Python.
- Телепорт запрашивается один раз, до цикла.
- range(30) с паузой в секунду это не более тридцати секунд. Цикл без предела это скрипт, который не заканчивается никогда.
- time.sleep приостанавливает только этот скрипт: аватар и интерфейс продолжают работать.
Чтобы что-то работало и дальше
Выбирайте паузу по тому, как быстро на самом деле меняется наблюдаемое. Скрипт заканчивается вместе с закрытием NeuraCore; для того, что должно оставаться в работе, запускайте NeuraCore в консольном режиме на сервере.