User Inputs and Outputs

Система пользовательских Input-Output


Input'ы вида FireUser1/4 и Output'ы вида OnUser1/4 доступны абсолютно во всех entity-объектах имеющихся во вселенной Source-игр. Это новый набор элементов управления, специально созданный для совместной работы. Широко применения они, как правило, не имеют, но способны сильно облегчить определенные задачи.
Output OnUser№ - хранит действие, которое не выполняется, пока на вход entity на поступит соответствующий по номеру Input FireUser№. Фактически, данный набор команд превращает любую entity в посредника между активатором и его целью с возможностью корректировки команды.


Пример применения №1


Изучить это, можно на примере исходника карты sdk_d3_citadel.vmf из Half-Life 2: Episode One. Лежит он в этой папке:
Папка с исходниками


Как видно, func_tracktrain (zapperpod1_train) и прикрепленная к нему func_door_rotating (zapperpod1_rotator) движутся по цепочке path_track (pod_bay_zapper_track).
Entity-объект func_tracktrain, в своей вкладке "Output" содержит 2 команды:
Output


Как вы можете видеть, при получении извне команды FireUser1, данная entity отдает две команды fubc_door_rotating. Первая команда открывает дверь, вторая - закрывает эту же дверь после пятисекундной паузы. Запускается эта связка одним из path_track, а именно - pod_bay_zapper_track4.
Output


То есть, мы получаем цикличную систему минимальными усилиями. Когда func_tracktrain проходит pod_bay_zapper_track4, данный path_track становится активатором команды FireUser1, которая и запускает все выше перечисленное.


Пример применения №2


Еще один пример, мы можем рассмотреть на карте d2_coast_08 из оригинальной игры Half-Life 2. В данном случае, используется logic_auto, который активирует три entity npc_seagull с одной и той же командой - лететь. Большинство мапперов, решили бы этот вопрос каскадом индивидуальных команд, но используя "систему пользовательских Input-Output" все это решается одной командой - FireUser1.

"origin" "3349.73 -2612.79 1033"
"spawnflags" "1"
"classname" "logic_auto"
Output


"origin" "3328 -2688 2177"
"targetname" "seagull"
"spawnflags" "4"
"classname" "npc_seagull"
Output


"origin" "3319.87 -2531.21 2177"
"targetname" "seagull"
"spawnflags" "4"
"classname" "npc_seagull"
Output


"origin" "3191.87 -2531.21 2177"
"targetname" "seagull"
"spawnflags" "4"
"classname" "npc_seagull"
Output


Как видите, в данном случае "система пользовательских Input-Output" существенно упростила задачу. Гениальностью этой системы является то, что одной командой, вы вызываете у каждого адресата индивидуальную реакцию. Первая чайка, полетит в path_track "bird_flightpath_a_48" сразу же после получения команды. Вторая чайка, повторит маршрут, но с задержкой в двенадцать секунд. Третья чайка, так же выждет двенадцать секунд, но полетит уже к другому path_track - "bird_flightpath_a_10". И все это, было вызвано одной командой и общим targetname для трех entity.

Комментариев 0

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.