Дядя Миша писал: а как его запилить извините, если эти функции должны проходить сквозь эвалюатор физики, а не цепляться где-то сбоку и что-то там выслеживать.
В том-то и дело, что в халфе функции эвалюатора торчат наружу. Но глупые лаури не знали наверняка, какие это функции, а искать вслепую - довольно неудобно. А так бы глянули в сорцы ксаша, ну или на худой конец - осхлдс, и сразу бы догадались.
Дядя Миша
Ну я не стал закапываться настолько глубоко, но ты прав - можно поставить моветип-нон и имплиминтировать физику в дллке. В халфе есть замечательная функция pfnTraceMonsterHull для этих целей, но почему-то незаслуженно обойдённая вниманием.
Столкнулся с проблемой. Сделал вращающуюся дверь, которая открывается вращающейся кнопкой в виде ручки, закреплённой на этой двери. Чтобы кнопка двигалась вместе с дверью, установил двери таргетнейм, который потом указал как парент для кнопки. Таргет для кнопки - дверь, как и полагается. Дверь открывается всегда в одну сторону, если игрок стоит с другой стороны, она его отталкивает. Я подумал-подумал, да и сделал кнопку мастером для двери, чтобы кпопку нажать, соответственно разблокировать дверь и толкнуть её с нужной стороны. Но когда в халфе у двери есть таргетнейм, она автоматически блокируется, и открыть её можно только активировав. А без таргетнейма нельзя - кнопка не будет двигаться с дверью. Есть какие-нибудь мапперские решения? Или это только кодингом? Если кодингом, Дядя Миша возьми на заметку, что наличие таргетнейма ещё не значит, что дверь надо блокировать. Лучше заведи для этого флаг.
Решение очень простое - поле "парент" должно принимать не только таргетнейм, но и класснейм - и если там он, то искать ближайшую энтитю этого класса. В новом хлфх, например, такой принцип. А может, и в ксаше так, а вы просто не пробовали?
XaeroX писал: и если там он, то искать ближайшую энтитю этого класса.
Я уже пробовал - не канает. Вообще поиск по класснейму дело опасное, если несколько одинаковых энтить находятся рядом. Чайлд прилепится не к тому паренту и усё. Флаг спасёт.
Добавлено 14-03-2013 в 19:02:
ИРЛ двери редко открываются в обе стороны, это для халфера привычно: куда толкнёшь - туда и откроется. Вон, во второй кваке они все в одну сторону вертелись. И открывались кнопками.
Добавлено 14-03-2013 в 19:05:
А вообще лучше сделать, чтобы дверь определяла, с какой стороны стоит открывающий, и при активации поворачивалась куда надо. Ведь с флагом "Use only" она тоже открывается только в одну сторону.
Добавлено 14-03-2013 в 19:08:
Я подумал сначала использовать env_customize, чтобы менять угол поворота с 90 на -90 (авось проканает), когда подходишь с одной стороны к двери, а другой env_customize, чтобы менять c -90 на 90 соответственно. Но вот беда: env_customize заточен под монстров. А сможет ли он менять произвольные параметры энтить, я не знаю.