El tiempo, y las respuestas que llegan después
Lo que sorprende a todo el mundo: pedir algo no significa que ya haya ocurrido.
Por qué un script tiene que esperar
Second Life está en otro sitio. Un teleporte pedido va a la región y la respuesta vuelve cuando la región está lista, normalmente unos segundos.
Tu script no se detiene solo por eso: la línea siguiente se ejecuta mientras el avatar aún va de camino. Lo mismo pasa con la información: quién está cerca, preguntado justo al conectar, puede salir corto o sin nombres.
Esperar y volver a mirar
El patrón es siempre el mismo: pedir, esperar un momento, comprobar y rendirse tras un número razonable de intentos.
import time
avatar.teleport_home()
for attempt in range(30):
time.sleep(1)
status = avatar.execute("get_connection_status")
print(attempt, status)- import time es Python corriente.
- El teleporte se pide una vez, antes del bucle.
- range(30) con un segundo de espera son como mucho treinta segundos. Un bucle sin límite es un script que no termina nunca.
- time.sleep pausa solo este script: el avatar y la interfaz siguen.
Mantener algo en marcha
Elige la espera según lo rápido que cambie de verdad lo que vigilas. El script termina cuando NeuraCore se cierra; para algo que deba seguir en pie, ejecuta NeuraCore en modo consola en un servidor.