HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)
Отправлено FreeSlave 23-12-2021 в 01:04:
Цитата:
Aynekko писал:
Ага. Проверил со всех сторон. Партикли возникают, если барник находится в районе 32 юнитов от центра. Со всех сторон, если смотреть на виде сверху. Ставил его на расстоянии 31-32-33 по всем осям. Высота всегда была одинаковая - 3 юнита от пола. Интересно. Наверное, какая-то движковая особенность.
А можешь скопировать карту из jmf в rmf и скомпилить? (надо только убедиться, что координаты те же и барник по-прежнему около центра). Для меня это внезапно исправило проблему. Может, что-то не так с геометрией в jmf?
Прикладываю зипник с jmf, rmf и сгенеренными из них .map файлами.
Добавлено 23-12-2021 в 04:04:
Update: на карте скомпиленной из rmf тоже воспроизводится всё-таки. Где-то я накосячил при проверке.
Похоже проблема действительно в тестовом хулле, как и предположил Дядя Миша, и проявляется только если нод граф ещё не создан.
Ради теста выставил в CTestHull::Spawn pev->solid = SOLID_NOT, перекомпилировал карту, чтобы у вызвать перегенерацию графа, и проблема исчезла.
Возможный фикс - создавать тестовый хулл с SOLID_NOT и менять солидность на SOLID_SLIDEBOX в CTestHull::DropDelay__________________
I'm on github
I'm on opendesktop.org
Отправлено Crystallize 25-12-2021 в 21:13:
Цитата:
Дядя Миша писал:
Это называется NAN на входе - NAN на выходе. Вот как это называется.
Наверное и bound не работает, потому что ты ему NAN суёшь.
Если вписать printf внутрь самой VectorAngles, то видно, что туда заходит корректный вектор.
Отправлено Crystallize 30-12-2021 в 11:57:
В общем там в матчлибе я не объявил в хидере новую функцию. И потом когда я ее использовал в коде, парой строчек ниже там была эта VectorAngles которая и стала давать порченый результат.
Отправлено hgrunt_2020 16-01-2022 в 13:57:
Вопрос такой вылез, в ксаше есть папка scripts, там можно сделать фон в меню виде карты, но какие ещё есть скрипты по мимо того же меню?
__________________
И главное, Артём, помни: не ешь желтый снег!
Отправлено Aynekko 24-01-2022 в 17:53:
Не могу никак побороть баг с лучом трипмины. На другом конце карты есть одна трипмина, луч у нее активируется через 2.5 секунды. Естественно не в PVS. Вот две ситуации:
1) Через 5 сек вылетаю с ноуклипом, лечу туда. Луч есть.
2) Лечу к месту трипмины по карте, НЕ вылетая за ее пределы, чтобы не задеть PVS мины раньше времени. Прилетел к мине, луча нет.
Изредка бывает, что во второй ситуации луч таки есть. Процентов 10.
На клиенте есть функция R_AddEntity, где проверка на ET_BEAM. Когда луча не видно, эта проверка не срабатывает. Значит луч не приходит на клиент вообще.
Сделал вот так. Это в MakeBeam у трипмины
C++ Source Code:
1 | m_pBeam = CBeam::BeamCreate( g_pModelNameLaser, 10 ); |
4 | m_pBeam->pev->effects |= EF_SKIPPVS; |
5 | m_pBeam -> PointEntInit( tr.vecEndPos, entindex() ); |
EF_SKIPPVS я завел, чтобы пропускать ENGINE_CHECK_VISIBILITY.
И вот опять ситуации:
1) спавнюсь на карте. Через 2.5 секунды клиент рапортует, что нашел луч. ОК.
2) перехожу с другой карты на эту. После перехода через 2.5 секунды клиент видит луч. ОК.
3) перехожу с другой карты на эту. После перехода через 2.5 секунды клиент НЕ видит луч. ???
Я не понимаю, от чего вообще это зависит. Даже пропуск PVS не помогает (трипмине я тоже ставил).
И ведь почему-то с env_laser таких проблем никогда не было.__________________
Мой мод на Xash
Отправлено Aynekko 25-01-2022 в 19:29:
В общем решил, что я смогу обхитрить мину и завел ей спаунфлаг "стартовать выключенной", чтобы активировать по триггеру (по тихому и без звуков), когда игрок гарантированно будет в PVS. И это не сработало
- спавнюсь, лечу к мине ноуклипом, запускаю - луч есть;
- спавнюсь, лечу к мине по карте, не вылетая за пределы карты. Вижу ее в прямой видимости, активирую. Луча НЕТ. MakeBeam срабатывает - вывел в консоль. А луча нет... Делаю сейврестор, луч появляется.
Это какой-то несусветный бред. Если раньше я мог хоть идентифицировать где багуется примерно, то сейчас я даже примерно не могу понять, что не так.
Добавлено 25-01-2022 в 22:25:
Но вот одну деталь обнаружил. Спавнюсь и сразу же делаю сейврестор. То есть мина еще не успела сделать луч. И о чудо, луч есть всегда. Вроде как. Еще потестю.
Добавлено 25-01-2022 в 22:29:
Да, так и есть.
Я вот знаком с ситуацией, когда что-то не работает после сейврестора. Но чтобы не работало до сейврестора - это просто вау.
__________________
Мой мод на Xash
Отправлено Ku2zoff 25-01-2022 в 20:17:
Aynekko не знаю, связано ли это с твоей проблемой, но порядок строк в AddToFullPack сначала отсекает энтитю по PVS, а потом уже задаёт ей тип ENTITY_BEAM. Который, скорее всего, особым образом обрабатывается движком.
C++ Source Code:
1 | // Ignore if not the host and not touching a PVS/PAS leaf |
2 | // If pSet is NULL, then the test will always succeed and the entity will be added to the update |
5 | if ( !ENGINE_CHECK_VISIBILITY( (const struct edict_s *)ent, pSet ) ) |
Ниже такой код:
C++ Source Code:
1 | state->entityType = ENTITY_NORMAL; |
3 | // Flag custom entities. |
4 | if ( ent->v.flags & FL_CUSTOMENTITY ) |
6 | state->entityType = ENTITY_BEAM; |
Попробуй назначение state->entityType разместить перед ENGINE_CHECK_VISIBILITY.
Ещё момент. Как ты используешь новый спаунфлаг "стартовать выключенной"? При установленном флаге не срабатывает PowerupThink? А по триггеру ты уже запускаешь этот тчинк?
Карту можешь скинуть? Хочу проверить, есть ли подобный баг у меня.
Отправлено Aynekko 26-01-2022 в 09:27:
Цитата:
Ku2zoff писал:
Попробуй назначение state->entityType разместить перед ENGINE_CHECK_VISIBILITY.
Я писал об этом в посте до этого, ставил проверку и лучу и мине для пропуска этого условия.Цитата:
Ku2zoff писал:
При установленном флаге не срабатывает PowerupThink? А по триггеру ты уже запускаешь этот тчинк?
Именно так. m_flPowerUp ставлю при этом 0, чтобы луч появился моментально.
В общем, я разобрал свою карту по брашам и сузил проблему. Если игрок заденет trigger_once до того, как активируется луч мины - луча не будет. Сделал тестовую карту - мина на стене в прямой видимости, спаун игрока находится внутри trigger_once. Триггер полностью пустой. Он ничего не активирует.
Сразу стоит сказать, что проблема только в моем моде. В ванильном ксашмоде или голде такого не наблюдается. Так что буду искать косяк.
Ну а ситуации такие:
- игрок спавнится в пустом trigger_once. Мина включается, и луча нет.
- спавн в trigger_once, у него стоит галка No clients. Луч появляется.
- спавн в trigger_push. Луч есть.
- спавн вне trigger_once. Триггер не трогаю. Луч есть. Трогаю триггер, бегаю по карте, убегаю из PVS мины, луч есть, все ОК.
- спавн вне trigger_once. Перед зарядом мины трогаю триггер. Луч не появляется.
- спавн в trigger_multiple. Луч есть.
ну что же, будем искать.
Добавлено 26-01-2022 в 12:00:
Проблема в этом:
C++ Source Code:
trigger_once удаляет сам себя. Стал тестить дальше, у меня есть команда ent_delete, запускающая UTIL_Remove по таргетнейму. Если я удаляю триггер, то луч не появляется. А вот если удаляю func_wall или точечную энтитю, то все норм. Ухх, капец.
Добавлено 26-01-2022 в 12:27:
Нашел баг. Недавно в CreateBaseline фиксили недостающую строчку
C++ Source Code:
baseline->effects = entity->v.effects; |
Убрал ее и бага больше нет. Вопрос знатокам. Какого?__________________
Мой мод на Xash
Отправлено Дядя Миша 26-01-2022 в 10:06:
Цитата:
Aynekko писал:
Недавно в CreateBaseline фиксили недостающую строчку
Вы её по какому принципу фиксили?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Aynekko 26-01-2022 в 10:14:
Мне сказали, чтобы для статиков отключать тени через EF флаг.
__________________
Мой мод на Xash
Отправлено Дядя Миша 26-01-2022 в 11:33:
Ну сделай проверку там. Если playermodelindex равен нулю - это значит спавнится статик.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Aynekko 26-01-2022 в 11:49:
Да, баг больше не проявляется. Надеюсь правильно поставил
C++ Source Code:
3 | baseline->mins = player_mins; |
4 | baseline->maxs = player_maxs; |
9 | baseline->mins = entity->v.mins; |
10 | baseline->maxs = entity->v.maxs; |
11 | baseline->sequence = entity->v.sequence; |
12 | baseline->colormap = entity->v.colormap; |
13 | baseline->modelindex = entity->v.modelindex; |
14 | baseline->movetype = entity->v.movetype; |
15 | if( playermodelindex == 0 ) |
16 | baseline->effects = entity->v.effects; |
Добавлено 26-01-2022 в 14:49:
Вообще, очень странный баг, это ж надо было. И как я его отрыть еще смог)) пришлось все карту очистить от энтитей, пока не сузил проблему до триггеров)__________________
Мой мод на Xash
Отправлено SNMetamorph 26-01-2022 в 12:18:
Цитата:
Дядя Миша писал:
Ну сделай проверку там. Если playermodelindex равен нулю - это значит спавнится статик.
А почему без этого условия баговало? В чем там суть проблемы была?__________________
GoldSrc Monitor (https://gamebanana.com/mods/39429)
mdl-flip (gFlip analog) (https://gamebanana.com/tools/7299)
Xash3D Modding Discord (https://discord.com/invite/Ycgd9QqB9z)
PrimeXT (https://github.com/SNMetamorph/PrimeXT)
Отправлено Дядя Миша 26-01-2022 в 12:26:
Цитата:
Aynekko писал:
Надеюсь правильно поставил
Правильно.
Цитата:
SNMetamorph писал:
А почему без этого условия баговало?
Не надо в вазелин слать содержимое эффектов со старта. Почему не помню.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено SNMetamorph 26-01-2022 в 12:32:
Цитата:
Дядя Миша писал:
Не надо в вазелин слать содержимое эффектов со старта. Почему не помню.
Это какая-то специфика того, как работает дельта-кодирование?
Или это ТОЛЬКО effects касается?__________________
GoldSrc Monitor (https://gamebanana.com/mods/39429)
mdl-flip (gFlip analog) (https://gamebanana.com/tools/7299)
Xash3D Modding Discord (https://discord.com/invite/Ycgd9QqB9z)
PrimeXT (https://github.com/SNMetamorph/PrimeXT)