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 05-12-2021 в 12:24:
Цитата:
Ku2zoff писал:
Монстры должны нормально ходить через двери.
Это как повезет. Может встать так, что с безнодовым алгоритмом затупит.
Цитата:
Ku2zoff писал:
это где такая визуализация связей сделана?
impulse 197
В обычной халфе есть.__________________
I'm on github
I'm on opendesktop.org
Отправлено Ku2zoff 05-12-2021 в 12:47:
Стоп. Проверил обычную халфу, в ней так и показываются связи. Только не на всех картах их почему-то видно.
Добавлено 05-12-2021 в 19:47:
Нашёл статью о нодах на TWHL. Цитата:
Цитата:
As mentioned before, nodes will only create a link where there is a visual line of sight between two nodes. Luckily, it ignores movable brush entities, such as func_doors, so you can place this door in between the nodes and there still will be a link.
То есть, связь через двери должна создаваться.
Отправлено Aynekko 05-12-2021 в 12:49:
Цитата:
FreeSlave писал:
Aynekko, я про то, что структура графа читается и сохраняется в файл напрямую.
Да, вероятно это может привести к такому. Ну в моем случае не беда.Цитата:
Ku2zoff писал:
Как раз над этим работаю.
Кстати, пока вчера тестировал двери, обнаружил еще вот что. Есть две двери. Одна залочена мастером и не может быть открыта. Вторая открыта. Обе двери ведут в один и тот же открытый коридор. Ноды везде построены. Я юзаю барника и улетаю ноклипом сквозь дверь с мастером. Итог: барник упирается в дверь с мастером и спамит в консоль "нимагу идти". Вот бы сделать, чтобы этот путь забраковался и он стал искать обходной путь. Что-то вчера копался с этими нодами, но так и не вкурил, как это реализовать.__________________
Мой мод на Xash
Отправлено FreeSlave 05-12-2021 в 16:03:
Я поподробнее посмотрел код реакции монстров на двери и он вообще довольно опасный.
Например:
HandleLinkEnt возвращает TRUE если дверь уже открыта и помечена как Toggle - https://github.com/ValveSoftware/ha.../nodes.cpp#L263
Что в свою очередь приводит к тому, что вызывается OpenDoorAndWait - https://github.com/ValveSoftware/ha...sters.cpp#L1492
Там мы видим, что дверь "юзается" с USE_ON - https://github.com/ValveSoftware/ha...sters.cpp#L1412
Однако двери в HL никак не обрабатывают USE_TYPE и воспринимают всё как Toggle, что приводит к тому, что дверь может наоборот закрыться.
Собственно, я когда-то давно наблюдал такое явление на широких дверях с флагом Toggle на опфоровских dll-ках. Солдаты, пробегая под ранее открытыми воротами, закрывали их. И Monsters Can't никак не помогал, ибо проверка на него в коде находится позже. Думаю, в HL такое тоже можно повторить, но там больше двух союзников за собой не утащишь, так что проверять сложнее.
__________________
I'm on github
I'm on opendesktop.org
Отправлено Aynekko 05-12-2021 в 16:11:
Цитата:
FreeSlave писал:
Солдаты, пробегая под ранее открытыми воротами, закрывали их.
Такое сплошь и рядом. Даже у себя видел: есть двойные двери, довольно узкие. Так вот они их юзали-юзали, да так и не выюзали, и тупили там. С дверями у монстров вообще отношения особые, особенно с rotating.
Чтобы воспринималось все как надо, нужна у двери галка on/off mode, но вроде бы как в халфе такого нет, только спирит и ксашмод (? могу ошибаться).
Нужно доделать этот момент.__________________
Мой мод на Xash
Отправлено FreeSlave 05-12-2021 в 16:29:
Цитата:
Aynekko писал:
нужна у двери галка on/off mode
Ты имеешь в виду правильная реакция на use_type? В Sven Co-op такое есть, называется Obey Trigger Mode https://sites.google.com/site/svenm...guide/func_door
Я у себя тоже её реализовал, но по умолчанию этот параметр у дверей не выставлен, для совместимости.
Цитата:
Aynekko писал:
Такое сплошь и рядом.
Монстры так могут игрока закрыть
Да и вообще негоже игнорировать Monster Can't__________________
I'm on github
I'm on opendesktop.org
Отправлено FreeSlave 05-12-2021 в 21:04:
Ещё заметил, что связи не строятся через func_monsterclip. Пока не нашёл, как чинить. У кого-нибудь есть мысли на этот счёт?
__________________
I'm on github
I'm on opendesktop.org
Отправлено Дядя Миша 05-12-2021 в 21:29:
Цитата:
FreeSlave писал:
Ещё заметил, что связи не строятся через func_monsterclip
Монстер клип для того и придуман, чёб монстры сквозь него не ходили 
Он же неотключаемый вроде.
Добавлено 06-12-2021 в 00:29:
Но я подскажу в чём тут дело - во флаге FL_MONSTERCLIP, который учитывает трасса. Т.е. CTestHull должен иметь тоже этот флаг, чёб монстерклипы были проходимыми.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FreeSlave 05-12-2021 в 23:20:
Цитата:
Дядя Миша писал:
Монстер клип для того и придуман, чёб монстры сквозь него не ходили
Так не все, а только те, что с флагом Monsterclip.
Цитата:
Дядя Миша писал:
Он же неотключаемый вроде.
Его можно удалять
Цитата:
Дядя Миша писал:
Но я подскажу в чём тут дело - во флаге FL_MONSTERCLIP, который учитывает трасса. Т.е. CTestHull должен иметь тоже этот флаг, чёб монстерклипы были проходимыми.
Я тоже об этом подумал, и добавлял FL_MONSTERCLIP в CTestHull::Spawn, но это не помогло.
Ну и в HandleLinkEnt добавил ветку, учитывающую func_monsterclip и возвращающую на него успех.__________________
I'm on github
I'm on opendesktop.org
Отправлено Crystallize 06-12-2021 в 01:35:
Цитата:
Ku2zoff писал:
То есть, связь через двери должна создаваться.
Может позже поломали?
Отправлено Ku2zoff 06-12-2021 в 01:38:
Цитата:
Crystallize писал:
Может позже поломали?
Нет. Код нодеграфа не изменялся с самого релиза халфы.
Дело вот в чём:
Цитата:
FreeSlave писал:
Я поподробнее посмотрел код реакции монстров на двери и он вообще довольно опасный.
Тут либо кодить для своего мода, либо копипастить свойства дверей с халфовских карт.
Отправлено Дядя Миша 06-12-2021 в 06:19:
Цитата:
FreeSlave писал:
Я тоже об этом подумал, и добавлял FL_MONSTERCLIP в CTestHull::Spawn, но это не помогло.
Не помогло, потому что UTIL_TraceLine не использует флажки FL_MONSTERCLIP. Тебе нужно использовать UTIL_TraceHull для построения нодов с нулевым хуллом. Тогда сработает.
Добавлено 06-12-2021 в 09:19:
И FL_MONSTERCLIP добавлять в g_pBodyQueHead, а не в CTestHull.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Chyvachok 06-12-2021 в 11:52:
Такой вопрос, никто не делал луч моделькой? Типа как у Шафта в 1 Квейке? Я смотрел код dmc, как я понял там луч средствами ХЛ рисуется, через R_BeamPoints.
Отправлено Ku2zoff 06-12-2021 в 12:38:
Цитата:
Chyvachok писал:
никто не делал луч моделькой?
Зачем? В первой кваке не было спрайтов, ЕМНИП, только партикли. Отсюда и модельки для огня, для молний шамблиров и шафта, плевков демонов. Во второй кваке то же самое - модельки и партикли. В халфе одно нехорошее ограничение на спрайтовые эффекты - лимит темпэнтить. Можно обойти, используя три апи. Импотенциально можно накодить свою рисовалку спрайтов, в первой паранойе вроде бы что-то такое имеется.
Отправлено Дядя Миша 06-12-2021 в 17:45:
Цитата:
Ku2zoff писал:
В первой кваке не было спрайтов, ЕМНИП, только партикли
открой папку sprites и не позорься.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'