Дядя Миша писал: Не помогло, потому что UTIL_TraceLine не использует флажки FL_MONSTERCLIP. Тебе нужно использовать UTIL_TraceHull для построения нодов с нулевым хуллом. Тогда сработает.
Добавлено сегодня в 09:19:
И FL_MONSTERCLIP добавлять в g_pBodyQueHead, а не в CTestHull.
Это в LinkVisibleNodes? Заменял там два UTIL_TraceLine на UTIL_TraceHull c point_hull и выставлял FL_MONSTERCLIP для g_pBodyQueueHead перед этим. По-прежнему не генерится.
Копать скорее надо в направлении Walk Rejection. Я создал карту-коробку с двумя нодами. Без препятствий между ними связь есть. Если поставить func_monsterclip, то связь не рисуется.
В логе
Цитата:
Walk Rejection:
-------------------------------------------------------------------------------
Node 0:
Взглянул повнимательнее на func_monsterclip. Он вызывает CFuncWall:Spawn, в котором выставляется FL_WORLDBRUSH. Если в CFuncMonsterClip::Spawn его убрать, то связь есть.
А теперь вопрос: безопасно ли убирать FL_WORLDBRUSH у func_monsterclip? Возможно разрабы и вовсе не подразумевали, что у него такой флаг должен быть, ведь выставляется он через Spawn родительского класса. Я потестил и работает оно как ожидается - монстров с Monsterclip не пропускает, а без него - пропускает.
FreeSlave писал: А теперь вопрос: безопасно ли убирать FL_WORLDBRUSH у func_monsterclip?
FL_WORLDBRUSH - это хинт-подсказка, что по такому брашу можно смело ходить, чтоб монстры не тупили. В то время как монстерклип вертикальный и по нему обычно никто не ходит. Так что да, убирай смело.
Такой вопрос, а что делает таких монстров как барнаклы и турели не разрываемыми на куски? У Турелей тчинк TurretDeath вместо killed используется. Барнаклов смог сделать, но опять же - их разрывает только если их взорвать сразу, уже убитого нельзя на ошметки разнести, а у турелей, попытка моя как то их сделать разбиваемыми на куски сделала их не убиваемыми.
По идее из-за этого нельзя ему нанести урон после того как он убит, но я не знаю какой solid у трупов других врагов, чтобы можно было из оружия урон нанести и при этом сквозь них пройти можно было.
Насчет этих двух строк, если убрать pev->solid = SOLID_NOT; жертва остается висеть в барнакле, но его зато можно разорвать из instant hit оружия, если убрать pev->takedamage = DAMAGE_NO; но оставить pev->solid = SOLID_NOT; можно взорвать, но не разорвать instant hit оружием. И еще вот, анимация смерти заново начинает проигрыватся если барнакл опять получает урон после смерти, пока код так выглядит:
CBarnacle :: WaitTillDead тут возвращай ему солидность. Может подходящее место. А вообще, чтобы жертва не застревала, можно воспользоваться груптрейсом.
Ku2zoff Я не могу найти какая солидность у трупов, они получают урон из оружия, и в то же время сквозь них можно пройти.
Добавлено 07-12-2021 в 14:44:
Цитата:
Ku2zoff писал: можно воспользоваться груптрейсом.
Вот только как им пользоваться еще.
Добавлено 07-12-2021 в 14:50:
С повторным проигрыванием анимации смерти разобрался, осталось только с жертвой что-то придумать. Такая же хрень и с турелями, они не солидные делаются, а чтобы им урон можно было нанести, надо тоже сделать их чтобы они были как трупы, получали урон, но сквозь них можно было проходить.
Ku2zoff Я не совсем понял как они работают то, groupinfo нужно одинаковый и барнаклу и жертве ставить? И ничего что потом у жертвы останется свой после смерти барнакла?
Вроде разобрался влепил pev->groupinfo = 1; и вроде можно как и урон Барнаклу дальше после смерти наносить, и жертва и игрок сквозь него проходят. Вот кому надо:
С турелями блин еще моделить надо, настенным чтобы основа после убийства оставалась на стене висеть, а напольным просто куски, а на это больше всего времени уходит (
Как-то так. У меня таким макаром игроки переставали коллайдить с func_wall и друг с другом, когда ползают. Потом я написал код лучше. Не помню, где я вычитал, что вызывать надо именно так. Посмотри сорцы ксашдвижка, из функций должно стать ясно, что они делают.
Добавлено 07-12-2021 в 23:23:
Цитата:
Chyvachok писал: сделал боди отстреленных конечностей для ХД вортигонта
Ух ты, весьма кстати. Я у себя заюзаю, только изменю немного. Свои гибсы для каждого монстра я делал ещё очень давно, код простой. А вот модели делать долго, хоть и не очень сложно.
Ku2zoff писал: Ух ты, весьма кстати. Я у себя заюзаю, только изменю немного. Свои гибсы для каждого монстра я делал ещё очень давно, код простой. А вот модели делать долго, хоть и не очень сложно.
Решил поменять ЛД модели из Брутала на ХД с классическим стилем по тихоньку. Кстати не знаешь есть ли где-то модель ХД Барника но с анимациями под автомат-дробовик и с пинком? ЛД-шный скелет насколько я помню отличается, врядли анимации из БХЛ встанут.
Насчет коллизии, мне наоборот надо чтобы барнакл уже не с чем не колидил, как и трупы от монстров, я просто не знаю, а когда и как вернуть коллизию жертве, если барнакл уже может быть давно взорван на куски и удален? Я поэтому не хочу жертву то трогать, этого pev->groupinfo = 1; вроде достаточно с головой, проверил - урон по барнаклу от оружия проходит, жертва выпадает, игрок сам сквозь труп тоже проходит.
Будет желание моделить, по хорошему для Барнакла можно как я с Ксеновкими Деревьями сделал, и это же хочу с потолочными турелями сделать, не удалять монстра гибом, а спавнить куски, и менять боди на уничтоженный, в общем основа чтобы оставалась, у дерева корни, у турели люк откуда она выдвигается, у барнакла просто кусок мяса оставить свисающий.
Добавлено 07-12-2021 в 18:52:
Цитата:
Ku2zoff писал: Свои гибсы для каждого монстра я делал ещё очень давно, код простой.
Я вот такое наваял, не знаю насколько грамотно. Не так как в БХЛ но вроде лучше чес в Инвазионе (там нельзя больше одной конечности отстреливать, но и нельзя как в БХЛ сделать так чтобы НПС живой оставался, к примеру как зомби с отстреленной рукой, не придумал как, и чтобы оно еще нормально все работало.