Вопрос по punchangle. Взял код из паранои 2, он же сорсовский, поставил себе в ксаш. Все работает, но...он как будто лагает что ли? Когда панч большой, то это не так заметно. Но если выставить маленький, то когда панч при возврате в центр движется совсем медленно, заметны некие рывки в движении. Не знаю, как еще лучше объяснить. В хл2 такого не наблюдается.
Вот код который у меня сейчас:
C++ Source Code:
1
#define PUNCH_DAMPING 9.0f
2
#define PUNCH_SPRING_CONSTANT 65.0f
3
4
void PM_DropPunchAngle ( Vector &punchangle )
5
{
6
float damping;
7
float springForceMagnitude;
8
9
if ( punchangle.Length() > 0.001 || pmove->vuser3.Length() > 0.001 )
Так я не с претензиями к тебе, да и вообще код из соурса я скорее с вопросом, как заставить его работать так же как в соурсе. Вроде бы код более-менее идентичный
Aynekko Я уже копипастил себе этот пунч. Лагает он из-за того, что нужно делать его на клиенте. Серверный пунч передается на клиент в четырьмя знаками после запятой у флоатов. Поэтому на маленьких значениях и лагает.
Добавлено 25-03-2021 в 21:49:
У себя я сделал так, что серверный пунч больше не влияет на наклон камеры, но все еще влияет на направление стрельбы. И все pev->pubchangle += ...; менял на вызов функции ,которая отправляет мессагу на клиент, который в свою очередь делает клиентский пунч чисто для визуального эффекта. То есть этот код должен быть и на клиенте и на сервере.
[i]Добавлено 25-03-2021 в 21:51:
Я делал это для красивой отдачи у оружия. Если пунч не должен влиять на направление стрельбы, то можно обойтись лишь клиентским эффектом.
__________________ Никогда не поздно сделать мод под хл1
Sigurth писал: Лагает он из-за того, что нужно делать его на клиенте.
Я все "косметические" пунчи и скриншейки (которые не влияют на меткость стрельбы) стараюсь делать на клиенте. Случай с монтировкой именно такой, толчки экрана не влияют ни на что, а лишь трясут экран. pm_shared конечно позволяет в какой-то степени синхронизировать сервер с клиентом, но в данном случае такое не нужно, т.к. трясти будет лишь экран локального игрока.
Что бы я действительно попытался реализовать - это "землетрясения" из ку2. Там не просто трясётся экран, как от скриншейка, там ещё игрока кидает из стороны в сторону. Будет весьма полезно в паре моментов, что я задумал.
Добавлено 25-03-2021 в 23:36:
Цитата:
Aynekko писал: может как-то можно добавить больше знаков?
В твоём случае это локальный эффект, его не нужно шарить другим игрокам. Сделай его в эвенте монтировки, чисто на клиенте, не затрагивая сервер.
Добавлено 25-03-2021 в 23:37:
Цитата:
Sigurth писал: Если пунч не должен влиять на направление стрельбы, то можно обойтись лишь клиентским эффектом.
Вот я об этом чуть выше сказал. Если это косметика, то нужно делать лишь на клиенте.
Дядя Миша писал: В кваке пятого режима нет, в халфе там malloc
Это говно было нужно под DOS, т.к. там не было системного менеджера памяти.
Понял, спасибо за ответ.
Но есть ещё вопросы вдогонку
От чего может COM_LoadFile тупо падать при загрузке файлов, которые обычно у него не вызывают проблем? Гружу tga/dds текстуры, и на некоторых уровнях при загрузке падает. При этом если ставить usehunk = 2 то работает, причём и тот конкретный уровень с багом, и пол компании ХЛ я прошёл с usehunk = 2. Исходя из твоих слов лучше убрать usehunk 2 и поставить 5, но интересно, какого хера с пятёркой вылетает.