HLFX.Ru Forum Страницы (10): « Первая ... « 4 5 6 7 [8] 9 10 »
Показать все 138 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Кажется, я починил DispatchAnimEvents (https://hlfx.ru/forum/showthread.php?threadid=5590)


Отправлено Aynekko 30-03-2021 в 18:56:

Контроллеры кажись пришли в норму. С маззлфлешами все еще беда есть, да. На барника посмотрел, выстрелы местами кажутся резкими что ли, наверное это имеется в виду.

__________________
Мой мод на Xash


Отправлено Sigurth 31-03-2021 в 03:02:

Мне лично эти немного резкие движения совсем не мешают, маззлфлеши, которые и раньше глючные были, я тоже не замечал, пока вы не сказали) В клиентском коде моделей я совсем не шарю, поэтому передам эстафету кому-нибудь другому. Могу лишь сказать, как поступил бы я. Отлавливал бы клиентские ивенты на сервере (где они теперь отлавливаются хорошо) и отправлял бы какую-нибудь мессагу, которая и рисовала бы маззлфлеш на клиенте. Могу ради эксперимента так сегодня сделать

__________________
Никогда не поздно сделать мод под хл1


Отправлено Ku2zoff 31-03-2021 в 06:18:

Цитата:
Sigurth писал:
Мне лично эти немного резкие движения совсем не мешают

m_fSequenceFinished иногда выставляется в TRUE раньше конца анимации, скорее всего. Дёрганье выглядит некрасиво.
Цитата:
Sigurth писал:
Отлавливал бы клиентские ивенты на сервере (где они теперь отлавливаются хорошо) и отправлял бы какую-нибудь мессагу, которая и рисовала бы маззлфлеш на клиенте.

Костыль. Лучше вынести из движка в клиентку содержимое IEngineStudio.StudioClientEvents, и заменить вызов этой функции на свою, которая будет корректно работать.

Добавлено 31-03-2021 в 11:02:

Цитата:
Sigurth писал:
В клиентском коде моделей я совсем не шарю, поэтому передам эстафету кому-нибудь другому.

Когда выложишь код серверной части, я посмотрю, что ты там изменил, и попробую покумекать. Не трогай клиентскую часть, допиливай то, чем занимаешься. Результат хороший - монстры уже не протупливают на сменах активностей.

Добавлено 31-03-2021 в 11:11:

Насчёт маззлфлешей. Не видно только спрайта. Длайт рисуется при каждом вызове. Или это pev->effects =| EF_MUZZLEFLASH, что создаёт елайт. Надо проверить. Клиентских эвентов немного: 5001, 5011, 5021, 5031 для маззлфлешей, 5002 для искр и 5004 для звуков. Проще всего декомпильнуть модель, поменять проблемный эвент на другие, и проверить, в отлове эвентов дело, или в чём-то другом.

Добавлено 31-03-2021 в 12:56:

Сделал StudioClientEvents в дллке. Действительно, проблема только со спрайтами маззлфлешей. Клиентские елайты создаются. Причём, маззлфлеши проскакивают и на дллках со стандартным кодом отлова эвентов, как серверных, так и клиентских. Кажется, эта проблема наблюдается ещё и у Aynekko в ксашмоде. Значит, дело во времени жизни маззлфлешей: они появляются в самом конце кадра и не успевают толком отрисоваться, т.к. в начале следующего исчезают. Ничего не нужно тащить в клиент, достаточно просто заменить gEngfuncs.pEfxAPI->R_MuzzleFlash на gEngfuncs.pEfxAPI->R_TempSprite с увеличенным временем жизни до 0.05, например.


Отправлено Aynekko 31-03-2021 в 06:31:

Цитата:
Ku2zoff писал:
Кажется, эта проблема наблюдается ещё и у Aynekko в ксашмоде

Там решил тем, что я в движке у маззлфлеша поставил die=0.05, а было 0.01. Не знаю, есть ли в коде халфы возможность отредактировать эти функции. В параное 2 стоит 0.015 к примеру.
Только спрайт все еще не крепится к аттачменту, а просто спавнится там, где был аттачмент, поэтому отстает, и при увеличенном времени это заметно. По-хорошему всю систему маззлфлешей вообще надо как-то переделать...но это уже другая история.

__________________
Мой мод на Xash


Отправлено Ku2zoff 31-03-2021 в 06:45:

Цитата:
Aynekko писал:
По-хорошему всю систему маззлфлешей вообще надо как-то переделать...но это уже другая история.

Дело вообще в темпэнтитях, а не только в маззлфлешах. Я подменил вызов вспышки вызовом искр. Проскакивать стало реже. А вот когда подменил вызовом короткого звука, услышал, что иногда тишина, а иногда эхо, звук двоит или троит. Короче, придётся крутить интервалы отлова эвентов и на клиенте тоже.


Отправлено Sigurth 31-03-2021 в 08:16:

Цитата:
Ku2zoff писал:
Лучше вынести из движка в клиентку содержимое IEngineStudio.StudioClientEvents, и заменить вызов этой функции на свою, которая будет корректно работать.

Дело в том, что выносить нужно не только это. Я редактировал не одну функцию на сервере, чтобы все работало, как работает сейчас, очень долго боролся с правильным местом для m_fSequenceFinished, из-за чего у меня и не работали контроллеры. Попробовал свой костыль с мессагами. Ни один маззлфлеш не проскакивает, все отображаются, правда не знаю как правильно считывать аттачмент, либо рисуются в оригине модели, либо вообще где-то над дулом. Я так и быть, трогать клиентскую часть не буду, чтобы не наплодить багов. Сегодня- завтра ждите исходники серверной длл и мини-тутор с пояснениями, если еще баги не найдутся на сервере

