Difference between revisions of "Inputs and Outputs:ru"

From Valve Developer Community
Jump to: navigation, search
m (Отладка)
m (исправление мелких ошибок)
Line 1: Line 1:
 
{{TranslationUpdate}}
 
{{TranslationUpdate}}
  
Одно из наиболее главных изменений для создания карт для движка Source были энтити I/O. Тогда как в старой версии движка полагались на ключевые поля <code>target</code> и <code>targetname</code> отправляли простой импульс энтити, система I/O энтити позволяет более сложное взаимодействие между энтитями. Это делается используя энтити <i>inputs</i> и <i>outputs</i>, которые связаны <i>соединениями</i>. Используя этот простой метод, энтити могут легко переключать события основанные на изменениях состояния и работает в тандеме с другими энтитями в более крошечном, логическом и мощном пути который ранее был возможен.
+
Одно из наиболее главных изменений для создания карт для движка Source были энтити I/O. Тогда как в старой версии движка полагались на ключевые поля <code>target</code> и <code>targetname</code>,которые отправляли простой импульс энтити, система I/O энтити позволяет более сложное взаимодействие между энтитями. Это делается с помощью ''input'ов'' и ''output'ов'', между которыми есть ''связи''. Используя этот простой метод, энтити могут легко переключать события, основанные на изменениях состояния, и работать с связке с другими энтитями в более крошечном, логическом и мощном пути, который ранее был невозможен.
  
 
==Обзор==
 
==Обзор==
  
