Плагін для Counter-Strike 2 (CS2) на базі CounterStrikeSharp, який нараховує бонусні гроші гравцям за провідне час на сервері.
Можливості
Автоматичне нарахування бонусів гравцям за час гри на сервері
Інтеграція з базою даних MySQL для зберігання балансу гравців
Підтримка мультиязичності (русский, английский, украинский)
Налаштовуваний інтервал і сума бонуса
Логування всіх операцій
Виключення ботів і HLTV із системи бонусів
Заморозка часу при виході з сервера
Заморозка часу при нахождении в глядачах
Окно повернення 2 хвилини — гравець може повернутися і зберегти накопичений час
Перевірка реєстрації в ЛК — гравці без облікового запису не отримують нагороду
Вимоги
Counter-Strike 2
CounterStrikeSharp
.NET 8.0
Сервер MySQL
Установка
Скопіюйте папку
GameTimeBonusв директорію:csgo/addons/counterstrikesharp/plugins/Скопіюйте папку
langз файлами локалізації в:csgo/addons/counterstrikesharp/plugins/GameTimeBonus/lang/Створіть підключення до бази даних у конфігураційному файлі.
Перезапустіть сервер або завантажте плагін через CounterStrikeSharp.
Конфігурація
При першому запуску плагін автоматично створює конфігурації файлу GameTimeBonus.jsonв директорії:
csgo/addons/counterstrikesharp/configs/plugins/GameTimeBonus/
Параметры конфигурации
{
"Version": 1,
"Database": {
"Host": "localhost",
"Port": 3306,
"Username": "root",
"Password": "",
"Name": "new"
},
"Settings": {
"BonusIntervalSeconds": 600,
"BonusAmount": 1,
"EnableLogging": true,
"Language": "ru",
"ReturnWindowSeconds": 120
}
}Параметр | Опис | Значення за умовчанням |
|---|---|---|
| Інтервал нарахування бонуса в секундах | 600 |
| Сума бонусів | 1 |
| Включити логування | правда |
| Мова (ru, en, uk) | ру |
| Окно повернення в секундах (2 хвилини) | 120 |
Як працює система нарахування
Таймер накопичення часу
Кожну секунду глобальне час гравця збільшується
Якщо прапор активності
false— час не накапливаетсяКоли накопичене час досягає
BonusIntervalSeconds— видається нагорода і счётчик сбрасывается
Позначити активності ( IsActive)
Прапор активності встановлюється у falseвипадках:
Ігрок вийшов з сервера
Ігрок перешёл в спостерігачі (глядачі)
При поверненні на сервер:
Якщо пройшло менше 2 хвилин — накопичений час зберігається
Якщо пройшло більше 2 хвилин — збирається накопичене час
Перевірка реєстрації в ЛК
Перед видачею нагород плагін перевіряє наявність гравця в базі даних особистого кабінету:
Якщо гравець не знайдено в таблиці
lk— нагорода не видаєтьсяЯкщо гравець знайдений — нагорода видається стандартним способом
База даних
Плагін використовує таблицю lkнаступної структури:
CREATE TABLE IF NOT EXISTS lk (
id INT AUTO_INCREMENT PRIMARY KEY,
auth VARCHAR(64) NOT NULL,
cash DECIMAL(10, 2) DEFAULT 0,
UNIQUE KEY auth (auth)
);auth- SteamID гравця у форматі STEAM_1:0:XXXXXcash- баланс гравця
Локалізація
Плагін підтримує такі мови:
Російська (ru)
Англійська (en)
Український (UK)
Файли локалізації
lang/ru.json- Російськаlang/en.json- Англійськаlang/uk.json- Український
Налаштування повідомлень
Змініть значення BonusMessageу відповідному файлі для налаштування повідомлень про бонус:
{
"BonusMessage": "[Бонус] Вам начислено {amount} руб."
}Де {amount}буде замінено на суму бонуса.
Логіровка
Логи зберігаються у файлі:
csgo/addons/counterstrikesharp/logs/GameTimeBonus.log
Логи містять інформацію про:
Підключенні до бази даних
Підключенні та відключенні гравців
Заморозке/разморозке времени
Начислении бонусов
Пропуск гравців (не зареєстрованих в ЛК)
Ошибках
Компіляція
Для компіляції плагіна виконайте:
cd GameTimeBonus
compile.batАбо зручну:
dotnet publish -c Release -o ./compile/addons/counterstrikesharp/plugins/GameTimeBonus
Рекомендовані коментарі
Приєднуйтесь до обговорення
Ви можете написати зараз та зареєструватися пізніше. Якщо у вас є обліковий запис, авторизуйтесь, щоб опублікувати від імені свого облікового запису.
Примітка: Ваш пост буде перевірено модератором, перш ніж стане видимим.