Друкарня від WE.UA

Змінна – це ім’я, яке використовується для зберігання та звернення до даних. Вони різні за іменем і мають різне значення. Вони здатні зберігати ім'я користувача, кількість балів, текст повідомлення тощо.

Коли тригер виконує дію, він автоматично генерує набір змінних, специфічних для цього джерела та типу, і робить їх доступними для цієї дії через стек аргументів. Ви можете використовувати наступні під-дії для заповнення додаткових аргументів або навіть для маніпулювання існуючими аргументами в стеку.

Аргументи існують тільки в межах поточної дії. Після завершення виконання дії вони не можуть бути використані в жодній іншій дії. Щоб використовувати змінні в декількох діях або зберегти їх після перезапуску, ви можете зберегти їх як глобальні змінні.

Навіщо вони потрібні?

Без змінних ви не зможете:

  • Дізнатися, хто написав повідомлення в чаті

  • Підрахувати кількість використань команди

  • Зберегти бали глядачів

  • Передати дані між різними діями

  • Створити динамічні повідомлення

Типи змінних

У Streamer.bot існує 3 типи змінних:

  • Аргументи (Arguments) – локальні змінні конкретної дії

  • Глобальні змінні (Global Variables) – це змінні, які доступні у ВСІХ діях і зберігаються в пам'яті SB, навіть після закриття програми (якщо увімкнено персистентність).

  • Користувацькі глобальні змінні (User Global Variables) – змінні, що зберігаються окремо для кожного користувача.

Персистентність - це здатність інформації або стану програми зберігатися навіть після завершення процесу, що її створив. У контексті Streamer.bot, persisted globals/user globals відрізняються від Non-persisted тим, що коли ви закриваєте програму, Non-persisted видаляються назавжди, а persisted залишаються.

Аргументи – це змінні, які існують лише в межах однієї дії (Action). Коли тригер запускає дію, він автоматично створює набір аргументів зі своїми даними. Після завершення дії, всі аргументи видаляються з пам'яті.

Щоб звернутися до аргумента, потрібно обгорнути його назву знаками відсотка %:

%userName%, %message%, %tier%

Приклад: Якщо хтось написав у чаті, тригер Message створить аргументи:

  • %user% – нікнейм користувача (як він відображається)

  • %userName% – нікнейм у нижньому регістрі

  • %message% – текст повідомлення

  • %msgId% – ID повідомлення

Примітка. Будь-який sub-action, який має текстове поле, може приймати аргументи, чи змінні. Відсотки потрібні ЛИШЕ при використанні. При створенні аргумента назву пишіть БЕЗ відсотків!
Приклад використання аргумента %userName%
Приклад використання аргумента %userName%

Глобальні змінні – це змінні, які доступні у ВСІХ діях і зберігаються в пам'яті SB, навіть після закриття програми (якщо увімкнено персистентність).

Примітка. Щоб використати глобальну змінну в дії, спочатку потрібно її "завантажити" через Get Global Variable.

Користувацькі глобальні змінні зберігають значення окремо для кожного користувача. Це ідеально підходить для:

  • Балів користувача

  • Статистики (скільки разів користувач використав команду)

  • Рейтингів та таблиць лідерів

Змінна

Опис

%date%

%time%

%longtime%

%unixtime%

%actionName%

%lf%

Поточна дата

Поточний час

Час з секундами

Unix час

Назва поточної дії

Новий рядок

Як переглянути аргументи

Переходимо до вкладки Action & Queues → Action History. Після відпрацювання, дії зберігаються тут:

Якщо ми натиснемо два рази на дію, відкриється вікно, де ми побачимо усі змінні, з якими ми можемо працювати:

Тут є два поля з нікнеймом: user і userName. user - це ім’я, яке виводиться в чат, userName - це ім’я з нижнім регістром, яке слугує посиланням на канал людини.

Примітка: Може виникнути така ситуація, що у людини userName англійською, але він вирішив собі зробити display name (user) японською, тоді user буде ієрогліфами, а userName літерами.

Приклад

