Найти тему

1. Гайд, как сделать таргетную команду для стрима.

Оглавление

Disclamer

Если делать гайд по полнофункциональному тыку, то он получится слишком большим, поэтому гайд разбит на три части:

  1. Целенаправленный тык на всех площадках.

Гайд направлен на стримеров, пользующихся одновременно твичём и вкпл. Если вам нужен гайд конкретно под твич, ютуб, вкпл или любую другую площадку из миничата, я могу сделать такой по вашему запросу.

Интерактив можно реализовать множеством способов и я не претендую на лучший и оптимальный из них.

В гайде не рассматривается настройка миничата, стримербота и интеграции. Отдельные гайды для всего этого находятся в разработке.

Исходники

Для реализации большинства интерактивов нам понадобится:

  • Streamer.bot -- нативно работает с твичём и ютубом. Представляет из себя многофункциональный чат-бот.
  • MiniChat -- мультичат для сбора информации с разных платформ. Сообщения из чатов, уведомления о фолловерах, донатах и т.д. MiniChat является частью StreaMix, но можно скачать отдельно из дискорда разработчика.
  • Интеграция, которая позволит нам передавать события из миничата в стримербот и таким образом подключить его ко всем площадкам из миничата. Там же есть инструкция от разработчика по подключению интеграции.

На момент написания гайда я использую стример.бот версии 0.2.1, миничат версии 0.12.4.β и интеграцию версии 1.0.2.

У меня всё это есть, давай уже к делу!

Итак, вы всё настроили и подключили. Давайте делать интерактив.

Для начала запишем в текстовый файл варианты ответов на команду.

Мы хотим, чтобы бот отвечал в чат что-то вроде: "Лупа тыкнул Пупу". При этом Лупа -- это зритель, набравший команду, а Пупа -- случайный либо указанный Лупой зритель. Для этого пишем строку вида: "%user% тыкнул %randomUserName0%". В %user% бот подставит ник зрителя, который вызвал команду -- Лупа. А %randomUserName0% заменит на ник случайного зрителя из чата или на текст, идущий после команды.

Пример моего файла можно посмотреть на скрине ниже.

Когда файл готов, переключаемся в стримербота. В пустом месте области Actions тыкаем правой кнопкой мыши и кликаем на Add.

-2

В открывшемся окне в поле Name вводим название для действия. В примере -- "Тыкнуть". Group нужна для удобства. Можно сравнить с каталогами (папками) в винде. Как вы расскладываете файлы по каталогам, так же можно объединять действия в группы.

-3

Теперь кликаем на созданное действие, чтобы редактировать именно его. В области Sub-Actions нажимаем правую кнопку мыши и выбираем Core -> Arguments -> Set Argumenst

-4

В окошке в Variable Name пишем randomUserName0. В поле Value пишем %rawInput%.

-5

В переменную %rawInput% попадёт всё, что будет после команды, а мы сказали боту взять её значение и положить в переменную randomUserName0. Так на команду вида "!тыкнуть этого плохого человека", бот напишет "Лупа тыкнул этого плохого человека".

Цель тыка мы получили. Теперь нужно получить фразу из нашего файла. Для этого мы добавляем другой Sub-Action: Core -> File IO -> Read Random Line From File.

-6

В появившемся окошке нажимаем на кнопку с троеточием и выбираем наш файл с ответами. В Count пишем 1, так как нам нужна всего одна строка. И ставим галочку на Parse variables. Так мы объснили боту, что %user% и %randomUserName0% в файле надо заменять на то, что нам надо.

-7

Далее нам надо записать в сообщение нашу строку. Делаем Set Arguments и записываем в переменную message значение %randomline%.

-8

Теперь осталось отправить сообщение туда, откуда была вызвана команда. В этом нам поможет интеграция. Делаем Core -> C# -> Execure C# Method

-9

В Execute C# Code выбираем MiniChat Method Collection.
В
Method выбираем SendMessageReply.

-10

Получившийся экшн выглядит следующим образом. А настройка действия, из которого этот экшен вызывается, ждёт вас в следующих гайдах.

-11

Бонус

Можем добавить действию триггер, чтобы сделать его самостоятельным.

В области Triggers нажимаем правой кнопкой мыши, идём в Core -> Commands -> Command Triggered.

-12

В появившемся окошке нажимаем Create Command, так как у нас ещё нет команды для этого действия. Если вы, конечно, не сделали её заранее. В таком случае просто найдите её в списке Command и выберите.

-13

В поле Name вписываем название команды. В моём случае "Тыкнуть". В Command(s) пишем саму команду, которая будет вызывать экшн. В примере это "!тыкнуть". В Source(s) выбираем Twitch Message и YouTube Message, чтобы команда работала на твиче и ютубе соответственно. На вкпл и других платформах, к которым подключен миничат, команда будет работать независимо от этих галочек.

-14

Чтобы интеграция увидела команду без перезапуска, не забудьте нажать Save в стримерботе.

Проверяем тык на каждой платформе.

-15

Всем бобра!

Если у вас появились вопросы по этому гайду или запросы на гайд, которого ещё нет -- пишите в комментарии, тг, дискорд и приходите на стримы.

Видео-гайд обязательно выйдет позже.