CSGO NEW CRASH FIX

Alley

Участник
Сообщения
33
Реакции
36
Операционная система
Linux
Текст ошибки
csgo/addons/sourcemod/logs/

Как работает плагин​


Описание: Плагин предназначен для предотвращения сбоев в игре Counter-Strike: Global Offensive (CS


), которые могут возникать из-за обработки пользовательского сообщения SendPlayerItemFound.


Основные функции:

  1. Привязка сообщения: При запуске плагина он привязывается к пользовательскому сообщению SendPlayerItemFound. Это сообщение может вызвать сбои, если оно содержит неподдерживаемые или ошибочные данные.
  2. Обработка сообщения: Когда плагин получает сообщение SendPlayerItemFound, он блокирует его, возвращая Plugin_Handled. Это предотвращает дальнейшую обработку сообщения и помогает избежать сбоев в игре.
  3. Удаление привязки: При завершении работы плагина привязка к сообщению SendPlayerItemFound не удаляется, что может привести к утечкам ресурсов.
Технические детали:

  • Получение идентификатора сообщения: Плагин использует функцию GetUserMessageId для получения идентификатора сообщения SendPlayerItemFound, что обеспечивает корректное управление сообщениями.
  • Блокировка сообщения: Функция ItemFoundMsg возвращает Plugin_Handled, блокируя обработку сообщения и предотвращая возможные сбои.
Преимущества:

  • Стабильность: Плагин предотвращает сбои, связанные с обработкой сообщения SendPlayerItemFound.
  • Корректное получение идентификатора сообщения: Использование функции GetUserMessageId обеспечивает правильное управление идентификаторами сообщений.

Установка​

  1. Разместите плагин:
    • Переместите файл fix_crash.smx в директорию csgo/addons/sourcemod/plugins.
    • csgo/addons/sourcemod/scripting
  2. Перезагрузите сервер:
    • Перезапустите сервер или используйте команду sm plugins reload fix_crash.smx в консоли сервера для загрузки плагина.
Теперь плагин будет активен на вашем сервере


и начнёт блокировать сообщения SendPlayerItemFound, что поможет предотвратить сбои, связанные с этими сообщениями.
Исходный код плагина:
C-подобный:
#include <sourcemod>

public Plugin:myinfo =
{
    name = "Item Crash Fix",
    author = "Alley",
    description = "Fixes the crash related to unsupported inventory items",
    version = "1.0",
}

public OnPluginStart()
{
    HookUserMessage(GetUserMessageId("SendPlayerItemFound"), ItemFoundMsg, true);
}

public Action:ItemFoundMsg(UserMsg:msg_id, Handle:pb, const players[], playersNum, bool:reliable, bool:init)
{
    return Plugin_Handled;
}

Другие мои фиксы против крашей.
 

Вложения

  • fix_crash.smx
    2.9 КБ · Просмотры: 55
  • fix_crash.sp
    436 байт · Просмотры: 40
Последнее редактирование:

Alley

Участник
Сообщения
33
Реакции
36
И в чем проблема закинуть в ресурсы, @Alley ?
Согласен тогда ещё не увидел тот раздел.
Кстати обновил плагин.

Корректное получение идентификатора сообщения:

Заменен фиксированный идентификатор сообщения на получение через GetUserMessageId.
Упрощение обработки сообщений:

Прямая блокировка сообщения без проверки идентификатора.
Добавление удаления привязки при выключении плагина:

Обеспечено снятие привязки сообщений для предотвращения утечек ресурсов.

Обновлено получение идентификатора сообщения.
Упрощена логика обработки сообщений.
Добавлено удаление привязки сообщений при завершении работы плагина.
 
Сверху Снизу