Триггеры

From Valve Developer Community
< Ru
Revision as of 00:37, 13 September 2023 by TheHammerUser (talk | contribs) (→‎Картостроение: : измене́н темплэйт предупреждения из-за неправильных размеров иконки предупреждения)
Jump to navigation Jump to search
English (en)Русский (ru)中文 (zh)Translate (Translate)

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

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

tools/toolstrigger

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

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

tools/toolstrigger
Каждый триггер должен использовать один материал.
Filters
Энтити-фильтры могут быть использованы для определения, что должен активировать триггер.
Filter Flags
Есть список флагов
Warning icon.png
This article has been marked as a candidate for speedy deletion for the following reason:
Use {{Flag|en}} instead.
If you object to this decision, then please discuss why here (If you make a discussion section also create this redirect page). If this page doesn't meet the criteria for speedy deletion, then please remove this notice, but do not remove it from pages that you have created yourself
Administrators / Moderators - Remember to check if anything links here and the page history before deleting.

, которые позволять триггеру быстро фильтровать без дополнительного энтити.

OnStartTouch
OnEndTouch
Вывод происходит, когда любое энтити заходит в триггер или выходит из него. Этот энтити будет числится, как !caller.
OnStartTouchAll
OnEndTouchAll
Вывод происходит, как с выше перечисленным, но только, если отфильтрованные энтити не касаются триггера.
OnTouching
OnNotTouching
Один из выводов будет запущен в ответ на TouchTest ввод. Все триггеры имеют эту команду, однако, немногие из них имеют эту команду в списке. FGD
Warning icon.png
This article has been marked as a candidate for speedy deletion for the following reason:
Use {{Flag|en}} instead.
If you object to this decision, then please discuss why here (If you make a discussion section also create this redirect page). If this page doesn't meet the criteria for speedy deletion, then please remove this notice, but do not remove it from pages that you have created yourself
Administrators / Moderators - Remember to check if anything links here and the page history before deleting.

.

OnTrigger
Срабатывает всякий раз, когда энтити соответствует всем критериям триггера.
Warning.pngПредупреждение:Для trigger_once, вывод не похож на OnStartTouch и OnStartTouchAll. Когда триггер, который не восстанавливается активен, он удалит себя с карты через 0.1 секунду. OnStartTouch может быть активирован в этом промежутке.

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

Warning icon.png
This article has been marked as a candidate for speedy deletion for the following reason:
Use {{Flag|en}} instead.
If you object to this decision, then please discuss why here (If you make a discussion section also create this redirect page). If this page doesn't meet the criteria for speedy deletion, then please remove this notice, but do not remove it from pages that you have created yourself
Administrators / Moderators - Remember to check if anything links here and the page history before deleting.
  • Special:PrefixIndex/trigger
  • showtriggers_toggle, консольная команда, которая позволяет видеть триггер-браши.

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

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

SetSolid(SOLID_NONE) и AddSolidFlags(FSOLID_TRIGGER)
Энтити будет отвечать на соприкосновения с вещами, которые походят через него.
CollisionProp()->UseTriggerBounds(true,iBloatSize)
Энтити будет иметь триггер-бокс который продлевает его коробки коллизии
Warning icon.png
This article has been marked as a candidate for speedy deletion for the following reason:
Use {{Flag|en}} instead.
If you object to this decision, then please discuss why here (If you make a discussion section also create this redirect page). If this page doesn't meet the criteria for speedy deletion, then please remove this notice, but do not remove it from pages that you have created yourself
Administrators / Moderators - Remember to check if anything links here and the page history before deleting.

с помощью iBloatSize юнитов в X/Y и (iBloatSize/2) в +Z (-Z остается прежним). Триггер-бокс выравнен миром и будет работать независимо от твёрдости объекта и его группы коллизии. Он будет видим, как светящаяся, голубая коробочка, когда консольная команда ent_bbox использована.

Valve использует триггер-бокс для всех предметов. Их Их размер коллизии составляет 24, довольно большая цифра.

Браш

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