Давайте зробимо приклад. Створимо команду !dice, яка рахуватиме для кожного користувача, скільки разів він її використав.

  • Створимо action !dice і зробимо тригер на команду в чаті. Виглядатиме це так:

  • Далі, нам треба використати Get User Global Variable. Я заповнив наступним чином:

    Souce має 3 типи:

    • Global - бере дані з будь-якої глобальної змінної

    • User (redeemer) - бере дані з користувача, хто затригерив поточну дію

    • User (target) - бере дані з користувача, який знаходиться в змінній targetUser (зазвичай, це не потрібно)

    У полі Variable Name ми беремо глобальну змінну, з якої хочемо дістати інформацію.

    Destination Variable - це аргумент, який створюється для того, щоб отримати значення з Variable Name (грубо кажучи, це змінна-копія).

    Default Value - потрібно, якщо змінни у користувача немає, то створити її з цим значенням (зазвичай це 0).

  • У верхньому меню програми, є кнопка Global Variables, якщо туди перейти, відкриється вікно, у цьому вікні збергіаються глобальні та користувавцькі змінні. У кожного користувача власні змінні. Щоб знайти користувача, вам потрібно написати платформу (Twitch) і вести його нікнейм. Це виглядатиме наступним чином:

    Поки пусто, але це через те, що ми ще не створили змінну dice_count_var.

  • Якщо ми зараз активуємо нашу дію !dice, написавши її в чат, то в Global Variables з’явиться наша змінна:

  • Чудово, тепер нам треба збільшувати на 1 для quarryck змінну dice_count_var щоразу, коли він пише цю команду. Створимо Set Global Variable і введемо наступним чином:

    Також підтримується Global/User (redeemer)/User (target). Оскільки змінюємо змінну для конкретного користувача, а не для всіх, тому беремо тип redeemer.

    Increment - це для збільшення значення змінної на якесь число. Якщо поле пусте то на 1. Є ще Decrement - це віднімання значення змінної на якесь число і Value, встановлення конкетреного значення.

  • Добре, тепер давайте знову активуємо !dice, та глянемо, як зміниться значення dice_count_var у мене:

  • Бачимо, що значення збільшилось на 1. Тепер спробуємо зробити якийсь текст, який виведе повідомлення в чат. Напишу так: “%user% використав команду !dice вже %dice_count_var% разів!”.

  • Чому замість значення змінної вивелась її назва в відсотках? Проблема полягає в тому, що ми не можемо напряму змінювати змінну, адже, якщо вона буде задіянна в багатьох діях, які працюватимуть паралельно, це можна призвести до порушення логіки усіх дій та критичної помилки програми. Саме тому, ми використовуємо Destination Variable, щоб створити аргумент, який працюватиме всередині однієї дії і вже там використовуватись.

    Примітка. Ми можемо вказувати Variable Name і Destination Variable однаковий, але це не рекомендується робити.

  • Змінимо вивід на dice_count_arg і спробуємо ще раз вивести значення:

  • Ще одна неточність, в чаті вивелось 2, хоча мало 3. Це обґрунтовано тим, що Streamer.bot використовує ще старе значення змінної, адже Get Global йшов раніше за Set Global. Як це можна виправити? Перенести Get Global, щоб він був після Set Global. Set Global також здатний створювати змінну, якщо її ще не існує. Зробимо наступним чином і спробуємо вивести наш результат:

Висновок

Ми розглянули, що таке змінні в Streamer.bot. Дізналися, що існує три види змінних (нагадую, що аргументи теж змінні). Як переглядати наявні змінні, при виконання дії, змінювати їх та надавати якісь змінні глобально, чи користувачам. Створили приклад конкретно для користувачів.


Корисні посилання

Офіційна документація про змінні: https://docs.streamer.bot/guide/variables

Стаття про тригери:

💜Мій Twitch канал: https://www.twitch.tv/quarryck

🥰Підписатись на канал Streamer.BotUA: https://t.me/StreamBotUA

🫂Платна підписка на автора: https://base.monobank.ua/quarryck

💴Донат: https://send.monobank.ua/jar/9mvkm2Hy2z

❔Питання до автора: https://discord.gg/BmhReWjPTT