Добавлено 31-03-2021 в 15:16:

Цитата:
Ku2zoff писал:
Действительно, проблема только со спрайтами маззлфлешей. Клиентские елайты создаются

Нет, со спрайтами все ОК, а елайты создаются из-за pev->effects |= EF_MUZZLEFLASH; Проблема в клиентском отлове ивентов

__________________
Никогда не поздно сделать мод под хл1


Отправлено Дядя Миша 31-03-2021 в 08:58:

Цитата:
Sigurth писал:
очень долго боролся с правильным местом для m_fSequenceFinished

Его установку в TRUE надо вообще выбросить из DispatchAnimEvents.

Добавлено 31-03-2021 в 11:58:

Цитата:
Sigurth писал:
Проблема в клиентском отлове ивентов

на клиенте нет проблемы отлова событий

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 31-03-2021 в 09:05:

Цитата:
Sigurth писал:
Дело в том, что выносить нужно не только это.

Там, в общем-то, почти всё вынесено. Нету только StudioClientEvents.
Цитата:
Sigurth писал:
боролся с правильным местом для m_fSequenceFinished

Это чисто серверная вещь для индикации, кончилась анимация, или нет. Ну я гадать не буду, сначала надо увидеть изменения на сервере, которые ты внёс.
Цитата:
Sigurth писал:
елайты создаются из-за pev->effects |= EF_MUZZLEFLASH

Буду проверить. Подозреваю, что так и есть, но лишний раз убедиться не помешает.
Цитата:
Дядя Миша писал:
на клиенте нет проблемы отлова событий

Если так, значит ноги у проблемы растут всё-таки с сервера. В любом случае, надо навтыкать алертов в StudioClientEvents и смотреть консоль.


Отправлено Дядя Миша 31-03-2021 в 09:30:

Возьмите циклер, поставьте его на карту и контролируйте проигрывание чисто клиентских событий. Будет вам такой юнит-тест.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Sigurth 31-03-2021 в 10:52:

Цитата:
Дядя Миша писал:
Его установку в TRUE надо вообще выбросить из DispatchAnimEvents

Уже сделано, он у меня устанавливается только в StudioFrameAdvance. Но я там вообще порядок вызова этих функций поменял немного, короче все увидите чуть позже.
Цитата:
Дядя Миша писал:
на клиенте нет проблемы отлова событий

Значит проблема не в отлове, а в том, что на клиенте сам кадр в ивентом просто проскакивает каким-то образом. Может, съедается интерполяцией (не кидайте тапками, если сморозил бред). Не знаю, я с клиентской частью моделей плохо дружу, просто предполагаю. Просто если сделать костыль с отловом клиентских ивентов на сервере и посыланием их мессагами в клиент, то все маззлфлеши рисуются без исключений, и рисуются в нужное время, и я бы так и оставил такой способ у себя, если бы смог правильно рассчитать позицию аттачмента.

__________________
Никогда не поздно сделать мод под хл1


Отправлено Дядя Миша 31-03-2021 в 14:54:

Секвенция меняется раньше, чем клиент её ловит.
Я ж говорю - на циклере проконтролируйте.

Добавлено 31-03-2021 в 17:54:

Вынес тутор в самостоятельную тему сюда:
https://hlfx.ru/forum/showthread.php?s=&threadid=5642

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 31-03-2021 в 16:18:

А проверьте ещё gruntbattledemo


Отправлено Ku2zoff 31-03-2021 в 16:34:

Цитата:
Sigurth писал:
Значит проблема не в отлове, а в том, что на клиенте сам кадр в ивентом просто проскакивает каким-то образом.

Проигрывается только один раз. Допустим, грант стреляет из дробовика 8 раз. При первом выстреле эвент играется, при последующих нет, если серия не будет прервана другой анимацией - пинком или перезарядкой. Перестают ловиться нулевой и первый кадры на клиентской стороне. Если отредактировать модель - всё становится хорошо.

Добавлено 31-03-2021 в 23:34:

Хотя, может проиграться и два раза. В первые пару секунд после загрузки сейва, когда игра немножко "лагает". Наверное, чем выше фпс у анимации, тем больше будет пропущено кадров в её начале.


Отправлено Дядя Миша 31-03-2021 в 16:56:

Цитата:
Crystallize писал:
А проверьте ещё gruntbattledemo

да, тоже хороший тест.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Aynekko 31-03-2021 в 18:07:

Раз тут про ИИ идет разговор тоже, сейчас обнаружил у солдат одну штуку, которая сильно уберет у них тупняк. В Task_t tlGruntRangeAttack1B[] нужно закомментить

C++ Source Code:
{ TASK_PLAY_SEQUENCE_FACE_ENEMY,(float)ACT_IDLE_ANGRY  },

и таким образом они больше не стоят 2 секунды глядя на игрока, как баран на новые ворота, а начинают стрелять прям тут же. Если игрок за углом, то солдат начинает стрелять, только лишь показавшись из-за угла. Вот думаю пока, чтобы такое подсунуть туда вместо этого акта, чтобы ожидание было пол-секунды, а не две-три.
В атаке 1А стоит ACT_CROUCH - солдат сначала приседает. Ну тут ладно.

C++ Source Code:
{ TASK_WAIT,				(float)0.1		},

хорошо срабатывает, почти то, что надо. Можно попробовать задрать фпс анимации combatidle еще. Пока она не проиграется, солдат стрелять не будет.

__________________
Мой мод на Xash


Временная зона GMT. Текущее время 14:01. Страницы (10): « Первая ... « 4 5 6 7 [8] 9 10 »
Показать все 138 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024