Ru/Triggers: Difference between revisions
(Правка ссылок) |
Kestrelguy (talk | contribs) m (updated language bar.) |
||
Line 1: | Line 1: | ||
{{ | {{lang|Triggers|title=Триггеры}} | ||
| | '''Триггеры''' — [[entity:ru|энтити]], которые отвечают на запросы других энтити. Триггеры-браши могут быть созданы картоделами, а программисты могут превратить всё что угодно в триггер. | ||
|title = Триггеры | |||
}} | |||
'''Триггеры''' | |||
== Картостроение == | == Картостроение == | ||
[[File:Toolstrigger.gif|right|tools/toolstrigger]] | [[File:Toolstrigger.gif|right|tools/toolstrigger]] | ||
Существует много типов триггеров-брашей, которые могут быть созданы в редакторе карт Hammer; просмотрите [[Special:PrefixIndex/trigger]] для полного списка. | Существует много типов триггеров-брашей, которые могут быть созданы в редакторе карт Hammer; просмотрите [[Special:PrefixIndex/trigger]] для полного списка. | ||
Одни из самых главных триггеров-брашей это | Одни из самых главных триггеров-брашей это {{ent:ru|trigger_once}}, {{ent:ru|trigger_multiple}}, {{ent:ru|trigger_look}} and {{ent:ru|trigger_proximity}}. У них всех одинаковые свойства и выводы: | ||
; {{ent:ru|Tool textures|alt=tools/toolstrigger}} | |||
; | |||
: Каждый триггер должен использовать один материал. | : Каждый триггер должен использовать один материал. | ||
; Filters | ; Filters: [[:Category:Filters:ru|Энтити-фильтры]] могут быть использованы для определения, что должен активировать триггер. | ||
: [[Filters|Энтити-фильтры]] могут быть использованы для определения, что должен активировать триггер. | ; Filter Flags: Есть список [[Hammer Object Properties Dialog#Flags Tab|флагов]] {{en}}, которые позволять триггеру быстро фильтровать без дополнительного энтити. | ||
; Filter Flags | |||
: Есть список [[Hammer Object Properties Dialog#Flags Tab|флагов]], которые позволять триггеру быстро фильтровать без дополнительного энтити. | |||
; <code>OnStartTouch</code> | ; <code>OnStartTouch</code> | ||
; <code>OnEndTouch</code> | ; <code>OnEndTouch</code> | ||
: Вывод происходит, когда любое энтити заходит в триггер или выходит из него. Этот энтити будет числится, как | : Вывод происходит, когда любое энтити заходит в триггер или выходит из него. Этот энтити будет числится, как {{ent:ru|Targetname#Keywords|alt=!caller}}. | ||
; <code>OnStartTouchAll</code> | ; <code>OnStartTouchAll</code> | ||
; <code>OnEndTouchAll</code> | ; <code>OnEndTouchAll</code> | ||
Line 27: | Line 20: | ||
; <code>OnTouching</code> | ; <code>OnTouching</code> | ||
; <code>OnNotTouching</code> | ; <code>OnNotTouching</code> | ||
: Один из выводов будет запущен в ответ на <code>TouchTest</code> ввод. Все триггеры имеют эту команду, однако, немногие из них имеют эту команду в списке.[[FGD]]. | : Один из выводов будет запущен в ответ на <code>TouchTest</code> ввод. Все триггеры имеют эту команду, однако, немногие из них имеют эту команду в списке. [[FGD]] {{en}}. | ||
; <code>OnTrigger</code> | ; <code>OnTrigger</code>: Срабатывает всякий раз, когда энтити соответствует всем критериям триггера. | ||
: Срабатывает всякий раз, когда энтити соответствует всем критериям триггера. | {{warning:ru|Для <tt>trigger_once</tt>, вывод '''''не''''' похож на <code>OnStartTouch</code> и <tt>OnStartTouchAll</tt>. Когда триггер, который не восстанавливается активен, он удалит себя с карты через 0.1 секунду. <code>OnStartTouch</code> может быть активирован в этом промежутке.}} | ||
{{warning:ru|Для trigger_once, вывод '''''не''''' похож на <code>OnStartTouch</code> и < | |||
=== Смотрите также === | === Смотрите также === | ||
* [[Brush entity:ru|Браш-энтити]] | * [[Brush entity:ru|Браш-энтити]] | ||
* [[Inputs and Outputs:ru|Inputs и Outputs]] | * [[Inputs and Outputs:ru|Inputs и Outputs]] | ||
* [[Filters | * [[:Category:Filters|Фильры]] {{en}} | ||
* [[Special:PrefixIndex/trigger]] | * [[Special:PrefixIndex/trigger]] | ||
* < | * <tt>showtriggers_toggle</tt>, консольная команда, которая позволяет видеть триггер-браши. | ||
== Программирование == | == Программирование == | ||
Все энтити могут отвечать на соприкосновение с другими энтити (смотрите {{ent:ru|Touch()}}). Если вы хотите соприкосновения без коллизии, то у вас есть два выбора: | |||
Все энтити могут отвечать на соприкосновение с другими энтити (смотрите | |||
; <code>SetSolid(SOLID_NONE)</code> <span style="font-weight:normal;">и</span> <code>AddSolidFlags(FSOLID_TRIGGER)</code> | ; <code>SetSolid(SOLID_NONE)</code> <span style="font-weight:normal;">и</span> <code>AddSolidFlags(FSOLID_TRIGGER)</code> | ||
: Энтити будет отвечать на соприкосновения с вещами, которые походят через него. | : Энтити будет отвечать на соприкосновения с вещами, которые походят через него. | ||
; <code>CollisionProp()->UseTriggerBounds(true,iBloatSize)</code> | ; <code>CollisionProp()->UseTriggerBounds(true,iBloatSize)</code> | ||
: Энтити будет иметь триггер-бокс который продлевает его [[bounding box|коробки коллизии]] с помощью iBloatSize юнитов в X/Y и (iBloatSize/2) в +Z (-Z остается прежним). Триггер-бокс выравнен миром и будет работать независимо от твёрдости объекта и его группы коллизии. Он будет видим, как светящаяся, голубая коробочка, когда консольная команда <code>ent_bbox</code> использована. | : Энтити будет иметь триггер-бокс который продлевает его [[bounding box|коробки коллизии]] {{en}} с помощью iBloatSize юнитов в X/Y и (iBloatSize/2) в +Z (-Z остается прежним). Триггер-бокс выравнен миром и будет работать независимо от твёрдости объекта и его группы коллизии. Он будет видим, как светящаяся, голубая коробочка, когда консольная команда <code>ent_bbox</code> использована. | ||
: Valve использует триггер-бокс для всех предметов. Их Их размер коллизии составляет 24, довольно большая цифра. | : Valve использует триггер-бокс для всех предметов. Их Их размер коллизии составляет 24, довольно большая цифра. | ||
=== Браш === | === Браш === | ||
Что-бы сделать новый триггер-браш, который использует форму его браша заместо коробки коллизии, нужно взять <code>CBaseTrigger</code> и вызвать<code>InitTrigger()</code>. | |||
Что-бы сделать новый триггер-браш, который использует форму его браша заместо коробки коллизии, нужно взять <code> | [[Category:Glossary:ru|Глоссарий]][[Category:Level Design:ru|Создание уровней]][[Category:Programming:ru|Программирование]] | ||
[[Category: | |||
[[Category: | |||
[[Category: |
Revision as of 07:45, 7 June 2022
Триггеры — энтити, которые отвечают на запросы других энтити. Триггеры-браши могут быть созданы картоделами, а программисты могут превратить всё что угодно в триггер.
Картостроение
Существует много типов триггеров-брашей, которые могут быть созданы в редакторе карт 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
- Срабатывает всякий раз, когда энтити соответствует всем критериям триггера.
Смотрите также
- Браш-энтити
- Inputs и Outputs
- Фильры
- Special:PrefixIndex/trigger
- showtriggers_toggle, консольная команда, которая позволяет видеть триггер-браши.
Программирование
Все энтити могут отвечать на соприкосновение с другими энтити (смотрите Touch()). Если вы хотите соприкосновения без коллизии, то у вас есть два выбора:
SetSolid(SOLID_NONE)
иAddSolidFlags(FSOLID_TRIGGER)
- Энтити будет отвечать на соприкосновения с вещами, которые походят через него.
CollisionProp()->UseTriggerBounds(true,iBloatSize)
- Энтити будет иметь триггер-бокс который продлевает его коробки коллизии
с помощью iBloatSize юнитов в X/Y и (iBloatSize/2) в +Z (-Z остается прежним). Триггер-бокс выравнен миром и будет работать независимо от твёрдости объекта и его группы коллизии. Он будет видим, как светящаяся, голубая коробочка, когда консольная команда
ent_bbox
использована. - Valve использует триггер-бокс для всех предметов. Их Их размер коллизии составляет 24, довольно большая цифра.
Браш
Что-бы сделать новый триггер-браш, который использует форму его браша заместо коробки коллизии, нужно взять CBaseTrigger
и вызватьInitTrigger()
.