Энтити содержат два метода для связи: отправляя <i>output</i> другой энтити, или получая <i>input</i> из другой энтити. Одна энтити может отправить output когда она убита другой энтити input который приведет к изменению цвета. Тот же output может использоваться для переключения spawning input другой энтити. Output'ы сопоставляются с input'ами через <i>соединения</i>, которые управляют какие дополнительные данные пересылаются получателю, как долго они задерживаются до того как output получены, и должено ли быть позволено output отправлять повторно позже. Output'ы могуть связаны с любыми input и наоборот. Это позволяет сложные и мощные взаимодействия между энтитями.
+
Энтити содержат два метода для связи: отправляя <i>output</i> другой энтити, или получая <i>input</i> из другой энтити. Одна энтити может отправить output, когда она убита другой энтити, input которой приведет к изменению цвета. Тот же output может использоваться для активации input'а создания('''Spawning''') другой энтити. Output'ы сопоставляются с input'ами через <i>соединения</i>, которые определяют, какие дополнительные данные пересылаются получателю, как долго они задерживаются до того как output получены, и должно ли быть позволено output отправлять запрос позже. Output'ы могуть связаны с любыми input и наоборот. Это позволяет создавать сложные и мощные взаимодействия между энтитями.
  
Например, энтить <code>[[logic_timer]]</code> может отправитьe <code>OnTimer</code> output, которая сработает когда временное событие сработает для энтити. Output может быть обработан <code>Show</code> input в <code>[[env_sprite]]</code>, что сделает видимой когда таймер достигнет его назначенного времени. Вы также можете обработать <code>OnTimer</code> output для <code>[[logic_timer]]</code> привязав к <code>SparkOnce</code> input энтити <code>[[env_spark]]</code> что приведет к испусканию искр. Используя свойства соединения, вы также можете сделать чтоб output срабатывал после двух секундной задержки или сработавала только однажды.
+
Например, энтити <code>[[logic_timer]]</code> может отправить <code>OnTimer</code> output, которая сработает, когда временное событие сработает для энтити. Output может быть обработан input'ом <code>Show</code> в энтити<code>[[env_sprite]]</code>, что сделает её видимой, когда таймер достигнет его назначенного времени. Вы также можете обработать <code>OnTimer</code> output того же таймера (<code>[[logic_timer]]</code>), привязав к input'у <code>SparkOnce</code> энтити <code>[[env_spark]]</code>, что приведет к испусканию искр. Используя свойства соединения, вы также можете сделать, чтобы output срабатывал после двухсекундной задержки или только один раз.
  
Для пользователей наиболее близкий с оригинальным Half-Life метод связи энтитей, поля <code>targetname</code> и <code>target</code> теперь устарели, и I/O система энтитей обладает расширенной функциональностью. Вместо использования энтити <code>[[trigger_multiple]]</code> только срабатывающей для одной энтити назначения, теперь можно использовать любое кол-во его output'ов чтобы делать тоже, включая: <code>OnStartTouch</code>, <code>OnEndTouch</code>, <code>OnTouch</code> и т.д. Эти output'ы могут быть подсоединены к произвольному числу энтитей, с уникальной задержкой на output, делающие <i>мульти-менеджеры</i> устарелыми. Так же поле <code>killtarget</code> теперь заменено соединением output'а <code>Kill</code> к input'у другой энтити.
+
Для пользователей, использовавших метод связи энтитей оригинального Half-Life , поля <code>targetname</code> и <code>target</code> теперь устарели, и I/O система энтитей обладает расширенной функциональностью. Вместо использования энтити <code>[[trigger_multiple]]</code>, только срабатывающей для одной энтити назначения, теперь можно использовать любое кол-во его output'ов, чтобы делать то же, включая: <code>OnStartTouch</code>, <code>OnEndTouch</code>, <code>OnTouch</code> и т.д. Эти output'ы могут быть подсоединены к произвольному числу энтитей, с уникальной задержкой на output, делающие ''мульти-менеджеры'' устарелыми. Также поле <code>killtarget</code> теперь заменено соединением output'а <code>Kill</code> к input'у другой энтити.
  
 
==Output'ы==
 
==Output'ы==
Line 15: Line 15:
 
[[Image:hammer_entityio1.jpg|right]]
 
[[Image:hammer_entityio1.jpg|right]]
  
Output'ы - это события которые срабатывают когда изменяется состояние энтити. Это может быть таймер достигнувший конца, нажатая кнопка или дверь которая закрылась. Любое кол-во output'ов может быть указано программистом внутри энтити срабатываемых при любом кол-ве критерий. Output'ы указываются на вкладке '''Outputs''' свойств энтити. Вкладка '''Outputs''' диалога [[Hammer Object Properties Dialog|Свойства объекта]] отображает все output'ы связывающие энтитю с другой энтитей.
+
Output'ы - это события, которые срабатывают, когда изменяется состояние энтити. Это может быть таймер, достигнувший конечного значения, нажатая кнопка или дверь, которая закрылась. Любое кол-во output'ов может быть указано программистом внутри энтити, срабатываемых при любом кол-ве критериев. Output'ы указываются на вкладке '''Outputs''' свойств энтити. Вкладка '''Outputs''' диалога [[Hammer Object Properties Dialog|Свойства объекта]] отображает все output'ы, связывающие энтитю с другой энтитей.
  
 
# Имя срабатываемого output'а.
 
# Имя срабатываемого output'а.
# Имя энтити получаемой output (щелкните на этитю с помощью инструмента Eye Dropper чтобы вставить его имя сюда).
+
# Имя энтити получаемой output (щелкните на этитю с помощью инструмента Eye Dropper, чтобы вставить его имя сюда).
# Введите в другой энтите которая получит output. Вы должны выбрать какое действие целевой энтити должно активировать output. К примеру, если вы хотите чтоб солдат [[npc_combine_s]] спускался на веревке, вы должны тспользовать BeginRappel input.
+
# Введите в другой энтите, которая получит output. Вы должны выбрать, какое действие целевой энтити должно активировать output. К примеру, если вы хотите, чтобы солдат [[npc_combine_s]] спускался на веревке, вы должны использовать Input '''BeginRappel'''.
# Используется перегрузка параметра если данные приняты input'ом назначения. Чаще это число используемое input функцией (смотрите секцию Input'ов ниже).
+
# Используется перегрузка параметра, если данные приняты input'ом назначения. Чаще это число, используемое input функцией (смотрите секцию Input'ов ниже).
# Установите задержку отправки output'а (в секундах). 1/10 секунды записывается как "0.1" сенкунд.
+
# Установите задержку отправки output'а (в секундах). 1/10 секунды записывается как "0.1" сек.
 
# Срабатывает ли output единожды.
 
# Срабатывает ли output единожды.
  
 
===Пример output'ов===
 
===Пример output'ов===
 
* '''OnTrigger''' - Когда энтитя пересекается, она генерирует этот output.
 
* '''OnTrigger''' - Когда энтитя пересекается, она генерирует этот output.
* '''OnMapSpawn''' - Когда карту загружена, этот output срабатывет.<br style="clear:both">
+
* '''OnMapSpawn''' - Когда карту загружена, этот output срабатывает.<br style="clear:both">
  
 
==Input'ы==
 
==Input'ы==
Line 32: Line 32:
 
[[Image:hammer_entityio2.jpg|right]]
 
[[Image:hammer_entityio2.jpg|right]]
  
Input'ы подсоединяются к output'ам любого типа. Здесь мы видим вкладку '''Inputs''' диалога [[Hammer Object Properties Dialog|Свойства объекта]]. Она отображаеты все output'ы которые подсоединены из других энтитей к этой энтити.
+
Input'ы присоединяются к output'ам любого типа. Здесь мы видим вкладку '''Inputs''' диалога [[Hammer Object Properties Dialog|Свойства объекта]]. Она отображаеты все output'ы, которые подсоединены из других энтитей к этой энтити.
  
Так как любой output может быть подсоединен к любому input'у, это множество комбинаций может быть использовано для создания сложных взаимодействий. Таймеры могут создавать последовательность обратного отсчета используя мигающие спрайты, звуки и специальные эффекты всё это без какой либо ниобходимости специальных энтитей. Щелкнув на кнопку '''Mark''' или два раза щелкнув на запись в списке, пользователь может прейти к энтити отправляющей output в данный input.
+
Так как любой output может быть подсоединен к любому input'у, это множество комбинаций может быть использовано для создания сложных взаимодействий. Таймеры могут создавать последовательность обратного отсчета, используя мигающие спрайты, звуки и специальные эффекты, - и всё это без дополнительных энтитей. Щелкнув на кнопку '''Mark''' или два раза щелкнув на записи в списке, пользователь может перейти к энтити, отправляющей output в данный input.
  
Если соединение отображается красным, оно неправильно. Это означает что output не существует в исходной энтити или input не существует в энтити назначения. Неправильное соединение не смертельно но должно быть устранено до компиляции карты так как команда меню [[Hammer_Check_For_Problems_Dialog|Check For Problems]] выдаст это как ошибку.<br style="clear:both">
+
Если соединение отображается красным, оно неправильно. Это означает, что output не существует в исходной энтити или input не существует в энтити назначения. Неправильное соединение не смертельно, но должно быть устранено до компиляции карты, так как команда меню [[Hammer_Check_For_Problems_Dialog|Check For Problems]] выдаст это как ошибку.<br style="clear:both">
  
 
==Output'ы со значениями==
 
==Output'ы со значениями==
  
Очень мало output'ов которые возвращают значения. К примеру [[math_counter]]'а '''OutValue''' output. Эти output'ы привязаны к input'ам которые требуют параметр и будут заполнять значение для этого параметра когда сработает. К примеру, для [[math_counter]] может быть следующий input: <code>OutValue mover SetPosition &lt;none&gt;</code> где ''mover'' это [[func_movelinear]]. Позиция ''mover'' может быть изменена с помощью простых арифметических операций [[math_counter]]'а.
+
Очень мало output'ов, которые возвращают значения. К примеру [[math_counter]]'а '''OutValue''' output. Эти output'ы привязаны к input'ам, которые требуют параметр и будут заполнять значение для этого параметра когда сработает. К примеру, для [[math_counter]] может быть следующий input: <code>OutValue mover SetPosition &lt;none&gt;</code> где ''mover'' это [[func_movelinear]]. Позиция ''mover'' может быть изменена с помощью простых арифметических операций [[math_counter]]'а.
 
 
<!--
 
== Setting up a simple trigger ==
 
This is an example of how to make a simple trigger using inputs and outputs, so a sound is played when the player enters a specific area.
 
Open up a map and add an [[ambient_generic]] (naming it "ambient_1"). Go into its properties and choose a sound file for it to play, and in its flags make sure it starts "Off". Select the "toolstrigger" texture and create a cube brush with this texture. Right-click on this brush and using the "[[Brush entity|Tie to Entity]]" command, make it into a <code>trigger_once</code> entity. Go to the outputs tab and click the "Add..." button.
 
Set "My output named" to "<code>OnStartTouch</code>". This causes the output (and thus the trigger) to occur when the player starts touching this brush in the game.
 
Set "Targets entities named" to "ambient_1" using the pull-down arrow. This makes the trigger output target the <code>ambient_generic</code> you placed earlier.
 
Set "Via this input" to "<code>PlaySound</code>". This chooses the <code>PlaySound</code> action from the target <code>ambient_generic</code>'s list of actions, which of course causes its sound to start playing.
 
Click the "Apply" button to save your changes to the trigger, and close it. Now we have the trigger set up so that as soon as the player touches it, it sends a command to the <code>ambient_generic</code> which makes it start playing its sound.
 
-->
 
  
 
== Создание простого триггера ==
 
== Создание простого триггера ==
Line 68: Line 58:
  
 
Перед проверкой вашего триггера в игре, убедитесь, что все основные ентити и браши(точка старта игрока, освещение и т.п.) установлены, и вы задали звук для <code>ambient_generic</code>
 
Перед проверкой вашего триггера в игре, убедитесь, что все основные ентити и браши(точка старта игрока, освещение и т.п.) установлены, и вы задали звук для <code>ambient_generic</code>
<!--
 
If you open up the properties for the <code>ambient_generic</code>, you can see how the Output from the trigger has automatically been converted to an Input for the <code>ambient_generic</code>.
 
 
If you want to compile and test your new trigger, make sure you have all the basics (player start, lighting, etc) and have assigned a sound effect to the <code>ambient_generic</code>.
 
-->
 
  
 
==Отладка==
 
==Отладка==
Line 79: Line 64:
  
 
;<code>developer 0/1/2</code>
 
;<code>developer 0/1/2</code>
:Установив [[console variable|консольную переменную]] в значение "2", вы получите подробный отчет о том, как энтити взаимодействуют с помощью системы I/O энтитей. Это полезно для определения, какое точно цепочка событий занимает место в сложных взаимодействиях.
+
:Установив [[console variable|консольную переменную]] в значение "2", вы получите подробный отчет о том, как энтити взаимодействуют с помощью системы I/O энтитей. Это полезно для определения, какое точно место занимаетцепочка событий в сложных взаимодействиях.
 
;<code>ent_messages_draw 0/1</code>
 
;<code>ent_messages_draw 0/1</code>
:Установив [[console variable|консольную переменную]] в значение "1" отобразит визуальную информацию о том, как энтити взаимосвязаны между собой. Это очень похоже на использование [[console variable|консольной переменной]] developer, но иногда дает более быстрый и интуитивный результат.
+
:При значении "1", в игре будет отображаться визуальная информация о том, как энтити взаимосвязаны между собой. Это очень похоже на использование [[console variable|консольной переменной]] developer, но иногда дает более быстрый и интуитивный результат.
 
;<code>ent_fire <entity name> <input name> <input value></code>
 
;<code>ent_fire <entity name> <input name> <input value></code>
:Эта [[console command|консольная команда]] позволяет вам вручную срабатывать input'ы энтити из консоли. Это бывает очень полезно для тестирования настроек энтитей в реальном времени. Чтобы вызвать input под названием "Open"  для энтити с именем "testentity" с параметром input "3", вы должны ввести <code>ent_fire&nbsp;testentity&nbsp;open&nbsp;3</code>
+
:Эта [[console command|консольная команда]] позволяет вам вручную вызывать input'ы энтити из консоли. Это бывает очень полезно для тестирования настроек энтитей в реальном времени. Чтобы вызвать input под названием "Open"  для энтити с именем "testentity" с параметром input "3", вы должны ввести <code>ent_fire&nbsp;testentity&nbsp;open&nbsp;3</code>
 
;<code>ent_pause</code>
 
;<code>ent_pause</code>
 
:Эта [[command|команда]] приостанавливает энтити карты. Если мы введем снова, энтитям будет возвращено их обыкновенное поведение. Она наиболее полезна с использованием вместе с [[command|командой]] <code>ent_step</code>, описанной ниже.
 
:Эта [[command|команда]] приостанавливает энтити карты. Если мы введем снова, энтитям будет возвращено их обыкновенное поведение. Она наиболее полезна с использованием вместе с [[command|командой]] <code>ent_step</code>, описанной ниже.
 
;<code>ent_step <number of steps></code>
 
;<code>ent_step <number of steps></code>
:Когда используется вместе с [[console command|консольной командой]] <code>ent_pause</code> , эта [[command|команда]] позволяет пользователю замедлить шаги через которые цепочка энтитей исполняется для input'а и output'а. Любое кол-во шагов может быть выполнено в одно время, что указывается в значение введенным после [[command|команды]] (например <code>ent_step 3</code> исполнит 3 шага сразу же).
+
:Когда используется вместе с [[console command|консольной командой]] <code>ent_pause</code>, эта [[command|команда]] позволяет пользователю замедлить шаги, через которые цепочка энтитей исполняется для input'а и output'а. Любое кол-во шагов может быть выполнено в одно время, что указывается в значение введенным после [[command|команды]] (например <code>ent_step 3</code> исполнит 3 шага сразу же).
  
 
==Смотрите также==
 
==Смотрите также==

Revision as of 18:22, 16 May 2009


Одно из наиболее главных изменений для создания карт для движка Source были энтити I/O. Тогда как в старой версии движка полагались на ключевые поля target и targetname,которые отправляли простой импульс энтити, система I/O энтити позволяет более сложное взаимодействие между энтитями. Это делается с помощью input'ов и output'ов, между которыми есть связи. Используя этот простой метод, энтити могут легко переключать события, основанные на изменениях состояния, и работать с связке с другими энтитями в более крошечном, логическом и мощном пути, который ранее был невозможен.

Обзор

Энтити содержат два метода для связи: отправляя output другой энтити, или получая input из другой энтити. Одна энтити может отправить output, когда она убита другой энтити, input которой приведет к изменению цвета. Тот же output может использоваться для активации input'а создания(Spawning) другой энтити. Output'ы сопоставляются с input'ами через соединения, которые определяют, какие дополнительные данные пересылаются получателю, как долго они задерживаются до того как output получены, и должно ли быть позволено output отправлять запрос позже. Output'ы могуть связаны с любыми input и наоборот. Это позволяет создавать сложные и мощные взаимодействия между энтитями.

Например, энтити logic_timer может отправить OnTimer output, которая сработает, когда временное событие сработает для энтити. Output может быть обработан input'ом Show в энтитиenv_sprite, что сделает её видимой, когда таймер достигнет его назначенного времени. Вы также можете обработать OnTimer output того же таймера (logic_timer), привязав к input'у SparkOnce энтити env_spark, что приведет к испусканию искр. Используя свойства соединения, вы также можете сделать, чтобы output срабатывал после двухсекундной задержки или только один раз.

Для пользователей, использовавших метод связи энтитей оригинального Half-Life , поля targetname и target теперь устарели, и I/O система энтитей обладает расширенной функциональностью. Вместо использования энтити trigger_multiple, только срабатывающей для одной энтити назначения, теперь можно использовать любое кол-во его output'ов, чтобы делать то же, включая: OnStartTouch, OnEndTouch, OnTouch и т.д. Эти output'ы могут быть подсоединены к произвольному числу энтитей, с уникальной задержкой на output, делающие мульти-менеджеры устарелыми. Также поле killtarget теперь заменено соединением output'а Kill к input'у другой энтити.

Output'ы

Hammer entityio1.jpg

Output'ы - это события, которые срабатывают, когда изменяется состояние энтити. Это может быть таймер, достигнувший конечного значения, нажатая кнопка или дверь, которая закрылась. Любое кол-во output'ов может быть указано программистом внутри энтити, срабатываемых при любом кол-ве критериев. Output'ы указываются на вкладке Outputs свойств энтити. Вкладка Outputs диалога Свойства объекта отображает все output'ы, связывающие энтитю с другой энтитей.

  1. Имя срабатываемого output'а.
  2. Имя энтити получаемой output (щелкните на этитю с помощью инструмента Eye Dropper, чтобы вставить его имя сюда).
  3. Введите в другой энтите, которая получит output. Вы должны выбрать, какое действие целевой энтити должно активировать output. К примеру, если вы хотите, чтобы солдат npc_combine_s спускался на веревке, вы должны использовать Input BeginRappel.
  4. Используется перегрузка параметра, если данные приняты input'ом назначения. Чаще это число, используемое input функцией (смотрите секцию Input'ов ниже).
  5. Установите задержку отправки output'а (в секундах). 1/10 секунды записывается как "0.1" сек.
  6. Срабатывает ли output единожды.

Пример output'ов

  • OnTrigger - Когда энтитя пересекается, она генерирует этот output.
  • OnMapSpawn - Когда карту загружена, этот output срабатывает.

Input'ы

Hammer entityio2.jpg

Input'ы присоединяются к output'ам любого типа. Здесь мы видим вкладку Inputs диалога Свойства объекта. Она отображаеты все output'ы, которые подсоединены из других энтитей к этой энтити.

Так как любой output может быть подсоединен к любому input'у, это множество комбинаций может быть использовано для создания сложных взаимодействий. Таймеры могут создавать последовательность обратного отсчета, используя мигающие спрайты, звуки и специальные эффекты, - и всё это без дополнительных энтитей. Щелкнув на кнопку Mark или два раза щелкнув на записи в списке, пользователь может перейти к энтити, отправляющей output в данный input.

Если соединение отображается красным, оно неправильно. Это означает, что output не существует в исходной энтити или input не существует в энтити назначения. Неправильное соединение не смертельно, но должно быть устранено до компиляции карты, так как команда меню Check For Problems выдаст это как ошибку.

Output'ы со значениями

Очень мало output'ов, которые возвращают значения. К примеру math_counterOutValue output. Эти output'ы привязаны к input'ам, которые требуют параметр и будут заполнять значение для этого параметра когда сработает. К примеру, для math_counter может быть следующий input: OutValue mover SetPosition <none> где mover это func_movelinear. Позиция mover может быть изменена с помощью простых арифметических операций math_counter'а.

Создание простого триггера

Вот пример, как создать простой триггер, используя input'ы и output'ы. Как только игрок войдёт в определённую зону, воспроизведётся звук.

Создайте карту и добавьте ambient_generic энтити. Назовите её "ambient_1". Зайдите в её свойства и выберите звуковой файл для воспроизведения. Убедитесь, что во флагах стоит "Starts Off". Выберите текстуру "toolstrigger" и создайте прямоугольный браш. Щёлкните правой кнопкой мыши и выберите в меню "Tie to Entity". В свойствах выберите trigger_once энтити. Во вкладке "Outputs" нажмите кнопку "Add..."

Выберите в "My output named" вариант "OnStartTouch". Это создаст output (и это триггер) при соприкосновении игрока и браша в игре.

В "Targets entities named" напишите "ambient_1". Триггер будет ссылаться на энтити ambient_generic, которую вы создали раньше.

Выберите "PlaySound" в списке "Via this input". Это выберит действие для энтити ambient_generic при создании output'а, и это действие вызовет воспроизведение звука.

Нажмите клавишу "Apply", чтобы сохранить изменения в триггере и закройте его. Теперь у нас есть триггер, настроенный на прикосновение игрока и вызывающий команду ambient_generic, которая начинает воспроизводить звук.

Если вы откроете свойства ambient_generic, вы можете увидеть, что Output триггера автоматически превратился в Input для ambient_generic.

Перед проверкой вашего триггера в игре, убедитесь, что все основные ентити и браши(точка старта игрока, освещение и т.п.) установлены, и вы задали звук для ambient_generic

Отладка

Так как природа того, как энтити связаны, более сложная и мощная, поэтому в движке имеются возможности для отладки, чтобы помочь вам отследить проблемы. Если цепочка I/O логики не работает как ожидалось, инструменты, указанные ниже, вам сильно помогут устранить ошибку.

developer 0/1/2
Установив консольную переменную в значение "2", вы получите подробный отчет о том, как энтити взаимодействуют с помощью системы I/O энтитей. Это полезно для определения, какое точно место занимаетцепочка событий в сложных взаимодействиях.
ent_messages_draw 0/1
При значении "1", в игре будет отображаться визуальная информация о том, как энтити взаимосвязаны между собой. Это очень похоже на использование консольной переменной developer, но иногда дает более быстрый и интуитивный результат.
ent_fire <entity name> <input name> <input value>
Эта консольная команда позволяет вам вручную вызывать input'ы энтити из консоли. Это бывает очень полезно для тестирования настроек энтитей в реальном времени. Чтобы вызвать input под названием "Open" для энтити с именем "testentity" с параметром input "3", вы должны ввести ent_fire testentity open 3
ent_pause
Эта команда приостанавливает энтити карты. Если мы введем снова, энтитям будет возвращено их обыкновенное поведение. Она наиболее полезна с использованием вместе с командой ent_step, описанной ниже.
ent_step <number of steps>
Когда используется вместе с консольной командой ent_pause, эта команда позволяет пользователю замедлить шаги, через которые цепочка энтитей исполняется для input'а и output'а. Любое кол-во шагов может быть выполнено в одно время, что указывается в значение введенным после команды (например ent_step 3 исполнит 3 шага сразу же).

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

Template:Otherlang:ru Template:Otherlang:ru:en