логотип

[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]
аватарка
Сообщений: 70
Реакции: 27
Клиенты
Фиксы и доработки от меня((: 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-контакт не был предоставлен в течение заданного времени.

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


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

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

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

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

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


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

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

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

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

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

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

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

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


Путь для установки:
  1. 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
аватарка
Сообщений: 70
Реакции: 27
Клиенты
Обновил, ссылку на фикс исправил краш при снятии с проверки игрока.

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

  2. {

  3. if (player == null || !player.IsValid || player.AuthorizedSteamID == null)

  4. {

  5. Logger.LogError("Invalid player or admin context in UncheckPlayer.");

  6. return;

  7. }


  8. var playerSteamId64 = player.AuthorizedSteamID.SteamId64;



  9. if (!_remainingTimes.ContainsKey(playerSteamId64) && !_playersUnderCheck.Contains(playerSteamId64))

  10. {

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

  12. return;

  13. }


  14. try

  15. {


  16. if (_activeOverlays.TryGetValue(playerSteamId64, out var particleSystem) && particleSystem.IsValid)

  17. {

  18. particleSystem.Destroy();

  19. _activeOverlays.Remove(playerSteamId64);

  20. }



  21. if (_playerTimers.TryGetValue(playerSteamId64, out var timer))

  22. {

  23. timer.Kill();

  24. _playerTimers.Remove(playerSteamId64);

  25. }



  26. _playersUnderCheck.Remove(playerSteamId64);

  27. _remainingTimes.Remove(playerSteamId64);

  28. _webhookInfo.Remove(playerSteamId64);

  29. _adminCheckMessages.Remove(playerSteamId64);

  30. _uncheckMessages.Remove(playerSteamId64);



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



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



  33. if (Config.EnableDiscordLogging && !string.IsNullOrEmpty(Config.DiscordWebhookUrl))

  34. {

  35. var discordContact = _webhookInfo.TryGetValue(playerSteamId64, out var webhookData) &&

  36. !string.IsNullOrEmpty(webhookData.DiscordContact)

  37. ? webhookData.DiscordContact

  38. : Localizer["discord_contact_not_provided"].Value;


  39. _ = SendDiscordCheckCompletedNotification(

  40. Config.DiscordWebhookUrl,

  41. player.PlayerName,

  42. admin.PlayerName,

  43. playerSteamId64.ToString(),

  44. admin.AuthorizedSteamID?.SteamId64.ToString() ?? "Unknown"

  45. );

  46. }

  47. }

  48. catch (Exception ex)

  49. {

  50. Logger.LogError($"Error while unchecking player {player.PlayerName}: {ex.Message}");

  51. }

  52. }

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

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

android

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