Unreal Spawn Fixer — Решение проблем со спавнами на любых картах [TEST]

DENZEL519

Работаю через AI !
Сообщения
562
Реакции
443
Это порт плагина с кс 1.6 под Sourcemod.


Unreal Spawn Fixer - Исправление спавн-поинтов и Semiclip​


Описание​


Плагин исправляет проблемы со спавн-поинтами в Counter-Strike: Source и реализует систему semiclip (прохождение игроков одной команды друг через друга). Плагин автоматически определяет наличие других плагинов semiclip и интегрируется с ними, либо использует собственную реализацию. Дополнительно плагин предотвращает застревание игроков при спавне на одной точке, автоматически выталкивая их друг от друга в начале раунда.

Основные возможности​


Исправление спавн-поинтов
  • Автоматическая установка количества спавн-поинтов для CT на 32
  • Автоматическая установка количества спавн-поинтов для T на 32
  • Установка флага инициализации уровня (m_bLevelInitialized)
  • Применение настроек при загрузке карты и начале каждого раунда
  • Безопасная проверка существования свойств перед установкой (Prop_Data и Prop_Send)

Настройка иммунитета при респавне
  • Установка времени иммунитета при респавне (mp_respawn_immunitytime = 1.0)
  • Отключение принудительного снятия иммунитета (mp_respawn_immunity_force_unset = 0)
  • Отключение убийства при заполненном спавне (mp_kill_filled_spawn = 0)

Система Semiclip
  • Автоматическое обнаружение плагинов semiclip (resemiclip, team_semiclip)
  • Интеграция с существующими плагинами semiclip
  • Собственная реализация semiclip при отсутствии других плагинов
  • Игроки одной команды проходят друг через друга
  • Оптимизированная работа через PreThink/PostThink хуки
  • Использование collision groups для управления столкновениями

Выталкивание игроков при спавне
  • Автоматическое обнаружение игроков, заспавнившихся на одной точке
  • Выталкивание игроков друг от друга для предотвращения застревания
  • Работает только в начале раунда (настраиваемое время)
  • Настраиваемая минимальная дистанция для срабатывания
  • Настраиваемая сила выталкивания
  • Оптимизированная проверка с использованием таймеров

Автоматическая конфигурация
  • Автоматическое создание конфигурационного файла при первой загрузке
  • Все настройки доступны через ConVar
  • Изменение параметров без перезагрузки плагина
  • Файл конфигурации:
    C-подобный:
    cfg/sourcemod/unreal_spawn_fixer.cfg

Технические особенности​


  • Полная совместимость с Counter-Strike: Source
  • Безопасная проверка свойств перед установкой (HasEntProp)
  • Использование Prop_Data и Prop_Send для работы с игровыми правилами
  • Fallback механизм для поиска offset collision groups
  • Кэширование ConVar для оптимизации производительности
  • Оптимизированная работа с collision groups через offset
  • Автоматическое определение версии плагина в зависимости от найденных модулей
  • Версия: 1.0

Интеграция с другими плагинами​


ReSemiclip
  • Автоматическое обнаружение плагина resemiclip
  • Настройка параметров semiclip через команды сервера
  • Версия плагина отображается как "1.0_resemiclip"

Team Semiclip
  • Автоматическое обнаружение плагина team_semiclip
  • Настройка параметров через ConVar
  • Версия плагина отображается как "1.0_team_semiclip"

Собственная реализация
  • Активируется при отсутствии других плагинов semiclip
  • Использует SDKHooks для управления collision groups
  • Версия плагина отображается как "1.0_semiclip"

Как работает Semiclip​


Плагин использует систему collision groups для реализации semiclip:

  • COLLISION_GROUP_PLAYER (5) - нормальное состояние игрока
  • COLLISION_GROUP_DEBRIS_TRIGGER (2) - состояние без столкновений с игроками
  • В PreThink: игроки одной команды получают COLLISION_GROUP_DEBRIS_TRIGGER
  • В PostThink: collision group восстанавливается обратно в COLLISION_GROUP_PLAYER
  • Это позволяет игрокам одной команды проходить друг через друга

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


При спавне игроков плагин проверяет их позиции:

  • После спавна игрока запускается проверка через 0.1 секунды
  • Проверяется расстояние до других игроков, заспавнившихся недавно
  • Если расстояние меньше минимального (по умолчанию 50 единиц) - игроки выталкиваются
  • Выталкивание работает только в течение первых 5 секунд после начала раунда
  • Игроки разлетаются в противоположные стороны с настраиваемой силой
  • Используется изменение velocity для плавного выталкивания

Установка​


  1. Установите файл
    C-подобный:
    unreal_spawn_fixer.smx
    в папку
    C-подобный:
    addons/sourcemod/plugins/
  2. Убедитесь, что установлены необходимые зависимости:
    • sdktools - для работы с игровыми правилами
    • sdkhooks - для работы с semiclip (если используется собственная реализация)
    • cstrike - для работы с Counter-Strike
  3. Перезапустите сервер или выполните
    C-подобный:
    sm plugins reload unreal_spawn_fixer
  4. При первой загрузке автоматически создастся файл конфигурации
    C-подобный:
    cfg/sourcemod/unreal_spawn_fixer.cfg

Требования​


  • SourceMod 1.11 или выше
  • Counter-Strike: Source
  • Расширения: sdktools, sdkhooks, cstrike

