Scripts que sirven para algo
Tres scripts completos, cortos de leer, cada uno con un trabajo real.
Saludar a quien entre, una vez a cada uno
Un dependiente que saluda a cada recién llegado sin repetirse.
import time
greeted = set()
for minute in range(10):
for person in avatar.get_nearby_avatars():
if person["id"] in greeted or not person["name"]:
continue
greeted.add(person["id"])
avatar.send_im(person["id"], "Hello, and welcome to the shop.")
time.sleep(60)- greeted es un conjunto, que rechaza duplicados: eso evita saludar dos veces a la misma persona.
- El bucle interior mira quién está ahora; el exterior lo repite durante diez minutos.
- A quien todavía no tiene nombre se le salta en vez de saludarlo como a nadie.
- Enviar un mensaje instantáneo exige que send_im esté permitido.
Mandar a un avatar por una ruta grabada
Las rutas se graban recorriéndolas tú, en la pestaña Patrol. Un script puede lanzar una por su nombre.
routes = avatar.get_patrols()
print(routes)
for route in routes:
if route["name"] == "Garden round":
avatar.play_patrol(patrol=route["id"], loop=True)
break- get_patrols devuelve la lista de rutas de este avatar, cada una con un id y su nombre.
- loop=True la mantiene dando vueltas hasta que algo la pare.
- Grabar exige Individual para una ruta por avatar, o Business para cien. Reproducir no tiene límite.
Comprobar para qué está licenciada la instalación
Útil al principio de cualquier script que pienses dejar corriendo.
licence = avatar.get_licence_state()
print(licence["tier"])
print(licence["licensed"])
for slot in licence["slots"]:
print(slot["slot_index"], slot["avatar_name"], slot["individual_days"])- tier es la licencia en marcha; licensed solo es cierto cuando los avatares pueden conectarse de verdad.
- Cada slot es una plaza, con el avatar que la ocupa y los días que quedan. La plaza 0 es la del titular y no lleva tiempo.
- Esto lee y no cambia nada: conceder o ampliar una licencia queda fuera del alcance de un script, a propósito.