Это скорее не баг, а особенность обработки видимости объектов. Видимо решение стрелять или не стрелять принимается в зависимости от того, видит ли игрок противника, а не наоборот :)
В коде может быть примерно так: "Если игрок виден/видит, и/или не закрыт для npc, те атакуют." И по этому при использование пропа npc не засчитал не один из вариантов - т.е не реагировал вообще.
Я ни разу не играл в HL2 (только в первую, Black Mesa, во вторую не довелось), так что могу только строить догадки:
1) Алгоритм атаки врагом простейший, если опустить детали, задача: стрелять только когда игрок появляется в зоне видимости. 2) Реализовывать зону видимости врага не нужно: это слишком ресурсоёмко. Проще брать за основу поле видимости игрока (360 гр) и в зависимости от того, попадает ли враг в это поле (а скорее даже полигоны глаз врага, что было бы логично), принимать решение о стрельбе.
Когда берешь эти бочки по тебе таки стреляют (с банкой не пробовал), хотя это бОльший объект нежели банка и поле видимости игрока она снижает куда как больше, если не закрывает весь обзор.
Думаю, обработка события для бочки прописана, а вот для объекта поменьше - нет. Ведь бочки везде одинаковы, а маленьких объектов намного больше и разных. Думаю, как-то так Да и с точки зрения логики - логично использовать для прикрытия бочку, нежели банку из под краски :D
Дело не совсем в этом. Для того, чтобы определить стрелять или нет, проводится линия от врага к игроку. Если на пути нет пересечений с другими объектами, то враг стреляет. Не все объекты проверяются на пересечение с этой линией, в Source для этого у моделей есть свойство "blockLOS <bool>". По некоторому недоразумению баночка из видео имеет значение этого свойства true. Исправляется это очень просто перекомпиляцией модели, так что это не недостаток AI, просто никто из тестеров не додумался это проверить и сообщить о забавном баге.
Либо есть еще какие-то тонкости, либо я чего-то не понимаю, либо это действительно порождает косяки с группировкой объектов. Например, стена без просветов, выстроенная из баночек, имеющих true в blockLOS, не будет являться преградой для ИИ.
После прохождения первой части можно еще в аддоны поиграть: Blue Shift и Op. Force. Они немного раскрывают сюжет, позволяя поиграть за разных персонажей. OpForce по продолжительности и количеству вооружения вообще тянет на отдельную игру.
А вообще, играя в первый HL стоит представлять, что на дворе не 2014-15 год с современными Crysis'ами а скромный 1998.
Собственно есть конфиг специальный, там только эти параметры для сложности можно выбрать. Например существуют хардкорщики, которые любят погибать от одного попадания.. Хз зачем так, ведь в игре много мест, где ты обязательно получишь урон(а значит и умрешь)
скажем, когда тебя вместе с багги переносит кран, потом ты на багги падаешь и переворачиваешься, а вокруг куча муравьиных львов, там проблематично перевернуть багги и уехать на нем, пока они не начали тебя заклевывать, в тюрьме тоже один момент есть, в цитадели..
Возможно, на игроке висят специальные контрольные точки, которые лучом соединяются с "глазами" врага. Если луч пересекается с чем-либо - враг игрока не видит, и стрелять не может.
Сделайте баночку такую же, как пасхалку(ну или легкий чит), в том месте, где нужно добраться к врагу, который все это время может стрелять. А о чем игра?) какие платформы?
Происходит рейкаст из глаз противника в глаза игрока. если между этими точками ничего нет -- то можно стрелять (противник видит игрока). Объект в руках игрока не должен учитываться как препятствие. Так что это баг
в сурсе видимость врагов определяется путем трассировки лучей и скорее всего неправильно выставлены маски через какие категории объектов должен проходить луч или наоборот банка имеет неправильную категорию столкновения например: выстрелить луч заданном направлении с проходом только через дым, воду, стекла и т.д
еще с хитмана помню, когда надо было толпу клонов валить(то ли первая, то ли вторая часть), а они зверствовали люто, вот с такой же особенностью и выживали, для них решетка-сплошная стена, а я могу лупить между прутьев)))
mamka782
Пиздец кармаки собрались. Там висит какой-нибудь геометрический примитив, сфера какая-нибудь в позиции камеры. С позиции врага выстреливает луч (8 класс школы) и проверяется на пересечение с этой сферой. Вот и всё.
Дело не в том, кто кого видит, а в том, какую область должен увидеть противник, чтобы начать стрелять. В данном случае, он должен увидеть точку в центре головы. Но эта точка загорожена банкой, поэтому противник "не видит" игрока.