Настройка​


Плагин автоматически создаёт конфигурационный файл
C-подобный:
cfg/sourcemod/unreal_spawn_fixer.cfg
при первой загрузке. Все параметры можно настроить через ConVar или отредактировав конфигурационный файл.

ConVar​


Основные ConVar:

C-подобный:
unreal_spawn_fixer
- версия плагина (только для чтения)

Версия автоматически определяется в зависимости от найденных модулей:
  • 1.0 - базовая версия
  • 1.0_resemiclip - при обнаружении resemiclip
  • 1.0_team_semiclip - при обнаружении team_semiclip
  • 1.0_semiclip - при использовании собственной реализации

Настройки выталкивания игроков:

C-подобный:
unreal_spawn_fixer_min_distance
- Минимальное расстояние между игроками при спавне для срабатывания выталкивания (по умолчанию: 50.0, диапазон: 10.0-200.0)

C-подобный:
unreal_spawn_fixer_push_force
- Сила выталкивания игроков при спавне на одной точке (по умолчанию: 300.0, диапазон: 50.0-1000.0)

C-подобный:
unreal_spawn_fixer_round_start_time
- Время в секундах после начала раунда, в течение которого работает выталкивание (по умолчанию: 5.0, диапазон: 1.0-30.0)

Пример конфигурационного файла:

C-подобный:
// This file was auto-generated by SourceMod
// ConVars for plugin "unreal_spawn_fixer.smx"

unreal_spawn_fixer_min_distance "50.0"
unreal_spawn_fixer_push_force "300.0"
unreal_spawn_fixer_round_start_time "5.0"

События​


Плагин обрабатывает следующие события:

  • round_start - начало раунда (применяет настройки спавн-поинтов, semiclip и инициализирует систему выталкивания)
  • player_spawn - спавн игрока (запускает проверку на перекрытие с другими игроками)
  • OnMapStart - загрузка карты (применяет настройки спавн-поинтов)

Производительность​


  • Кэширование ConVar при загрузке плагина
  • Использование offset для прямого доступа к collision groups
  • Оптимизированные проверки существования свойств
  • Проверка выталкивания только в начале раунда
  • Использование таймеров для асинхронной обработки
  • Минимальная нагрузка на сервер благодаря эффективным алгоритмам

Решенные проблемы​


  • Недостаточное количество спавн-поинтов на картах
  • Проблемы с респавном игроков
  • Столкновения игроков одной команды при спавне
  • Застревание игроков при спавне на одной точке
  • Несовместимость с другими плагинами semiclip
  • Проблемы с инициализацией уровня

Известные ограничения​


  • Работает только на Counter-Strike: Source
  • Требует наличия свойств m_iSpawnPointCount_CT и m_iSpawnPointCount_Terrorist в игровых правилах
  • Собственная реализация semiclip работает только для игроков одной команды
  • Выталкивание работает только в начале раунда (настраиваемое время)
  • Выталкивание не работает для ботов (IsFakeClient)

Авторы​


  • Оригинальный автор: karaulov (AMX Mod X версия)
  • Портирование на SourceMod: DENZEL519&AI

Версия​


1.0

Поддержка​


При возникновении проблем проверьте:
  • Установлены ли все необходимые расширения (sdktools, sdkhooks, cstrike)
  • Версию SourceMod (должна быть 1.11 или выше)
  • Логи ошибок в
    C-подобный:
    addons/sourcemod/logs/errors_*.log
  • Совместимость с другими плагинами semiclip
  • Настройки в конфигурационном файле
    C-подобный:
    cfg/sourcemod/unreal_spawn_fixer.cfg

Changelog​


Версия 1.0
  • Портирование с AMX Mod X на SourceMod 1.11
  • Исправление спавн-поинтов для Counter-Strike: Source
  • Добавлено выталкивание игроков при спавне на одной точке
  • Автоматическое создание конфигурационного файла
  • Настраиваемые параметры через ConVar
  • Оптимизация производительности и совместимости
 

Вложения

  • unreal_spawn_fixer.zip
    12.1 КБ · Просмотры: 6

Grey83

не пишу плагины с весны 2022
Сообщения
8,663
Реакции
5,148
  • Автоматическая установка количества спавн-поинтов для CT на 32
  • Автоматическая установка количества спавн-поинтов для T на 32
в зомбимодах с побегом, джайлах и аналогичных может не помочь, правда там сами карты с учётом перевеса одной команды в количестве игроков обычно делаются
Сообщения автоматически склеены:

Полная совместимость с Counter-Strike: Source
что то мне кажется, что там нет вот этих кваров:
  • Установка времени иммунитета при респавне (mp_respawn_immunitytime = 1.0)
  • Отключение принудительного снятия иммунитета (mp_respawn_immunity_force_unset = 0)
  • Отключение убийства при заполненном спавне (mp_kill_filled_spawn = 0)
Сообщения автоматически склеены:

Убедитесь, что установлены необходимые зависимости:
  • sdktools - для работы с игровыми правилами
  • sdkhooks - для работы с semiclip (если используется собственная реализация)
  • cstrike - для работы с Counter-Strike
как бы это уже лет 10 минимум как входит в дефолтный комплект соурсмода (в SM1.6 точно было, а про более ранние не помню уже).
 
Последнее редактирование:
Сверху Снизу