Ru/User Inputs and Outputs: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
mNo edit summary
 
m (obsolete language category)
 
(11 intermediate revisions by 7 users not shown)
Line 1: Line 1:
The '''FireUser1-4''' inputs and '''OnUser1-4''' outputs are available on every entity that can receive [[Inputs and Outputs]]. This set of controls are specially linked to work together. Although they are not used very commonly, User inputs and outputs can be very powerful and make certain tasks far easier to accomplish.
{{lang|User Inputs and Outputs|title=Пользовательские Входы и выходы}}
Входы '''FireUser1-4''' и выходы '''OnUser1-4''' доступны на всех объектах, которые могут получать {{L|Inputs_and_Outputs|Inputs and Outputs}}. Этот набор элементов управления специально связан с совместной работой. Хотя они не используются очень часто, пользовательские входы и выходы могут быть очень мощными инстрементом и выполнять определенные задачи намного легче.


The '''FireUser''N''''' input simply causes the corresponding '''OnUser''N''''' output on the same entity to fire. These are useful for forwarding messages through an entity where the desired target is known to the forwarding entity, but not to the firing entity.
Вывод '''OnUserN''' просто сохраняет действие, которое не выполняется до тех пор, пока оно не будет активировано соответствующим входом '''FireUserN'''. Они полезны для пересылки сообщений через сущность, где желаемая цель известна транспортному объекту, но не для объекта обжига(может имеется ввиду действия (sadface)).


