Diez scripts, y cuáles se ejecutan
Un avatar puede guardar diez scripts. Cada uno tiene un nombre y un número, cada uno tiene su propia salida, y cada uno puede arrancar solo.
Elegir cuál estás mirando
La lista desplegable de arriba del Python Runner contiene todos los scripts de este avatar. Elegir uno muestra su código y su salida, y no cambia nada más: los demás scripts en ejecución siguen ejecutándose y recogiendo su propia salida mientras miras este.
Añadir script crea uno a partir de la plantilla. Eliminar quita el que está en pantalla y pregunta antes, porque su código se va con él.
Nombres y números
Cada script tiene un nombre que eliges tú y un número que le da NeuraCore. El nombre es para ti; el número es lo que usan los comandos y el historial.
Un número nunca se le da a un segundo script. Elimina el script 2 y el siguiente que añadas será el 4, no el 2: unos números que se corrieran tras una eliminación harían que el comando para ejecutar el script 4 arrancara otro script un buen día, sin que nada te lo dijera.
Prioridad de arranque
La prioridad decide el orden cuando varios scripts arrancan a la vez: el número más bajo primero. Cuando solo arranca uno, no hace nada.
Luego se ejecutan a la vez. La prioridad es el orden de arranque y no una cola: un script que se repite sin fin no retiene a los siguientes.
Arrancar solo
Marca «arrancarlo automáticamente en cuanto el avatar esté en línea» y ese script arranca por su cuenta cada vez que ese avatar se conecta, en orden de prioridad con los demás marcados. Empieza sin marcar en todos los scripts.
La otra mitad: todo script en ejecución se detiene cuando su avatar se desconecta. Un script cuyo avatar se ha ido solo puede ser rechazado, y dejarlo en marcha llenaría el historial de fallos que nadie pidió.
Ejecutarlo y detenerlo
Run arranca el script en pantalla y Stop lo termina. Un script ya en ejecución se deja como está en vez de arrancarse dos veces, así que volver a pulsar Run es inofensivo y no hace nada.
Stop alcanza igual a un script que espera y a uno que se repite: se interrumpe donde esté. Si prefieres que termine con orden, haz que pregunte.
import time
while not avatar.stop_requested():
for person in avatar.get_nearby_avatars():
print(person["name"])
time.sleep(30)
print("Asked to stop, so stopping.")- stop_requested responde verdadero en cuanto alguien ha pedido que este script se detenga.
- Comprobarlo en cada vuelta del bucle deja que el script termine en un punto que has elegido.
- Un script que nunca lo comprueba se detiene igualmente. Esto solo decide dónde.
Leer la biblioteca desde un script
Un script ve la misma lista que el desplegable.
for script in avatar.list_scripts():
print(script["id"], script["name"], script["priority"], script["running"])- Cada entrada lleva el número del script, su nombre, su prioridad, si arranca solo y si está en ejecución ahora.
Un script que arranca otro
Un script puede arrancar y detener a los demás, por número o por nombre.
print(avatar.run_script("Greeter"))
print(avatar.kill_script(2))- run_script responde started, o already_running, que no es un error y significa lo que dice.
- kill_script responde killed, o not_running.
- Run Script está desactivado al principio en Action Permissions, porque arrancar un script no es una capacidad sino todas las que alcanzan sus líneas. Actívalo cuando quieras que un script, la IA o un mensaje instantáneo puedan arrancar uno.
Arrancar uno por mensaje instantáneo
El Master puede enviar run seguido del número o el nombre de un script, y kill igual. El avatar responde si lo arrancó, si ya estaba en ejecución, si lo detuvo, o si no estaba en ejecución.
Un residente autorizado puede hacer lo mismo, pero solo con un script cuya casilla «los residentes autorizados pueden ejecutarlo por MI» esté marcada. Empieza vacía en todos los scripts, y conviene dejarla así para todo aquello cuyas llaves no darías: un script no es una acción, es todo lo que hacen sus líneas.