Вобщем, я не представляю где они в стим версии могли запилить заплатку на застревания в лифтах.
Перелопатил Unstuck функцию в коде (у них там вообще всё криво было).
В качестве бонуса даже получил незастревание на монстрах.
Проверить можно так: запустить ХЛ, в консоли ввести "map c2a1", и пойти назад. загрузится локация с хедкрабом. Подождите пока он вылезет из под стола и запрыгните на него. В момент когда он вас куснет, вы в нем застрянете.
Вложение:
c1a4j0001.jpg [ 47.35 КБ | Просмотров: 1279 ]
Это в оригинальном ХЛ. В нашем это исправлено.
В целом это довольно сильное изменение и я не могу предсказать где ещё это может вылезти (как вот тут на монстре, совершенно случайно обнаружилось).
Надо это дело как-то оттестить хорошенько.
Добавлено спустя 47 минут 45 секунд:Вот, кстати, и на обычном стиме застревает. Записал демки.
sys_ticrate 1200, mm_insane 0. Фпс скачет от 800 до 1000 (на сервере).
Сервер с hl.dll со стима. Клиент - нонстим п47, с родной client.dll.
Так что не особо тут разница между родной стимовской и нашей дллкой. Весь вопрос в серверном фпс. Скорее всего когда он большой, шаги передвижения предметов на каждой итерации маленькие, и, видимо, происходит накопление ошибки округления.
Т.к. править движок мне неохото в этом случае. Попробуем обойтись исправлением Unstuck кода, описанного выше. Пусть это и не исправление проблемы, а лишь её последствий.
Фикс будет выложен для теста в бета разделе.