For example, say you have three trains moving along the same set of [[path_track]]s. Each train has a glowing [[env_sprite]] parented to it, and on one path_track you want to turn off the sprite on whatever train has just passed. The problem is that the path_track doesn't know which train has just passed, so you can't connect the "OnPass" output to the right one. So, you solve this by connecting the path_track's "OnPass" output to the <code>[[!activator]]</code> (the train) '''FireUser1''' input, and then connect each train's '''OnUser1''' input to turn off their parented sprite.
Пример можно найти на карте Valve, "sdk_d3_citadel_01.vmf", найденной в папке "sourcesdk_content\hl2\mapsrc". {{L|func_tracktrain}} (zapperpod1_train) с родительским движком {{L|func_door_rotating}} (zapperpod1_rotator), перемещающимся вдоль {{L|path_track}} (pod_bay_zapper_track).
:&nbsp;


In the past, you could hack around this kind of thing by putting a [[trigger_multiple]] for every train on the path_track, set them to only trigger when the matching train touches them, and use the "OnStartTouch" output to turn off the sprite. Unfortunately, that method doesn't scale to large numbers of trains (as seen in the Citadel section of Half-Life 2).
На вкладке «Outputs» объекта «func_tracktrain» есть две настройки:


[[Category:Level Design]]
:{| border=1 cellpadding="2" cellspacing="1"
|- align=left style="background:#DCDCDC; color:black"
!
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once
|-
| [[File:Io11.png]] || OnUser1 || zapperpod1_rotator || Open || &nbsp; || 0.00 || No
|-
| [[File:Io11.png]] || OnUser1 || zapperpod1_rotator || Close || &nbsp; || 5.00 || No
|}
:&nbsp;
 
Таким образом, в основном, когда '''User1''' удален, "func_door_rotating" откроется и после 5-секундной задержки закроется. Чтобы запустить этот вывод, один из объектов "path track", "pod_bay_zapper_track4", имеет выход:
 
:{| border=1 cellpadding="2" cellspacing="1"
|- align=left style="background:#DCDCDC; color:black"
!
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once
|-
| [[File:Io12.png]] || OnPass || !activator || FireUser1 || &nbsp; || 0.10 || No
|}
 
Когда "func_tracktrain" передает объект "path track", он становится '''!activator''' И его '''User1''', указанный выше, запускается.
 
== Другой пример ==
 
Вот еще один пример из  Half-Life 2 карта "d2_coast_08":
 
<code>{{L|logic_auto}}</code> используется, чтобы сообщить 3 <code>{{L|npc_seagull}}</code> с тем же целевым именем, чтобы улететь. Большинство преобразователей будут указывать каждый вывод отдельно, но с использованием пользовательских входов и выходов, картограф здесь смог сделать все это с одним выходом FireUser1, как показано ниже:
:&nbsp;
:"origin" "3349.73 -2612.79 1033"
:"spawnflags" "1"
:"classname" "logic_auto"
:{| border=1 cellpadding="2" cellspacing="1"
|- align=left style="background:#DCDCDC; color:black"
!
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once
|-
| [[File:Io11.png]] || OnMapSpawn || seagull || FireUser1 || &nbsp; || 0 || No
|}
:&nbsp;
:"origin" "3328 -2688 2177"
:"targetname" "seagull"
:"spawnflags" "4"
:"classname" "npc_seagull"
:{| border=1 cellpadding="2" cellspacing="1"
|- align=left style="background:#DCDCDC; color:black"
!
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once
|-
| [[File:Io12.png]] || OnUser1 || !self || FlyAway || bird_flightpath_a_48 || 0 || No
|}
:&nbsp;
:"origin" "3319.87 -2531.21 2177"
:"targetname" "seagull"
:"spawnflags" "4"
:"classname" "npc_seagull"
:{| border=1 cellpadding="2" cellspacing="1"
|- align=left style="background:#DCDCDC; color:black"
!
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once
|-
| [[File:Io12.png]] || OnUser1 || !self || FlyAway || bird_flightpath_a_48 || 12 || No
|}
:&nbsp;
:"origin" "3191.87 -2531.21 2177"
:"targetname" "seagull"
:"spawnflags" "4"
:"classname" "npc_seagull"
:{| border=1 cellpadding="2" cellspacing="1"
|- align=left style="background:#DCDCDC; color:black"
!
! My Output > !! Target Entity !! Target Input !! Parameter !! Delay !! Only Once
|-
| [[File:Io12.png]] || OnUser1 || !self || FlyAway || bird_flightpath_a_10 || 12 || No
|}
:&nbsp;
 
В этом случае FireUser1/Onuser1 не требовался, но это упростило задачу. Гениальность системы заключается в том, что вы можете сказать каждой чайке о чем-то отдельном. Первая чайка летит в bird_flightpath_a_48 без задержки.Вторая чайка летит к тому же пути, но ждет 12 секунд что бы сделать этого. Последний также ждет 12 секунд, но летает на другой путь bird_flightpath_a_10. Все это выполняется с использованием одного выхода и одного {{L|targetname}} для трех объектов.
 
== See also ==
* {{L|AddOutput}}
 
{{ACategory|Level Design}}{{ACategory|IO System}}[[Category:Russian]]

Latest revision as of 04:08, 22 August 2024

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

Входы FireUser1-4 и выходы OnUser1-4 доступны на всех объектах, которые могут получать Inputs and Outputs(en). Этот набор элементов управления специально связан с совместной работой. Хотя они не используются очень часто, пользовательские входы и выходы могут быть очень мощными инстрементом и выполнять определенные задачи намного легче.

Вывод OnUserN просто сохраняет действие, которое не выполняется до тех пор, пока оно не будет активировано соответствующим входом FireUserN. Они полезны для пересылки сообщений через сущность, где желаемая цель известна транспортному объекту, но не для объекта обжига(может имеется ввиду действия (sadface)).

Пример можно найти на карте Valve, "sdk_d3_citadel_01.vmf", найденной в папке "sourcesdk_content\hl2\mapsrc". func_tracktrain(en) (zapperpod1_train) с родительским движком func_door_rotating(en) (zapperpod1_rotator), перемещающимся вдоль path_track(en) (pod_bay_zapper_track).

 

На вкладке «Outputs» объекта «func_tracktrain» есть две настройки:

My Output > Target Entity Target Input Parameter Delay Only Once
Io11.png OnUser1 zapperpod1_rotator Open   0.00 No
Io11.png OnUser1 zapperpod1_rotator Close   5.00 No
 

Таким образом, в основном, когда User1 удален, "func_door_rotating" откроется и после 5-секундной задержки закроется. Чтобы запустить этот вывод, один из объектов "path track", "pod_bay_zapper_track4", имеет выход:

My Output > Target Entity Target Input Parameter Delay Only Once
Io12.png OnPass !activator FireUser1   0.10 No

Когда "func_tracktrain" передает объект "path track", он становится !activator И его User1, указанный выше, запускается.

Другой пример

Вот еще один пример из Half-Life 2 карта "d2_coast_08":

logic_auto(en) используется, чтобы сообщить 3 npc_seagull(en) с тем же целевым именем, чтобы улететь. Большинство преобразователей будут указывать каждый вывод отдельно, но с использованием пользовательских входов и выходов, картограф здесь смог сделать все это с одним выходом FireUser1, как показано ниже:

 
"origin" "3349.73 -2612.79 1033"
"spawnflags" "1"
"classname" "logic_auto"
My Output > Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn seagull FireUser1   0 No
 
"origin" "3328 -2688 2177"
"targetname" "seagull"
"spawnflags" "4"
"classname" "npc_seagull"
My Output > Target Entity Target Input Parameter Delay Only Once
Io12.png OnUser1 !self FlyAway bird_flightpath_a_48 0 No
 
"origin" "3319.87 -2531.21 2177"
"targetname" "seagull"
"spawnflags" "4"
"classname" "npc_seagull"
My Output > Target Entity Target Input Parameter Delay Only Once
Io12.png OnUser1 !self FlyAway bird_flightpath_a_48 12 No
 
"origin" "3191.87 -2531.21 2177"
"targetname" "seagull"
"spawnflags" "4"
"classname" "npc_seagull"
My Output > Target Entity Target Input Parameter Delay Only Once
Io12.png OnUser1 !self FlyAway bird_flightpath_a_10 12 No
 

В этом случае FireUser1/Onuser1 не требовался, но это упростило задачу. Гениальность системы заключается в том, что вы можете сказать каждой чайке о чем-то отдельном. Первая чайка летит в bird_flightpath_a_48 без задержки.Вторая чайка летит к тому же пути, но ждет 12 секунд что бы сделать этого. Последний также ждет 12 секунд, но летает на другой путь bird_flightpath_a_10. Все это выполняется с использованием одного выхода и одного targetname(en) для трех объектов.

See also