Перейти к статье
NeuraCoreВики пользователя
← Назад к главе
Встроенный Python

Время и ответы, которые приходят позже

То, на чём спотыкаются все: попросить не значит, что уже сделано.

Почему скрипту приходится ждать

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 в консольном режиме на сервере.