Trigger once (Source): различия между версиями
Kogemyaka (обсуждение | вклад) (Новая страница: «{{sdk beginsrc}} [http://developer.valvesoftware.com/wiki/Trigger_once Trigger_once] == Описание == Объект trigger_once используется для…») |
Kogemyaka (обсуждение | вклад) |
||
Строка 35: | Строка 35: | ||
== Outputs == | == Outputs == | ||
*'''OnTrigger''' – выполняется при любом явном прикосновении к этому триггеру; вызов функций "StartTouch" и "EndTouch" НЕ считается за явное прикосновение, поэтому это событие не выполняется при вызове этих функций; | *'''OnTrigger''' – выполняется при любом явном прикосновении к этому триггеру; вызов функций "StartTouch" и "EndTouch" НЕ считается за явное прикосновение, поэтому это событие не выполняется при вызове этих функций; | ||
+ | {{sdk out OnStartTouch}} | ||
{{sdk out OnEndTouch (trigger)}} | {{sdk out OnEndTouch (trigger)}} | ||
{{sdk out OnEndTouchAll (trigger)}} | {{sdk out OnEndTouchAll (trigger)}} | ||
+ | |||
== Карта == | == Карта == | ||
csssdk_trigger_once.vmf | csssdk_trigger_once.vmf |
Текущая версия на 08:04, 25 октября 2009
Оригинал Trigger_once
Содержание
Описание
Объект trigger_once используется для выполнения любых действий всего один раз за раунд, в момент когда его активируют прикосновением к нему.
Особенности использования
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект должен быть установлен там, где будет использоваться.
- На карте может быть установлено множество этих объектов
- Объект для удобства может быть покрыт материалом tools/toolstrigger.
- Объект будет удалён сразу после того как будет впервые выполнено событие "OnTrigger". Объект снова появится в следующем раунде.
Ошибки
Этот триггер может сработать несколько раз! Это обидное упущение разработчиков. Чтобы быть уверенным в том, что этот триггер будет выполняться только один раз за раунд, всегда в редакторе Hammer устанавливайте галочку "Fire once only" для тех событий, которые должны быть выполнены однократно.
Заметки
Гранаты, брошенные игроком, являются физическими объектами, поэтому могут контактировать с триггерами. Все виды оружия, которое можно подобрать, не контактируют с триггерами.
Углы "Pitch Yaw Roll" могут быть использованы для поворота триггера на нужный угол в начале каждого раунда. На этот угол автоматически поворачиваются Brush-объекты при своём появлении на карте, поэтому этот объект будет работать как задумано только при "Pitch Yaw Roll" = "0 0 0". Если же указать другой угол, например "30 -45 15", то придётся вручную поворачивать весь триггер на углы соответственно "30 -45 15". Выполнить это можно при помощи утилиты поворота, масштабирования и перемещения "Transform [Ctrl+M]". Правильность постановки этого объекта на карте можно проверить при помощи консольной команды "showtriggers_toggle", которая позволяет отображать триггеры в игре.
Консольная переменная "showtriggers 1" позволяет включить отображение материала tools/toolstrigger в игре, точно так же как он отображается в редакторе Hammer. Для переключения отображения этого материала (Показать/Скрыть) используется консольная команда "showtriggers_toggle".
Параметры
- Pitch Yaw Roll (Y Z X) – ориентация объекта на карте (направление распространения);
- Start Disabled – выключать объект в начале каждого раунда (Нет/Да);
- Filter Name – имя объекта-фильтра для фильтрации объектов, которым будет разрешено активировать этот триггер;
- Origin (X Y Z) – точка опоры объекта (указывается при помощи Helper’а).
Флаги
- Clients – игроки могут активировать этот объект;
- Pushables – объекты func_pushable могут активировать этот объект; не используется если установлен флажок "Physics Objects";
- Physics Objects – физические объекты могут активировать этот объект;
- Debris – физические объекты, отмеченные как "Debris" могут активировать этот объект; используется только если установлен флажок "Physics Objects"; для физических объектов не обязательно устанавливать флажок "Force Debris Touch Triggers";
- Everything – абсолютно любой объект может активировать своим прикосновением этот триггер; если установлен этот флажок, все предыдущие флажки можно не устанавливать; установка этого флажка позволяет контролировать касание триггера заложниками (hostage_entity).
Inputs
- Enable – включить объект;
- Disable – выключить объект;
- Toggle – переключить состояние объекта (Включен/Выключен);
- StartTouch – сымитировать прикосновение к объекту другого объекта, который выполняет эту функцию (!caller); вызов этой функции позволяет выполнять только событие "OnStartTouch"; после вызова этой функции будет считаться что объект (!caller) продолжает контактировать с этим объектом; использование этой функции может привести к тому, что событие "OnEndTouchAll" может вообще не быть выполненным;
- EndTouch – сымитировать прекращение прикосновений с объектом другого объекта, который выполняет эту функцию (!caller); вызов этой функции позволяет выполнять события "OnEndTouch" и "OnEndTouchAll".
Outputs
- OnTrigger – выполняется при любом явном прикосновении к этому триггеру; вызов функций "StartTouch" и "EndTouch" НЕ считается за явное прикосновение, поэтому это событие не выполняется при вызове этих функций;
- OnStartTouch – выполняется в момент, когда другой объект или игрок начинает контактировать с этим объектом;
- OnEndTouch – выполняется в момент, когда другой объект или игрок прекращает контактировать с этим объектом; это событие может быть выполнено автоматически, если в течение раунда была выполнена функция "StartTouch" и не была после этого выполнена функция "EndTouch";
- OnEndTouchAll - выполняется в момент, когда все другие объекты прекращают контактировать с этим объектом; если хотя бы один другой объект продолжает контактировать с этим объектом, то это событие не выполнится. это событие может быть выполнено автоматически, если в течение раунда была выполнена функция "StartTouch" и не была после этого выполнена функция "EndTouch".
Карта
csssdk_trigger_once.vmf
Используются объекты
- trigger_once
- func_detail
- env_fire
Описание карты
На карте установлен всего один триггер trigger_once, задев который перед ним зажгутся несколько объектов env_fire. Повторить процесс поджигания огня не получится, потому что объект trigger_once удалится автоматически сразу же после своего первого выполнения события "OnTrigger". В стороне стоит пульт с единственной кнопкой. Нажмите на кнопку чтобы начать новый раунд и убедитесь в том, что объект trigger_once срабатывает не больше одного раза в каждом раунде.