Статті про вітчизняний бізнес та цікавих людей:

  • Вітаємо з Різдвом Христовим!

    Друкарня та платформа WE.UA вітають всіх наших читачів та авторів зі світлим святом Різдва! Зичимо всім українцям довгожданого миру, міцного здоровʼя, злагоди, родинного затишку та втілення всього доброго і прекрасного, чого вам побажали колядники!

    Теми цього довгочиту:

    Різдво
  • Каблучки – прикраси, які варто купувати

    Ювелірні вироби – це не тільки спосіб витратити гроші, але і зробити вигідні інвестиції. Бо вартість ювелірних виробів з кожним роком тільки зростає. Тому купуючи стильні прикраси, ви вигідно вкладаєте кошти.

    Теми цього довгочиту:

    Як Вибрати Каблучку
  • П'ять помилок у виборі домашнього текстилю, які псують комфорт сну

    Навіть ідеальний матрац не компенсує дискомфорт, якщо текстиль підібрано неправильно. Постільна білизна безпосередньо впливає на терморегуляцію, стан шкіри та глибину сну. Більшість проблем виникає не через низьку якість виробів, а через вибір матеріалів та подальшу експлуатацію

    Теми цього довгочиту:

    Домашній Текстиль
  • Як знайти житло в Києві

    Переїжджаєте до Києва і шукаєте житло? Дізнайтеся, як орендувати чи купити квартиру, перевірити власника та знайти варіанти, про які зазвичай не говорять.

    Теми цього довгочиту:

    Агентство Нерухомості
  • Як заохотити дитину до читання?

    Як залучити до читання сучасну молодь - поради та факти. Користь читання для дітей - основні переваги. Розвиток дітей - це наше майбутнє.

    Теми цього довгочиту:

    Читання
Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Quarryck
Quarryck@quarryck

Стример на платформi Twitch

17Прочитань
1Автори
1Читачі
На Друкарні з 5 грудня

Більше від автора

  • Streamer.bot. Що таке Sub-Actions?

    У попередніх статтях ми розібрали, що таке Streamer.bot, як створювати команди та працювати з тригерами. Сьогодні поговоримо про найцікавіше — Sub-Actions. Я наведу кілька прикладів їх використання і як в попередньому разі, постараюсь виділити основні, якими варто користуватись.

    Теми цього довгочиту:

    Twitch
  • Streamer.bot. Що таке тригери?

    У попередній статті ми розглянули, що таке Streamer.bot і як створити просту команду в чаті. Сьогодні ми детально розберемо тригери (Triggers) - механізм, який дозволяє запускати ваші дії автоматично.

    Теми цього довгочиту:

    Obs
  • Streamer.bot. Знайомство

    Усім привіт. Мене звати кварик (quarryck). Я є стримером на платформі twitch і користувачем програми Streamer.bot. Це моя перша стаття і вона буде ознайомлювальна про те, що таке Streamer.bot та швидке налаштування.

    Теми цього довгочиту:

    Twitch

Це також може зацікавити:

  • 🍿 Сходили в кіно

    Про те як розважити себе та аудиторію під час етерів

    Теми цього довгочиту:

    Twitch
  • Користувацькі смайлики 7TV на Twitch та YouTube

    Смайлики є важливим інструментом взаємодії між стрімером та глядачами, а якщо ці смайлики ще й смішні — то це крутіше у 2 рази. З цим нам допоможуть сторонні сервіси, але, як на мене, найкращий представник це 7TV.

    Теми цього довгочиту:

    Twitch
  • 🫦 Гарячі тайм-коди

    Де шукати гарячі тайм-коди для фільмів стримерам та модераторам

    Теми цього довгочиту:

    Кіно

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити:

  • 🍿 Сходили в кіно

    Про те як розважити себе та аудиторію під час етерів

    Теми цього довгочиту:

    Twitch
  • Користувацькі смайлики 7TV на Twitch та YouTube

    Смайлики є важливим інструментом взаємодії між стрімером та глядачами, а якщо ці смайлики ще й смішні — то це крутіше у 2 рази. З цим нам допоможуть сторонні сервіси, але, як на мене, найкращий представник це 7TV.

    Теми цього довгочиту:

    Twitch
  • 🫦 Гарячі тайм-коди

    Де шукати гарячі тайм-коди для фільмів стримерам та модераторам

    Теми цього довгочиту:

    Кіно