Zum Artikel springen
NeuraCoreBenutzer-Wiki
← Zurück zum Kapitel
Eingebettetes Python

Zeit, und Antworten, die später kommen

Das, was alle überrascht: etwas anzufordern heißt nicht, dass es schon geschehen ist.

Warum ein Skript warten muss

Second Life ist anderswo. Ein angeforderter Teleport geht an die Region, und die Antwort kommt, wenn die Region so weit ist, meist nach ein paar Sekunden.

Dein Skript hält dafür nicht von selbst an: die nächste Zeile läuft, während der Avatar noch unterwegs ist. Dasselbe gilt für Informationen: wer in der Nähe ist, im Moment des Verbindens erfragt, kann kurz oder ohne Namen sein.

Warten, dann noch einmal schauen

Das Muster ist immer dasselbe: anfordern, kurz warten, prüfen, und nach einer vernünftigen Zahl von Versuchen aufgeben.

import time

avatar.teleport_home()

for attempt in range(30):
    time.sleep(1)
    status = avatar.execute("get_connection_status")
    print(attempt, status)
  • import time ist gewöhnliches Python.
  • Der Teleport wird einmal angefordert, vor der Schleife.
  • range(30) mit einer Sekunde Pause sind höchstens dreißig Sekunden. Eine Schleife ohne Grenze ist ein Skript, das nie endet.
  • time.sleep pausiert nur dieses Skript: Avatar und Oberfläche laufen weiter.

Etwas am Laufen halten

Wähle die Pause danach, wie schnell sich das Beobachtete wirklich ändert. Das Skript endet, wenn NeuraCore schließt; für etwas, das erreichbar bleiben muss, betreibe NeuraCore im Konsolenmodus auf einem Server.