---
description: JakkyBot. Экскурс по системам бота
---

# Системы

## 1. Опыт и уровни

{% hint style="warning" %}
Для получения опыта за отправку сообщений, бот **должен иметь право**

_**"Просматривать каналы".**_
{% endhint %}

### Терминология

Опыт и уровни — система награждения пользователей за активность в текстовых и иных каналах, предоставляющие возможность отправки сообщений.

* Опыт — количественная валюта, которая выдаётся при написании сообщений в чате. Каждый пользователь сервера имеет персональное количество опыта.
* Уровень — числовое значение, увеличение которого зависит от увеличение количества опыта. При этом, чем дальше идёт увеличение, тем больше на это требуется опыта.\


### Работа

Пользователь отправляет сообщение в канал и при этом получает опыт. При этом, количество опыта за 1 сообщение, которое получает пользователь рассчитывается с такими шансами:

<table><thead><tr><th data-type="number">Количество опыта</th><th>Шанс получения</th></tr></thead><tbody><tr><td>5</td><td>31.6% (31⅔%)</td></tr><tr><td>10</td><td>31.6% (31⅔%)</td></tr><tr><td>15</td><td>31.6% (31⅔%)</td></tr><tr><td>20</td><td>5%</td></tr></tbody></table>

Если количество опыта после прибавления достигает нового уровня, пользователь его получает. Количество опыта, которое требуется для получения нового уровня с текущего рассчитывается по следующей формуле: `5 * level ** 2 + 50 * level + 100`, где

* \* — умножение;
* \*\* — возведение в степень;
* level — новый уровень.

При достижении каждого нового уровня бот отправляет в канал сообщение.

{% hint style="warning" %}
Для отправки сообщения о новом уровне, бот **должен иметь право**

_**"Отправлять сообщения".**_
{% endhint %}

Также пользователь за достижение определённого уровня может получить роль — [**ранговую роль**](../terminologiya#1.-rangovaya-rol), если она была заранее настроена администраторами сервера.

## 2. Опросы

### Терминология

**Опрос** — сообщение, в котором пользователи могут голосовать за указанные администраторами варианты ответов.

### Работа

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

Таким образом бывает 4 вида опросов. Их названия и свойства:

<table><thead><tr><th width="238">Право:</th><th width="238">Публичный открытый</th><th width="238">Публичный закрытый</th><th width="238">Анонимный открытый</th><th width="238">Анонимный закрытый</th></tr></thead><tbody><tr><td>Голосовать</td><td>+</td><td>-</td><td>+</td><td>-</td></tr><tr><td>Смотреть количество голосов</td><td>+</td><td>+</td><td>-</td><td>+</td></tr><tr><td>Смотреть варианты голоса</td><td>+</td><td>+</td><td>+</td><td>+</td></tr><tr><td>Открывать если уже открыт 1 опрос</td><td>-</td><td>-</td><td>-</td><td>-</td></tr></tbody></table>
