Ru/Triggers: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
No edit summary
No edit summary
 
Line 5: Line 5:
[[File:Toolstrigger.gif|right|tools/toolstrigger]]
[[File:Toolstrigger.gif|right|tools/toolstrigger]]


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


Одни из самых главных триггеров-брашей это {{ent:ru|trigger_once}}, {{ent:ru|trigger_multiple}}, {{ent:ru|trigger_look}} and {{ent:ru|trigger_proximity}}. У них всех одинаковые свойства и выводы:
Одни из самых главных триггеров-брашей это {{ent|trigger_once}}, {{ent|trigger_multiple}}, {{ent|trigger_look}} and {{ent|trigger_proximity}}. У них всех одинаковые свойства и выводы:
; {{Ent|Tool textures|alt=tools/toolstrigger}}
; {{Ent|Tool textures|alt=tools/toolstrigger}}
: Каждый триггер должен использовать один материал.
: Каждый триггер должен использовать один материал.
; Filters: {{LCategory|Filters|Энтити-фильтры}} могут быть использованы для определения, что должен активировать триггер.
; Filters: {{LCategory|Filters|Энтити-фильтры}} могут быть использованы для определения, что должен активировать триггер.
; Filter Flags: Есть список [[Hammer Object Properties Dialog#Flags Tab|флагов]] {{en}}, которые позволять триггеру быстро фильтровать без дополнительного энтити.
; Filter Flags: Есть список {{L|Hammer Object Properties Dialog#Flags Tab|флагов}} , которые позволять триггеру быстро фильтровать без дополнительного энтити.
; <code>OnStartTouch</code>
; <code>OnStartTouch</code>
; <code>OnEndTouch</code>
; <code>OnEndTouch</code>
: Вывод происходит, когда любое энтити заходит в триггер или выходит из него. Этот энтити будет числится, как {{ent:ru|Targetname#Keywords|alt=!caller}}.
: Вывод происходит, когда любое энтити заходит в триггер или выходит из него. Этот энтити будет числится, как {{L|Targetname#Keywords|!caller}}.
; <code>OnStartTouchAll</code>
; <code>OnStartTouchAll</code>
; <code>OnEndTouchAll</code>
; <code>OnEndTouchAll</code>
Line 20: Line 20:
; <code>OnTouching</code>
; <code>OnTouching</code>
; <code>OnNotTouching</code>
; <code>OnNotTouching</code>
: Один из выводов будет запущен в ответ на <code>TouchTest</code> ввод. Все триггеры имеют эту команду, однако, немногие из них имеют эту команду в списке. [[FGD]] {{en}}.
: Один из выводов будет запущен в ответ на <code>TouchTest</code> ввод. Все триггеры имеют эту команду, однако, немногие из них имеют эту команду в списке. {{L|FGD}} .
; <code>OnTrigger</code>: Срабатывает всякий раз, когда энтити соответствует всем критериям триггера.
; <code>OnTrigger</code>: Срабатывает всякий раз, когда энтити соответствует всем критериям триггера.
{{warning|Для <tt>trigger_once</tt>, вывод '''''не''''' похож на <code>OnStartTouch</code> и <tt>OnStartTouchAll</tt>. Когда триггер, который не восстанавливается активен, он удалит себя с карты через 0.1 секунду. <code>OnStartTouch</code> может быть активирован в этом промежутке.}}
{{warning|Для <tt>trigger_once</tt>, вывод '''''не''''' похож на <code>OnStartTouch</code> и <tt>OnStartTouchAll</tt>. Когда триггер, который не восстанавливается активен, он удалит себя с карты через 0.1 секунду. <code>OnStartTouch</code> может быть активирован в этом промежутке.}}
Line 27: Line 27:
* {{L|Brush entity|Браш-энтити}}
* {{L|Brush entity|Браш-энтити}}
* {{L|Inputs and Outputs|Inputs и Outputs}}
* {{L|Inputs and Outputs|Inputs и Outputs}}
* [[:Category:Filters|Фильры]] {{en}}
* {{LCategory|Filters|Фильры}}  
* {{L|Special:PrefixIndex/trigger}}
* {{L|Special:PrefixIndex/trigger}}
* <tt>showtriggers_toggle</tt>, консольная команда, которая позволяет видеть триггер-браши.
* <tt>showtriggers_toggle</tt>, консольная команда, которая позволяет видеть триггер-браши.


== Программирование ==
== Программирование ==
Все энтити могут отвечать на соприкосновение с другими энтити (смотрите {{ent:ru|Touch()}}). Если вы хотите соприкосновения без коллизии, то у вас есть два выбора:
Все энтити могут отвечать на соприкосновение с другими энтити (смотрите {{L|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|коробки коллизии]] {{en}} с помощью iBloatSize юнитов в X/Y и (iBloatSize/2) в +Z (-Z остается прежним). Триггер-бокс выравнен миром и будет работать независимо от твёрдости объекта и его группы коллизии. Он будет видим, как светящаяся, голубая коробочка, когда консольная команда <code>ent_bbox</code> использована.
: Энтити будет иметь триггер-бокс который продлевает его {{L|bounding box|коробки коллизии}} с помощью iBloatSize юнитов в X/Y и (iBloatSize/2) в +Z (-Z остается прежним). Триггер-бокс выравнен миром и будет работать независимо от твёрдости объекта и его группы коллизии. Он будет видим, как светящаяся, голубая коробочка, когда консольная команда <code>ent_bbox</code> использована.
: Valve использует триггер-бокс для всех предметов. Их  Их размер коллизии составляет 24, довольно большая цифра.
: Valve использует триггер-бокс для всех предметов. Их  Их размер коллизии составляет 24, довольно большая цифра.


=== Браш ===
=== Браш ===
Что-бы сделать новый триггер-браш, который использует форму его браша заместо коробки коллизии, нужно взять <code>CBaseTrigger</code> и вызвать<code>InitTrigger()</code>.
Что-бы сделать новый триггер-браш, который использует форму его браша заместо коробки коллизии, нужно взять <code>CBaseTrigger</code> и вызвать<code>InitTrigger()</code>.
[[Category:Glossary:ru|Глоссарий]][[Category:Level Design:ru|Создание уровней]][[Category:Programming:ru|Программирование]]
{{ACategory|Glossary|Глоссарий}}
{{ACategory|Level Design|Создание уровней}}
{{ACategory|Programming|Программирование}}

Latest revision as of 22:10, 13 June 2025

English (en)Русский (ru)中文 (zh)Translate (Translate)

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

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

tools/toolstrigger

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

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

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

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

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

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

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

Браш

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