# Flash Notifier
Плагин для CS2, который сообщает игрокам в чате, когда они ослепили кого-то или когда их самих ослепили.
```
You flashed PlayerName for 2.5s
PlayerName flashed you for 2.5s
```
## Особенности
- **Уведомление нападающего** — «Вы ослепили PlayerName на 2,5 с», когда вы ослепили кого-то
- **Уведомление жертвы** — «ИгрокИмя ослепил вас на 2,5 с», когда вас ослепили
- **Имена в цветах команды** — имя другого игрока отображается в цвете его команды
- **Полностью настраиваемые сообщения** — текст, цвета и заполнители
- **Фильтр минимальной длительности** — игнорирует крошечные частичные вспышки, которые никому не интересны
- **Режим «Только вспышки союзников»** — по желанию пользователя уведомлять только в том случае, если союзнику ослепили глаза
- **Легкий** — один хук события, без таймеров, без базы данных, ничего на каждый такт
## Требования
[CounterStrikeSharp](https://github.com/roflmuffin/CounterStrikeSharp/releases) (версия API 227 или
(более новая). Ничего больше.
## Установка
1. Скопируйте `FlashNotifier`папку в `addons/counterstrikesharp/plugins/`, чтобы в итоге у вас получилось
`addons/counterstrikesharp/plugins/FlashNotifier/FlashNotifier.dll`.
CounterStrikeSharp загружает плагин только из папки, названной в честь его DLL-файла — сам файл находится в папке
`plugins/` игнорируется.
2. Перезапустите сервер или выполните команду `css_plugins load FlashNotifier`.
3. Конфигурационный файл сгенерирован в
`addons/counterstrikesharp/configs/plugins/FlashNotifier/FlashNotifier.json`.
## Настройки
```json
{
"NotifyAttacker": true,
"NotifyVictim": true,
"AttackerMessage": "{GREEN}You flashed {TEAM}{VICTIM}{GREEN} for {YELLOW}{DURATION}s",
"VictimMessage": "{TEAM}{ATTACKER}{DEFAULT} flashed you for {YELLOW}{DURATION}s",
"MinDuration": 0.5,
"DurationDecimals": 1,
"NotifyTeamFlashOnly": false,
"ConfigVersion": 1
}
```
| Вариант | По умолчанию | Описание |
|--------|---------|-------------|
| `NotifyAttacker` | `true` | Отправить сообщение игроку, который запустил флеш |
| `NotifyVictim` | `true` | Отправить сообщение игроку, который попал в «слепую зону» |
| `AttackerMessage` | см. выше | Линия, которую видит нападающий |
| `VictimMessage` | см. выше | Линия, которую видит жертва |
| `MinDuration` | `0.5` | Минимальная продолжительность слепого периода, в секундах, которую следует указать. Отрицательные значения рассматриваются как `0`. |
| `DurationDecimals` | `1` | Количество знаков после запятой для продолжительности (`1` = 2,5 с, `2`= 2,50 с). Ограничено диапазоном 0–3. |
| `NotifyTeamFlashOnly` | `false` | Уведомлять только в том случае, если игрок, не знающий результата, является товарищем по команде |
О самосрабатывании вспышки никогда не сообщается — вы это и так знаете.
## Заполнители
| Заполнитель | Заменено на |
|-------------|---------------|
| `{ATTACKER}` | Имя игрока, бросившего флеш |
| `{VICTIM}` | Имя игрока, который остался без фишек |
| `{DURATION}` | Продолжительность затухания в секундах |
| `{TEAM}` | Цвет команды **другого игрока** — жертвы в `AttackerMessage`, нападающего в `VictimMessage` |
| `{ATTACKERTEAM}` | Цвет команды атакующего, независимо от того, в каком сообщении он используется |
| `{VICTIMTEAM}` | Цвет команды жертвы, независимо от того, в каком сообщении он используется |
Цвета команд: оранжевый — для T, синий — для CT. Игрок, не входящий ни в одну из команд, получает цвет по умолчанию
цвет.
Перед тем как имя игрока попадает в строку, из него удаляются управляющие символы, поэтому имя не может
измените цвет текста в чате или разбейте его на несколько строк.
## Цветовая кодировка
| Код | Цвет |
|------|--------|
| `{DEFAULT}` / `{WHITE}` | Белый |
| `{DARKRED}` | Тёмно-красный |
| `{RED}` | Красный |
| `{LIGHTRED}` | Светло-красный |
| `{GREEN}` | Зелёный |
| `{LIME}` | Лайм |
| `{OLIVE}` / `{LIGHTGREEN}` | Оливковый |
| `{YELLOW}` / `{LIGHTYELLOW}` | Жёлтый |
| `{GOLD}` / `{ORANGE}` | Золотой / оранжевый |
| `{SILVER}` / `{BLUEGREY}` | Серебро |
| `{GREY}` / `{GRAY}` | Серый |
| `{BLUE}` / `{LIGHTBLUE}` | Синий |
| `{DARKBLUE}` | Тёмно-синий |
| `{PURPLE}` / `{MAGENTA}` | Фиолетовый |
| `{LIGHTPURPLE}` | Светло-лиловый |
Некоторые имена занимают одну строку, поскольку в самой игре им присвоен один и тот же цвет — они отображаются как
псевдонимы, чтобы существующие конфигурации продолжали работать.
## Примеры сообщений
Показать только продолжительность:
```json
"VictimMessage": "{YELLOW}{DURATION}s{DEFAULT} flash from {TEAM}{ATTACKER}"
```
Минималистичный:
```json
"AttackerMessage": "{GREEN}Flash hit {TEAM}{VICTIM}",
"VictimMessage": "{RED}Flashed by {TEAM}{ATTACKER}"
```
Оба имени в одной строке, каждое в цвете своей команды:
```json
"VictimMessage": "{ATTACKERTEAM}{ATTACKER}{DEFAULT} flashed {VICTIMTEAM}{VICTIM}{DEFAULT} for {YELLOW}{DURATION}s"
```
## Что находится в архиве
```
addons/counterstrikesharp/plugins/FlashNotifier/
FlashNotifier.dll the plugin
FlashNotifier.deps.json dependency manifest - keep it next to the dll
README.md this file
```
Собственные сборки CounterStrikeSharp намеренно не включены; они уже имеются на сервере, и
Создание второй копии может привести к конфликту версий.
## Журнал изменений
### 1.1.0
- **Исправлены цветовые коды.** Несколько токенов отображались в цвете, отличном от того, который предполагалось по их названию —
`{RED}` был тёмно-красным, `{PURPLE}`был светло-фиолетовым, `{GREY}`был серебристым, `{LIGHTBLUE}`был тёмным
синий и вообще не `{DARKBLUE}`был цветом. Теперь они отображаются благодаря собственной технологии CounterStrikeSharp
константы, поэтому они зависят от хода игры, а не от жестко заданного значения в байтах.
- **Исправлены цвета команд.** Буквы «T» отображались фиолетовыми вместо оранжевых.
- **Исправлено`{TEAM}`.** Раньше всегда использовался цвет атакующего, поэтому в случае `AttackerMessage`с жертвой
Имя было нарисовано в цветах команды нападающего. Теперь оно следует за именем, расположенным рядом с ним, и
`{ATTACKERTEAM}` / `{VICTIMTEAM}`были добавлены для обеспечения полного контроля.
- **Снова поступают сообщения о вспышках, связанных с ботами.** Раньше появление бота в любой из частей пары приводило к отключению звука
послание и для людей тоже.
- **`DurationDecimals` зафиксировано** в диапазоне 0–3. Такое значение `-1`раньше приводило к сбоям при каждой вспышке.
- Имена игроков проходят очистку перед добавлением в сообщение.
- Новые цветные жетоны: `{DARKRED}`, `{LIGHTRED}`, `{OLIVE}`, `{GOLD}`, `{SILVER}`, `{BLUEGREY}`,
`{LIGHTPURPLE}`, `{MAGENTA}`, `{LIGHTYELLOW}`, `{GRAY}`.
### 1.0.0
- Первый выпуск.
## Автор
**illusion @ CodeStrike**
## Лицензия
Все права защищены.