Скрипты, которые делают что-то полезное
Три полных скрипта, коротких для чтения, каждый с настоящей задачей.
Поздороваться с каждым пришедшим по разу
Продавец, который здоровается с каждым новым посетителем и не повторяется.
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 это множество, оно не принимает повторов: именно это не даёт поздороваться с человеком дважды.
- Внутренний цикл смотрит, кто рядом сейчас, внешний повторяет это десять минут.
- Того, у кого имени ещё нет, пропускают, а не приветствуют как никого.
- Отправка мгновенного сообщения требует, чтобы send_im было разрешено.
Отправить аватара по записанному маршруту
Маршруты записываются тем, что вы проходите их сами, на вкладке Patrol. Скрипт может запустить маршрут по имени.
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 отвечает списком маршрутов этого аватара, у каждого есть id и данное вами имя.
- loop=True заставляет его идти по кругу, пока что-нибудь не остановит.
- Запись требует Individual для одного маршрута на аватара или Business для ста. Воспроизведение не ограничено.
Проверить, на что лицензирована установка
Полезно в начале любого скрипта, который вы намерены оставить работать.
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 это действующая лицензия; licensed истинно, только когда аватары действительно могут подключаться.
- Каждый slot это место, с аватаром на нём и оставшимися днями. Место 0 принадлежит держателю и времени не несёт.
- Это только чтение: выдать или продлить лицензию скрипту намеренно нельзя.