[CS2]lksAdmin Check CheatsПлагин позволяет админу вызвать на проверку. |
09.01.2025 в 11:48 2 |
Keks423 | 09.01.2025 в 11:48#1 |
Сообщений: 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 |
Сообщений: 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}"); } } |
Ответить Цитата |