![]() |
CSGO CRASH FIXПоявился новый способ вызова сбоя движка. |
30.06.2024 в 15:44 7 |
Keks423 | 30.06.2024 в 15:44#1 | ||
![]() Сообщений: 73
Реакции: 28
Клиенты
|
Плагин для 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 |
![]() |
01.07.2024 в 00:05#2 |
![]() Сообщений: 3861
Реакции: 1735
Администрация
|
Могу сделать установку плагинов с форума в 1 клик
|
Ответить Цитата 1 |
Keks423 | 01.07.2024 в 01:29#3 |
![]() Сообщений: 73
Реакции: 28
Клиенты
|
Цитата root
Могу сделать установку плагинов с форума в 1 клик
Добавьте весьма нужный плагин от крашей. |
Ответить Цитата |
TimBalO | 01.07.2024 в 09:20#4 |
![]() Сообщений: 231
Реакции: 79
Клиенты
|
Keks423, Почему ты не сделаешь так - если клиент будет отправлять слишком много запросов его будет кикать, после чего это все будет логироватся в txt файл)
|
Ответить Цитата |
Keks423 | 01.07.2024 в 18:46#5 |
![]() Сообщений: 73
Реакции: 28
Клиенты
|
TimBalO, Уточни какие именно запросы должно логировать в txt. Данный плагин связан; с новыми предметами которые крашат ксго сервер. Если ты про лог SendPlayerItemFound (ID = 63), плагин его фильтрует и блочит на сервере чтобы предотвратить краш сервера.
|
Ответить Цитата |
Keks423 | 02.09.2024 в 13:25#6 |
![]() Сообщений: 73
Реакции: 28
Клиенты
|
Обновил плагин.
Корректное получение идентификатора сообщения: Заменен фиксированный идентификатор сообщения на получение через GetUserMessageId. Упрощение обработки сообщений: Прямая блокировка сообщения без проверки идентификатора. Добавление удаления привязки при выключении плагина: Обеспечено снятие привязки сообщений для предотвращения утечек ресурсов. Обновлено получение идентификатора сообщения. Упрощена логика обработки сообщений. Добавлено удаление привязки сообщений при завершении работы плагина. |
Ответить Цитата |
Keks423 | 15.09.2024 в 20:46#7 |
![]() Сообщений: 73
Реакции: 28
Клиенты
|
Обновление устраняет проблему с крашами, связанную с сетевым сообщением NetMsg_StringCmd, используя динамическое перехватывание (детуринг) для модификации обработки сетевых пакетов.
Функции: Динамический Детуринг: Использует динамическое перехватывание для изменения обработки сетевых пакетов. Это помогает предотвратить краши, возникающие из-за некорректных или неподдерживаемых пакетов. Интеграция с Геймдатой: Оперирует данными из файла геймдаты для получения необходимых сигнатур для детуринга. Это обеспечивает адаптацию плагина к различным версиям игры или модификациям. Предотвращение Краша: Включает проверку размеров пакетов и может игнорировать пакеты, которые превышают заданный размер, предотвращая потенциальные краши. Основные моменты реализации: Загрузка Сигнатур: Плагин загружает необходимые сигнатуры из указанного файла геймдаты. Если файл отсутствует или не удается загрузить, плагин уведомит пользователя и не запустится. Настройка Динамического Детуринга: Создает и включает динамическое перехватывание для функции ProcessPacketHeader. Это перехватывание обрабатывает пакеты до их обработки оригинальной функцией. Предварительная Обработка: Включает предварительный перехват, который проверяет размеры пакетов и игнорирует пакеты, превышающие заданный порог. Это помогает избежать крашей, вызванных чрезмерно большими пакетами. Управление Ресурсами: Обеспечивает правильную очистку, отключая детуринг при выгрузке плагина. Сравнение с предыдущей версией: Предыдущий Плагин ("Item Crash Fix"): Сосредоточен на обработке неподдерживаемых сообщений инвентаря для предотвращения крашей, но не использует динамический детуринг или геймдату. Новый Плагин ("GoldLeague.fun"): Вводит более сложные методы, такие как динамический детуринг и проверка размеров пакетов, что обеспечивает более надежное предотвращение крашей по сравнению с предыдущей версией. Это обновление представляет собой значительное улучшение в обработке крашей, применяя более продвинутые методы для решения более широкого спектра потенциальных проблем. |
Ответить Цитата |