Перейти к статье
NeuraCoreВики пользователя
← Назад к главе
Встроенный Python

Скрипты, которые делают что-то полезное

Три полных скрипта, коротких для чтения, каждый с настоящей задачей.

Поздороваться с каждым пришедшим по разу

Продавец, который здоровается с каждым новым посетителем и не повторяется.

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 принадлежит держателю и времени не несёт.
  • Это только чтение: выдать или продлить лицензию скрипту намеренно нельзя.