CSGO CRASH FIXПоявился новый способ вызова сбоя движка. |
30.06.2024 в 15:44 7 |
Keks423 | 30.06.2024 в 15:44#1 | ||
Сообщений: 51
Реакции: 20
Клиенты
|
Плагин для CS:GO: Исправление ошибки NetMsg_StringCmd
Этот плагин предназначен для исправления ошибки в CS:GO
которая связана с обработкой сетевых сообщений и может вызывать сбои в игре. Плагин перехватывает вызов функции ProcessPacketHeader, чтобы предотвратить ошибки, вызванные слишком большими сетевыми пакетами.
Как это работает
1. Структура плагина
Плагин написан на SourceMod и использует динамический детуринг (перехват функций) для изменения поведения игры. В плагине заданы основные параметры, создается объект для работы с детурингом и производится настройка перехвата функций.
2. Загрузка данных и настройка детуринга
В функции OnPluginStart:
Загрузка файла данных: Плагин ищет и загружает файл GoldLeague_netmsg_crash_fix.txt, который содержит сигнатуры функций и другую необходимую информацию для работы детуринга.
Создание и активация детуринга: Используется объект DynamicDetour для перехвата функции ProcessPacketHeader. Если что-то идет не так (например, файл не найден или не удалось создать детуринг), плагин завершает работу с ошибкой.
3. Перехват функции
Функция ProcessPacketHeader_Pre выполняется до вызова оригинальной функции ProcessPacketHeader:
Получение адреса пакета: Проверяется размер пакета, переданный в функцию. Если размер превышает 2000 байт, функция предотвращает дальнейшее выполнение оригинальной функции, устанавливая значение hReturn.Value в -1 и возвращая MRES_Supercede. Если размер в пределах допустимого, оригинальная функция выполняется как обычно (возвращается MRES_Ignored).
4. Завершение работы
В функции OnPluginEnd:
Отключение перехвата: При завершении работы плагина отключается перехват функции ProcessPacketHeader, если он был активирован.
Примечания
Файл данных: Файл GoldLeague_netmsg_crash_fix.txt должен содержать правильные сигнатуры функций для работы плагина. Убедитесь, что этот файл находится в папке gamedata вашего сервера.
Сигнатуры функций: В плагине используется сигнатура для функции ProcessPacketHeader, которая определяет, как найти эту функцию в памяти игры.
Использование
Просто загрузите плагин на сервер CS:GO
и убедитесь, что файл GoldLeague_netmsg_crash_fix.txt находится в правильной папке. Плагин автоматически перехватит функцию и будет предотвращать ошибки, связанные с большими сетевыми пакетами.
Заключение
Этот плагин поможет избежать сбоев в CS:GO
связанных с ошибками в обработке сетевых сообщений. Он прост в установке и использовании, и эффективно решает проблему с ошибками, вызванными переполнением сетевых пакетов.
Руководство по Установке Плагина
1. Установите SourceMod
https://www.sourcemod.net/downloads.php
Скачайте и установите SourceMod на ваш сервер CS
если он еще не установлен.
2. Установите SDKHooks и DHooks
https://sourceserver.info/downloads/Plugins/SourceMod/Extensions/sdkhooks/
https://github.com/peace-maker/DHooks2
Скачайте и установите SDKHooks и DHooks в соответствии с инструкциями на их страницах.
3. Установите плагин
Поместите файл плагина (GoldLeague_netmsg_crash_fix.smx) в папку addons/sourcemod/plugins на вашем сервере.
Поместите файл плагина (GoldLeague_netmsg_crash_fix.sp) в папку addons/sourcemod/scriptings на вашем сервере.
4. Установите файл данных
Создайте папку gamedata в addons/sourcemod/, если она еще не существует.
Поместите файл данных (GoldLeague_netmsg_crash_fix.txt) в папку addons/sourcemod/gamedata.
5. Перезапустите сервер
Перезапустите ваш сервер CS
чтобы плагин и его зависимости начали работать.
|
||
Ответить Цитата 1 |
root | 01.07.2024 в 00:05#2 |
Сообщений: 3770
Реакции: 1651
Администрация
|
Могу сделать установку плагинов с форума в 1 клик
|
Ответить Цитата 1 |
Keks423 | 01.07.2024 в 01:29#3 |
Сообщений: 51
Реакции: 20
Клиенты
|
Цитата root
Могу сделать установку плагинов с форума в 1 клик
Добавьте весьма нужный плагин от крашей. |
Ответить Цитата |
TimBalO | 01.07.2024 в 09:20#4 |
Сообщений: 219
Реакции: 65
Клиенты
|
Keks423, Почему ты не сделаешь так - если клиент будет отправлять слишком много запросов его будет кикать, после чего это все будет логироватся в txt файл)
|
Ответить Цитата |
Keks423 | 01.07.2024 в 18:46#5 |
Сообщений: 51
Реакции: 20
Клиенты
|
TimBalO, Уточни какие именно запросы должно логировать в txt. Данный плагин связан; с новыми предметами которые крашат ксго сервер. Если ты про лог SendPlayerItemFound (ID = 63), плагин его фильтрует и блочит на сервере чтобы предотвратить краш сервера.
|
Ответить Цитата |
Keks423 | 02.09.2024 в 13:25#6 |
Сообщений: 51
Реакции: 20
Клиенты
|
Обновил плагин.
Корректное получение идентификатора сообщения:
Заменен фиксированный идентификатор сообщения на получение через GetUserMessageId.
Упрощение обработки сообщений:
Прямая блокировка сообщения без проверки идентификатора.
Добавление удаления привязки при выключении плагина:
Обеспечено снятие привязки сообщений для предотвращения утечек ресурсов.
Обновлено получение идентификатора сообщения.
Упрощена логика обработки сообщений.
Добавлено удаление привязки сообщений при завершении работы плагина.
|
Ответить Цитата |
Keks423 | 15.09.2024 в 20:46#7 |
Сообщений: 51
Реакции: 20
Клиенты
|
Обновление устраняет проблему с крашами, связанную с сетевым сообщением NetMsg_StringCmd, используя динамическое перехватывание (детуринг) для модификации обработки сетевых пакетов.
Функции:
Динамический Детуринг: Использует динамическое перехватывание для изменения обработки сетевых пакетов. Это помогает предотвратить краши, возникающие из-за некорректных или неподдерживаемых пакетов.
Интеграция с Геймдатой: Оперирует данными из файла геймдаты для получения необходимых сигнатур для детуринга. Это обеспечивает адаптацию плагина к различным версиям игры или модификациям.
Предотвращение Краша: Включает проверку размеров пакетов и может игнорировать пакеты, которые превышают заданный размер, предотвращая потенциальные краши.
Основные моменты реализации:
Загрузка Сигнатур: Плагин загружает необходимые сигнатуры из указанного файла геймдаты. Если файл отсутствует или не удается загрузить, плагин уведомит пользователя и не запустится.
Настройка Динамического Детуринга: Создает и включает динамическое перехватывание для функции ProcessPacketHeader. Это перехватывание обрабатывает пакеты до их обработки оригинальной функцией.
Предварительная Обработка: Включает предварительный перехват, который проверяет размеры пакетов и игнорирует пакеты, превышающие заданный порог. Это помогает избежать крашей, вызванных чрезмерно большими пакетами.
Управление Ресурсами: Обеспечивает правильную очистку, отключая детуринг при выгрузке плагина.
Сравнение с предыдущей версией:
Предыдущий Плагин ("Item Crash Fix"): Сосредоточен на обработке неподдерживаемых сообщений инвентаря для предотвращения крашей, но не использует динамический детуринг или геймдату.
Новый Плагин ("GoldLeague.fun"): Вводит более сложные методы, такие как динамический детуринг и проверка размеров пакетов, что обеспечивает более надежное предотвращение крашей по сравнению с предыдущей версией.
Это обновление представляет собой значительное улучшение в обработке крашей, применяя более продвинутые методы для решения более широкого спектра потенциальных проблем.
|
Ответить Цитата |