Script che servono a qualcosa
Tre script completi, corti da leggere, ciascuno con un compito vero.
Salutare chi arriva, una volta ciascuno
Un negoziante che saluta ogni nuovo arrivato senza ripetersi.
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 è un insieme, che rifiuta i doppioni: è ciò che evita di salutare due volte la stessa persona.
- Il ciclo interno guarda chi c’è adesso, quello esterno lo ripete per dieci minuti.
- Chi non ha ancora un nome viene saltato invece che salutato come nessuno.
- Inviare un messaggio istantaneo richiede che send_im sia permesso.
Mandare un avatar su un percorso registrato
I percorsi si registrano percorrendoli tu, nella scheda Patrol. Uno script può avviarne uno per nome.
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 risponde con l’elenco dei percorsi di questo avatar, ciascuno con un id e il nome.
- loop=True lo fa continuare finché qualcosa non lo ferma.
- Registrare richiede Individual per un percorso per avatar, o Business per cento. Riprodurre non è limitato.
Controllare per che cosa è licenziata l’installazione
Utile in cima a qualsiasi script che intendi lasciare in funzione.
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 è la licenza in corso; licensed è vero solo quando gli avatar possono davvero collegarsi.
- Ogni slot è un posto, con l’avatar che lo occupa e i giorni rimasti. Il posto 0 è del titolare e non porta tempo.
- Questo legge e non cambia nulla: concedere o prolungare una licenza è deliberatamente fuori dalla portata di uno script.