логотип

[CS2]lksAdmin Check Cheats

Плагин позволяет админу вызвать на проверку.
09.01.2025 в 11:48
2
статус Keks423 09.01.2025 в 11:48#1
Фиксы и доработки от меня((: by Keks423 \r\nСоздатель плагина: ABKAM2023\r\n\r\n[IksAdmin] Check Cheats - плагин позволяет администратору вызвать подозрительного игрока на проверку при обнаружении сомнительной активности.\r\n\r\nПолная инструкция по установке, настройке и использованию плагина доступна на GitHub: https://github.com/ABKAM2023/IksAdmin_CheckCheats\r\n\r\nЗависимости: 1)IksAdmin 2)CSSharp 3)MenuManager\r\n\r\n1)Ссылки на зависимости: 1)https://github.com/Iksix/Iks_Admin/releases 2)https://github.com/roflmuffin/CounterStrikeSharp\r\n3)https://github.com/NickFox007/MenuManagerCS2/releases\r\n\r\nСсылка на фикс: Google Drive: https://drive.google.com/file/d/1SKXUQ8HuSjgZYl9qjRO-OjZ7SWDBEuF7\r\n\r\nТак как создатель плагина не обновил его для CS2, я решил самостоятельно доработать и адаптировать плагин для новой версии игры и под новый API CounterStrikeSharp. Основные изменения включают:\r\n\r\nИсправление бана после истечения времени проверки:\r\n\r\nДобавлена корректная логика бана игрока, если Discord-контакт не был предоставлен в течение заданного времени.\r\n\r\nУлучшена обработка бана через команду [code]css_ban.[/code]\r\n\r\nИсправление бана при дисконнекте игрока:\r\n\r\nИгроки, отключившиеся во время проверки, теперь корректно получают бан через таймер.\r\n\r\nУлучшение работы с overlay (частицами):\r\n\r\nИсправлено создание и удаление частиц для игроков под проверкой.\r\n\r\nДобавлено корректное удаление частиц через [code]AcceptInput(\"Kill\")[/code]\r\n\r\nОчистка данных после завершения проверки:\r\n\r\nИсправлена очистка данных игрока из всех словарей после завершения проверки или бана.\r\n\r\nЛогирование ошибок:\r\n\r\nДобавлено логирование для упрощения отладки и поиска проблем.\r\n\r\nИсправлены методы работы с игроками и сущностями, чтобы они соответствовали API CS2.\r\n\r\nДобавлена поддержка новых функций CS2, таких как обновлённая система частиц и улучшенное логирование.\r\n\r\nИсходный код: Находится в папке с исходниками.\r\n\r\nСкомпилированный плагин: Лежит в папке скомпилированный плагин или по пути [code]bin/Debug/net8.0[/code]\r\n\r\nПуть для установки: [code]game/csgo/addons/counterstrikesharp/plugins/IksAdmin_CheckCheats[/code]
аватарка
Сообщений: 59
Реакции: 25
Клиенты
Фиксы и доработки от меня((: by Keks423
Создатель плагина: ABKAM2023

[IksAdmin] Check Cheats - плагин позволяет администратору вызвать подозрительного игрока на проверку при обнаружении сомнительной активности.

Полная инструкция по установке, настройке и использованию плагина доступна на GitHub: https://github.com/ABKAM2023/IksAdmin_CheckCheats

Зависимости: 1)IksAdmin 2)CSSharp 3)MenuManager

1)Ссылки на зависимости: 1)https://github.com/Iksix/Iks_Admin/releases 2)https://github.com/roflmuffin/CounterStrikeSharp
3)https://github.com/NickFox007/MenuManagerCS2/releases

Ссылка на фикс: Google Drive: https://drive.google.com/file/d/1SKXUQ8HuSjgZYl9qjRO-OjZ7SWDBEuF7

Так как создатель плагина не обновил его для CS2, я решил самостоятельно доработать и адаптировать плагин для новой версии игры и под новый API CounterStrikeSharp. Основные изменения включают:

Исправление бана после истечения времени проверки:

Добавлена корректная логика бана игрока, если Discord-контакт не был предоставлен в течение заданного времени.

Улучшена обработка бана через команду
css_ban.


Исправление бана при дисконнекте игрока:

Игроки, отключившиеся во время проверки, теперь корректно получают бан через таймер.

Улучшение работы с overlay (частицами):

Исправлено создание и удаление частиц для игроков под проверкой.

Добавлено корректное удаление частиц через
AcceptInput("Kill")


Очистка данных после завершения проверки:

Исправлена очистка данных игрока из всех словарей после завершения проверки или бана.

Логирование ошибок:

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

Исправлены методы работы с игроками и сущностями, чтобы они соответствовали API CS2.

Добавлена поддержка новых функций CS2, таких как обновлённая система частиц и улучшенное логирование.

Исходный код: Находится в папке с исходниками.

Скомпилированный плагин: Лежит в папке скомпилированный плагин или по пути
bin/Debug/net8.0


