Ru/Triggers: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
(Created page with "'''Triggers''' are entities which respond to the presence of other entities. Trigger brushes can be created by mappers, while programmers can make anything into a t...")
 
(первая версия перевода)
Line 1: Line 1:
'''Triggers''' are [[entity|entities]] which respond to the presence of other entities. Trigger brushes can be created by mappers, while programmers can make anything into a trigger.
{{otherlang2
|en = Triggers
}}
'''Триггеры''' - [[entity|энтити]], которые отвечают на запросы других энтити. Триггеры-браши могут быть созданы картоделами, а программисты могут сделать что угодно их триггеров.


== Level design ==
== Картостроение ==


[[File:Toolstrigger.gif|right|tools/toolstrigger]]
[[File:Toolstrigger.gif|right|tools/toolstrigger]]


There are many types of [[brush entity]] trigger that can be created from within Hammer; see [[Special:PrefixIndex/trigger]] for the complete list.
Существует много типов триггеров-брашей, которые могут быть созданы в редакторе карт Hammer; просмотрите [[Special:PrefixIndex/trigger]] для полного списка.


The most common general-purpose ones are '''[[trigger_once]], [[trigger_multiple]], [[trigger_look]] and [[trigger_proximity]]'''. They all share these properties and outputs:
Одни из самых главных триггеров-брашей это '''[[trigger_once]], [[trigger_multiple]], [[trigger_look]] and [[trigger_proximity]]'''. У них всех одинаковые свойства и выводы:


; Tools/ToolsTrigger
; Tools/ToolsTrigger
: All trigger entities must use this material on all faces.
: Каждый триггер должен использовать один материал.
; Filters
; Filters
: [[Filters|Filter entities]] can be used to restrict what activates the trigger.
: [[Filters|Энтити-фильтры]] могут быть использованы для определения, что должен активировать триггер.
; Filter Flags
; Filter Flags
: There are a series of [[Hammer Object Properties Dialog#Flags Tab|flags]] that permit simple filtering without the need of a second entity.
: Есть список [[Hammer Object Properties Dialog#Flags Tab|флагов]], которые позволять триггеру быстро фильтровать без дополнительного энтити.
; <code>OnStartTouch</code>
; <code>OnStartTouch</code>
; <code>OnEndTouch</code>
; <code>OnEndTouch</code>
: Outputs called whenever a entity matching all filters enters/leaves the trigger, regardless of whether it has passed any further tests. The entity that entered or left is the [[Targetname#Keywords|!caller]].
: Вывод происходит, когда любое энтити заходит в триггер или выходит из него. Этот энтити будет числится, как [[Targetname#Keywords|!caller]].
; <code>OnStartTouchAll</code>
; <code>OnStartTouchAll</code>
; <code>OnEndTouchAll</code>
; <code>OnEndTouchAll</code>
: As above, but only called if there are no other (filtered) entities touching the trigger.
: Вывод происходит, как с выше перечисленным, но только, если отфильтрованные энтити не касаются триггера.
; <code>OnTouching</code>
; <code>OnTouching</code>
; <code>OnNotTouching</code>
; <code>OnNotTouching</code>
: One of these outputs will be fired in response to the <code>TouchTest</code> input. All triggers support this, but most do not have it listed in their [[FGD]].
: Один из выводов будет запущен в ответ на <code>TouchTest</code> ввод. Все триггеры имеют эту команду, однако, немногие из них имеют эту команду в списке.[[FGD]].
; <code>OnTrigger</code>
; <code>OnTrigger</code>
: Fires whenever an entity matches all of the trigger's criteria.
: Срабатывает всякий раз, когда энтити соответствует всем критериям триггера.
{{warning|For a trigger_once, this output is '''''not''''' the same as <code>OnStartTouch</code> and <code>OnStartTouchAll</code>. When a trigger that does not reset is activated, it removes itself from the map after 0.1 seconds. <code>OnStartTouch</code> can still be re-triggered during that 0.1 second window.}}
{{warning|Для trigger_once, вывод '''''не''''' похож на <code>OnStartTouch</code> и <code>OnStartTouchAll</code>. Когда триггер, который не восстанавливается активен, он удалит себя с карты через 0.1 секунду. <code>OnStartTouch</code> может быть активирован в этом промежутке.}}


=== See also ===
=== Смотрите также ===


* [[Brush entity]]
* [[Браш-энтити]]
* [[Inputs and Outputs]]
* [[Вводы и выводы]]
* [[Filters]]
* [[Фильтры]]
* [[Special:PrefixIndex/trigger]]
* [[Специальное:PrefixIndex/trigger]]
* <code>showtriggers_toggle</code>, a console command to make trigger brushes visible
* <code>showtriggers_toggle</code>, консольная команда, которая позволяет видеть триггер-браши.


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


All entities can respond to collisions with other entities (see <code>[[Touch()]]</code>). If you want touches without actual collisions, then you have two options:
Все энтити могут отвечать на соприкосновение с другими энтити (смотрите <code>[[Touch()]]</code>). Если вы хотите соприкосновения без коллизии, то у вас есть два выбора:


; <code>SetSolid(SOLID_NONE)</code> <span style="font-weight:normal;">and</span> <code>AddSolidFlags(FSOLID_TRIGGER)</code>
; <code>SetSolid(SOLID_NONE)</code> <span style="font-weight:normal;">и</span> <code>AddSolidFlags(FSOLID_TRIGGER)</code>
: This will cause the entity to receive touches as things pass through it.
: Энтити будет отвечать на соприкосновения с вещами, которые походят через него.
; <code>CollisionProp()->UseTriggerBounds(true,iBloatSize)</code>
; <code>CollisionProp()->UseTriggerBounds(true,iBloatSize)</code>
: This will give the entity a "trigger box" that extends around its [[bounding box]] by iBloatSize units in X/Y and (iBloatSize/2) in +Z (-Z remains the same). The trigger box is world aligned and will work regardless of the object's solidity and collision group. It will be visible as a light blue box when the <code>ent_bbox</code> console command is used.
: Энтити будет иметь триггер-бокс который продлевает его [[bounding box|коробки коллизии]] с помощью iBloatSize юнитов в X/Y и (iBloatSize/2) в +Z (-Z остается прежним). Триггер-бокс выравнен миром и будет работать независимо от твёрдости объекта и его группы коллизии. Он будет видим, как светящаяся, голубая коробочка, когда консольная команда <code>ent_bbox</code> использована.
: Valve use trigger boxes for all pickup items. Their bloat size is 24, a surprisingly large figure.
: Valve использует триггер-бокс для всех предметов. Их  Их размер коллизии составляет 24, довольно большая цифра.


=== Brush ===
=== Браш ===


To make a new brush trigger, which tests using the shape of its brush model instead of a bounding box, inherit from <code>[[CBaseTrigger]]</code> and call <code>InitTrigger()</code>.
Что-бы сделать новый триггер-браш, который использует форму его браша заместо коробки коллизии, нужно взять <code>[[CBaseTrigger]]</code> и вызвать<code>InitTrigger()</code>.


[[Category:Level Design]]
[[Category:Level Design]]
[[Category:Programming]]
[[Category:Programming]]
[[Category:Glossary]]
[[Category:Glossary]]

Revision as of 08:45, 16 January 2021

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

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

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().