Триггеры

From Valve Developer Community
Jump to: navigation, search
English

Триггеры - энтити, которые отвечают на запросы других энтити. Триггеры-браши могут быть созданы картоделами, а программисты могут сделать что угодно их триггеров.

Картостроение

tools/toolstrigger

Существует много типов триггеров-брашей, которые могут быть созданы в редакторе карт Hammer; просмотрите Special:PrefixIndex/trigger для полного списка.

Одни из самых главных триггеров-брашей это trigger_once, trigger_multiple, trigger_look and trigger_proximity. У них всех одинаковые свойства и выводы:

Tools/ToolsTrigger
Каждый триггер должен использовать один материал.
Filters
Энтити-фильтры могут быть использованы для определения, что должен активировать триггер.
Filter Flags
Есть список флагов, которые позволять триггеру быстро фильтровать без дополнительного энтити.
OnStartTouch
OnEndTouch
Вывод происходит, когда любое энтити заходит в триггер или выходит из него. Этот энтити будет числится, как !caller.
OnStartTouchAll
OnEndTouchAll
Вывод происходит, как с выше перечисленным, но только, если отфильтрованные энтити не касаются триггера.
OnTouching
OnNotTouching
Один из выводов будет запущен в ответ на TouchTest ввод. Все триггеры имеют эту команду, однако, немногие из них имеют эту команду в списке.FGD.
OnTrigger
Срабатывает всякий раз, когда энтити соответствует всем критериям триггера.
Warning.png Предупреждение: Для trigger_once, вывод не похож на OnStartTouch и OnStartTouchAll. Когда триггер, который не восстанавливается активен, он удалит себя с карты через 0.1 секунду. OnStartTouch может быть активирован в этом промежутке.

Смотрите также

Программирование

Все энтити могут отвечать на соприкосновение с другими энтити (смотрите Touch()). Если вы хотите соприкосновения без коллизии, то у вас есть два выбора:

SetSolid(SOLID_NONE) и AddSolidFlags(FSOLID_TRIGGER)
Энтити будет отвечать на соприкосновения с вещами, которые походят через него.
CollisionProp()->UseTriggerBounds(true,iBloatSize)
Энтити будет иметь триггер-бокс который продлевает его коробки коллизии с помощью iBloatSize юнитов в X/Y и (iBloatSize/2) в +Z (-Z остается прежним). Триггер-бокс выравнен миром и будет работать независимо от твёрдости объекта и его группы коллизии. Он будет видим, как светящаяся, голубая коробочка, когда консольная команда ent_bbox использована.
Valve использует триггер-бокс для всех предметов. Их Их размер коллизии составляет 24, довольно большая цифра.

Браш

Что-бы сделать новый триггер-браш, который использует форму его браша заместо коробки коллизии, нужно взять CBaseTrigger и вызватьInitTrigger().