Путь для установки:
game/csgo/addons/counterstrikesharp/plugins/IksAdmin_CheckCheats
Ответить Цитата 1
статус Keks423 10.01.2025 в 17:22#2
Обновил, ссылку на фикс исправил краш при снятии с проверки игрока.\r\n\r\nИсправленный код:\r\n[code]private void UncheckPlayer(CCSPlayerController player, CCSPlayerController admin)\r\n{\r\n if (player == null || !player.IsValid || player.AuthorizedSteamID == null)\r\n {\r\n Logger.LogError(\"Invalid player or admin context in UncheckPlayer.\");\r\n return;\r\n }\r\n\r\n var playerSteamId64 = player.AuthorizedSteamID.SteamId64;\r\n\r\n\r\n if (!_remainingTimes.ContainsKey(playerSteamId64) && !_playersUnderCheck.Contains(playerSteamId64))\r\n {\r\n admin.PrintToChat(_chatPrefix + Localizer[\"error_no_active_check_for_admin\", player.PlayerName]);\r\n return;\r\n }\r\n\r\n try\r\n {\r\n\r\n if (_activeOverlays.TryGetValue(playerSteamId64, out var particleSystem) && particleSystem.IsValid)\r\n {\r\n particleSystem.Destroy();\r\n _activeOverlays.Remove(playerSteamId64);\r\n }\r\n\r\n\r\n if (_playerTimers.TryGetValue(playerSteamId64, out var timer))\r\n {\r\n timer.Kill();\r\n _playerTimers.Remove(playerSteamId64);\r\n }\r\n\r\n\r\n _playersUnderCheck.Remove(playerSteamId64);\r\n _remainingTimes.Remove(playerSteamId64);\r\n _webhookInfo.Remove(playerSteamId64);\r\n _adminCheckMessages.Remove(playerSteamId64);\r\n _uncheckMessages.Remove(playerSteamId64);\r\n\r\n\r\n Logger.LogInformation($\"Player {playerSteamId64} successfully unchecked.\");\r\n\r\n\r\n admin.PrintToChat(_chatPrefix + Localizer[\"uncheck\", player.PlayerName]);\r\n\r\n \r\n if (Config.EnableDiscordLogging && !string.IsNullOrEmpty(Config.DiscordWebhookUrl))\r\n {\r\n var discordContact = _webhookInfo.TryGetValue(playerSteamId64, out var webhookData) &&\r\n !string.IsNullOrEmpty(webhookData.DiscordContact)\r\n ? webhookData.DiscordContact\r\n : Localizer[\"discord_contact_not_provided\"].Value;\r\n\r\n _ = SendDiscordCheckCompletedNotification(\r\n Config.DiscordWebhookUrl,\r\n player.PlayerName,\r\n admin.PlayerName,\r\n playerSteamId64.ToString(),\r\n admin.AuthorizedSteamID?.SteamId64.ToString() ?? \"Unknown\"\r\n );\r\n }\r\n }\r\n catch (Exception ex)\r\n {\r\n Logger.LogError($\"Error while unchecking player {player.PlayerName}: {ex.Message}\");\r\n }\r\n}[/code]\r\n
аватарка
Сообщений: 59
Реакции: 25
Клиенты
Обновил, ссылку на фикс исправил краш при снятии с проверки игрока.

Исправленный код:
private void UncheckPlayer(CCSPlayerController player, CCSPlayerController admin)

{
if (player == null || !player.IsValid || player.AuthorizedSteamID == null)
{
Logger.LogError("Invalid player or admin context in UncheckPlayer.");
return;
}

var playerSteamId64 = player.AuthorizedSteamID.SteamId64;


if (!_remainingTimes.ContainsKey(playerSteamId64) && !_playersUnderCheck.Contains(playerSteamId64))
{
admin.PrintToChat(_chatPrefix + Localizer["error_no_active_check_for_admin", player.PlayerName]);
return;
}

try
{

if (_activeOverlays.TryGetValue(playerSteamId64, out var particleSystem) && particleSystem.IsValid)
{
particleSystem.Destroy();
_activeOverlays.Remove(playerSteamId64);
}


if (_playerTimers.TryGetValue(playerSteamId64, out var timer))
{
timer.Kill();
_playerTimers.Remove(playerSteamId64);
}


_playersUnderCheck.Remove(playerSteamId64);
_remainingTimes.Remove(playerSteamId64);
_webhookInfo.Remove(playerSteamId64);
_adminCheckMessages.Remove(playerSteamId64);
_uncheckMessages.Remove(playerSteamId64);


Logger.LogInformation($"Player {playerSteamId64} successfully unchecked.");


admin.PrintToChat(_chatPrefix + Localizer["uncheck", player.PlayerName]);


if (Config.EnableDiscordLogging && !string.IsNullOrEmpty(Config.DiscordWebhookUrl))
{
var discordContact = _webhookInfo.TryGetValue(playerSteamId64, out var webhookData) &&
!string.IsNullOrEmpty(webhookData.DiscordContact)
? webhookData.DiscordContact
: Localizer["discord_contact_not_provided"].Value;

_ = SendDiscordCheckCompletedNotification(
Config.DiscordWebhookUrl,
player.PlayerName,
admin.PlayerName,
playerSteamId64.ToString(),
admin.AuthorizedSteamID?.SteamId64.ToString() ?? "Unknown"
);
}
}
catch (Exception ex)
{
Logger.LogError($"Error while unchecking player {player.PlayerName}: {ex.Message}");
}
}

Ответить Цитата
Информация
Войдите или зарегистрируйтесь для общения на форуме
Перетащите файлы или нажмите
Максимально 5 файлов. Максимальный размер 20 Мб.

Игровые сервера Дополнительные услуги Инфо Сообщество

android

application chrometelegramapiCSHOST.COM.UA 2012-2025 Хостинг игровых серверов