# Плъгин за разширени реклами
**Версия:** 1.0
**Автор:** illusion @ CodeStrike.STORE
**Име на плъгина:** Разширени реклами
## Описание
AdvertsNEW е плъгин за AMX Mod X, предназначен за сървъри на Counter-Strike, който показва персонализирани редуващи се реклами на играчите чрез съобщения в HUD и цветни съобщения в чата. Плъгинът поддържа няколко режима на показване, произволни цветове (HUD) и различни визуални ефекти, с които да се създават привличащи вниманието съобщения на сървъра.
## Характеристики
- ✅ **Ротация на рекламите**: Показване на няколко реклами последователно или в произволен ред
- ✅ **Реклами в HUD**: Показва реклами чрез цветни съобщения в HUD на екрана
- ✅ **Реклами в чата**: Показва реклами в чата (поддържа цветни етикети)
- ✅ **Команди в чата (тригери)**: Задайте ги в`key = message` INI и ги активирайте, като въведете ключа в чата
- ✅ **Случайни цветове (HUD)**: Всяка реклама в HUD се показва със случайно генерирани цветове
- ✅ **Настройваема позиция**: Конфигурирайте позицията по осите X и Y на съобщенията на HUD
- ✅ **Визуални ефекти**: Разнообразни ефекти за постепенно появяване и изчезване, както и режими на показване
- ✅ **Заместващи символи**: Поддръжка на и`%map%` `%servername%`(HUD + чат)
- ✅ **Многоредови съобщения на HUD**: Поддръжка за `%newline%`(само за HUD)
- ✅ **Презареждане на живо**: Презареждане на конфигурацията без рестартиране на сървъра
- ✅ **Автоматично създаване на конфигурация**: Автоматично създава конфигурация по подразбиране, ако такава липсва
## Инсталиране
1. **Компилиране на плъгина:**
```bash
amxxpc AdvertsNEW.sma
```
2. **Качване на файлове:**
- Поставете в`AdvertsNEW.amxx` `/addons/amxmodx/plugins/`
- Добави към`AdvertsNEW.amxx` `/addons/amxmodx/configs/plugins.ini`
3. **Конфигурация:**
- Плъгинът автоматично ще създаде `/addons/amxmodx/configs/adverts.ini`
- Редактирайте този файл, за да добавите свои реклами
## Конфигурационен файл
**Файл:** `/addons/amxmodx/configs/adverts.ini`
### Формат:
```ini
; Adverts Configuration File
; Lines starting with ; are comments and will be ignored
; Placeholders: %map% (current map), %servername% (hostname)
; Chat colors: !g = green, !t = team color, !n = normal
[HUD]
Welcome to %servername%!
Current map: %map%
Line 1%newline%Line 2 of same HUD advert
[CHAT]
!g[Info] !nWelcome to !t%servername%
!g[Map] !nCurrent map: !t%map%
discord = !g[Discord] !nJoin our Discord: !thttps://discord.gg/yourserver
```
### Заместващи символи и етикети:
- `%map%` - Заменено с актуалното име на картата
- `%servername%` - Заменено с името на сървъра (`hostname`cvar)
- `%newline%` - Вмъква прекъсване на реда в съобщението на HUD (само за HUD)
- `!g` / /`!t` `!n`- Цветни етикети в чата (само в чата)
- Редовете, започващи с или`;` , `/`се третират като коментари
### Поведение на INI (важно):
- Редовете под `[HUD]`се разглеждат като реклами в HUD.
- Под`[CHAT]`:
- Ред **без** `=`се третира като циклична реклама в чата.
- Редът **с** `key = message`се запаметява като тригер за команда в чата.
- Ключовата дума за задействане се счита за съвпадаща, ако се появи **някъде в съобщението** (поддържат се съобщения, състоящи се от няколко думи).
- `/key` и `!key`префиксите също се приемат.
- Ако играчът въведе **само** ключовата дума (например или`discord` `/discord`), съобщението на играча се скрива и се показва само отговорът на плъгина.
- Ако ключовата дума се появи в по-дълго съобщение (например `how to join discord server?`), съобщението на играча остава видимо и се показва и отговорът на приставката.
## CVars (променливи на конзолата)
| CVar | По подразбиране | Описание |
| ---------------------- | ------- | ---------------------------------------------- |
| `amx_adverts_enabled` | `1` | Активиране/деактивиране на рекламната система |
| `amx_adverts_interval` | `60.0` | Времеви интервал между рекламите (в секунди) |
| `amx_adverts_random` | `0` | Случаен ред (1) или последователен (0) |
| `amx_adverts_effect` | `2` | Тип на ефекта на съобщението на HUD (0–3) |
| `amx_adverts_holdtime` | `5.0` | Колко дълго да се показва всяка реклама |
| `amx_adverts_fadein` | `0.1` | Продължителност на постепенното появяване (секунди) |
| `amx_adverts_fadeout` | `0.2` | Продължителност на затихването (секунди) |
| `amx_adverts_x` | `-1.0` | Позиция по ос Х (-1,0 = център) |
| `amx_adverts_y` | `0.2` | Позиция по ос Y (0,0 = най-отгоре, 1,0 = най-отдолу) |
### CVAR-и за реклами в чата:
| CVar | По подразбиране | Описание |
| --------------------------- | ------- | ---------------------------------------------- |
| `amx_adverts_chat_enabled` | `1` | Активиране/деактивиране на периодичните реклами в чата |
| `amx_adverts_chat_interval` | `60.0` | Времеви интервал между рекламите в чата (в секунди) |
| `amx_adverts_chat_random` | `0` | Случаен ред (1) или последователен (0) |
### CVAR-и за команди в чата:
| CVar | По подразбиране | Описание |
| ------------------------------ | ------- | ----------------------------------------------- |
| `amx_adverts_chatcmd_enabled` | `1` | Активиране/деактивиране на тригерите за команди в чата |
| `amx_adverts_chatcmd_to_all` | `0` | 0 = показва се само на изпращача, 1 = показва се на всички |
| `amx_adverts_chatcmd_cooldown` | `5.0` | Време за презареждане (в секунди) на играч за задействане на чата |
### Видове ефекти:
- `0` - Няма ефект
- `1` - Постепенно засилване/отслабване на звука
- `2` - Светкавичен/стробоскопичен ефект
- `3` - Ефект на изписване
## Административни команди
| Команда | Ниво на достъп | Описание |
| ------------------- | ------------ | --------------------------------------------------- |
| `amx_reloadadverts` | `ADMIN_CVAR` | Презарежда конфигурацията на рекламите без да се рестартира |
## Примери за употреба
### Основна конфигурация:
```ini
[HUD]
Welcome to %servername%!
Visit our website: www.yoursite.com
Current map: %map%
Join our Discord: discord.gg/yourserver
Type !shop to open the store
[CHAT]
!g[Info] !nWelcome to !t%servername%
discord = !g[Discord] !nJoin our Discord: !thttps://discord.gg/yourserver
```
### Реклама с няколко реда:
```ini
[HUD]
=== SERVER RULES ===%newline%1. No cheating%newline%2. No spam%newline%3. Have fun!
```
### Динамично съдържание:
```ini
You are playing on: %map%
Server time: Check !time command
```
## Технически подробности
- **Зависимости:** amxmodx, amxmisc, reapi, reapi_stocks
- **Максимален брой реклами:** 32
- **Максимална дължина на съобщението:** 192 символа
- **Съхранение на базата на масиви:** Използва динамични масиви за ефективно управление на паметта
- **Цветова система:** Случайни RGB стойности, генерирани за всеки дисплей
## Съвети за конфигуриране
1. **Настройки на позицията:**
- X: центриране`-1.0` по хоризонтала, `0.0`= вляво, `1.0`= вдясно
- Y: `0.0`= горната част на екрана, `1.0`= долната част на екрана
2. **Препоръки относно времето:**
- Интервал: 30–120 секунди (избягвайте спама)
- Време на задържане: 3–8 секунди (време, през което надписът е четлив)
- Време за избледняване: 0,1–0,5 секунди (плавни преходи)
3. **Правила за съобщенията:**
- Съобщенията трябва да са кратки и ясни
- Използвайте го умерено`%newline%`, за да избегнете претрупването
- Изпробвайте различни видове ефекти, за да постигнете най-добра видимост
## Отстраняване на неизправности
**Рекламите не се показват ли?**
- Опцията „Проверка“ `amx_adverts_enabled`е зададена на `1`
- Опцията „Проверка“ `amx_adverts_chat_enabled`е активирана `1`за рекламите в чата
- Проверете дали конфигурационният файл съществува и дали съдържанието му е валидно
- Уверете се, че в конфигурацията има поне един ред, който не е коментар
**Проблеми с позицията?**
- Настройте и`amx_adverts_x` стойностите`amx_adverts_y`
- Тествайте с различни разделителни способности на екрана
**Притеснения относно производителността?**
- Увеличете интервала, ако сървърът работи с закъснение
- Намалете броя на рекламите, ако потреблението на памет е високо
## Поддръжка
При проблеми или въпроси:
- Автор: illusion @ CodeStrike.STORE
- Проверете документацията на AMX Mod X за ограниченията относно съобщенията в HUD
- Проверете инсталацията на ReAPI за правилното му функциониране
---
**Забележка:** Този плъгин изисква ReAPI за разширени функции на съобщенията в HUD. Уверете се, че ReAPI е правилно инсталиран и конфигуриран на вашия Counter-Strike сървър.