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