Skip to content

Действие IF_ELSE

MaxDikiy edited this page May 18, 2017 · 3 revisions

Условный оператор. Это действие полезно в случаях, когда нет желания создавать дополнительные активаторы. Или наоборот может позволить выбрать и перейти на один из множества активаторов.

IF_ELSE <if> <then:[text] | [ЗапускАктиватора] | [ЗапускДействий]> <else:[text] | [ЗапускАктиватора] | [ЗапускДействий]> [suffix]

Параметр Значения параметра Описание
<if> if:<"==", "!=", ">", "<", "&&", "||", "/^regex$/.test("value")", ... > Условный оператор
<then> then:<[text] / [ЗапускАктиватора]> Результат успешного выполнения условия
<else> else:<[text] / [ЗапускАктиватора]> Результат если условие не выполнилось
[suffix] suffix:<text> Суфикс, добавляемый к плейсхолдеру %ifelseresult%. Он необходим, если нужно применить несколько действий IF_ELSE
[ЗапускАктиватора] run:{activator:<ИдАктиватора>} Активатор EXEC, который будет запущен по отношениию к игроку, который выполнил это действие.
Поддерживаются все параметры для запуска активатора EXEC
[ЗапускДействий] run:{actions:{action1:{action=param} action2:{action=param} actionN:{action=param}}} Запуск действий, доступные в ReActions

Временные плейсхолдеры, устанавливаемые этим действием

Плейсхолдер Описание
%ifelseresult[suffix]% текстовой результат, полученный от <then> или <else> после выполнения условия <if>
[suffix] нужен, если необходимо применить несколько действий IF_ELSE
%ifelsedebug% показывает ошибку, которую вы допустили в условии if

Следующие временные пременные будут установлены в активаторах, которые были вызваны в соответствии с параметром run

Плейсхолдер Описание
%condition% Условие, указанное в if

Пример

Несколько активаторов, реализующие это действие

  1. "Переключение"
SNEAK:
  s:
    sneak: ANY
    actions:
    - IF_ELSE=if:{%sneak%==true} then:{&aВы присели} else:{&cВы встали}
    - MESSAGE=%ifelseresult%
  1. Применение нескольких действий IF_ELSE в одном активаторе. Проверяем значение скорости введённое в комманде speed.
COMMAND:
  speed_cmd:
    override: true
    regex: true
    command: cmd:speed arg1:*
    actions:
    - CANCEL_EVENT=true
    - IF_ELSE=if:{/^[0-9.-]+$/.test("%arg1%")} then:{%arg1%} else:{0}
    - 'MESSAGE=&aПроверка на число. &cСкорость установлена на: %ifelseresult%.'
    - IF_ELSE=if:{%ifelseresult% > 10} then:{10} else:{%ifelseresult%} suffix:_1
    - 'MESSAGE=&aПроверка на большее значение. &cСкорость установлена на: %ifelseresult_1%.'
    - IF_ELSE=if:{%ifelseresult_1% < 0} then:{0} else:{%ifelseresult_1%} suffix:_2
    - 'MESSAGE=&aПроверка на меньшее значение. &cСкорость установлена на: %ifelseresult_2%.'
    - FLY_SPEED=%ifelseresult_2%
    - WALK_SPEED=%ifelseresult_2%
    - 'MESSAGE=&a&lТекущая Скорость: %ifelseresult_2%.'

Протестируйте этот активатор, вводя комманды:
/speed 2
/speed test
/speed 100
/speed -100

  1. Перенаправление на внешние активаторы
SNEAK:
  s3:
    sneak: ANY
    actions:
    - 'IF_ELSE=if:{%sneak%==true} then:run:{activator:ifTrue} else:run:{activator:ifFalse}'
EXEC:
  ifTrue:
    actions:
    - 'MESSAGE=&6Player: &a%player% &eIF(&r%condition%&e) &aResult = TRUE'
  ifFalse:
    actions:
    - 'MESSAGE=&6Player: &a%player% &eIF(&r%condition%&e) &cResult = FALSE'
  1. Запуск действий.
SNEAK:
  s4:
    sneak: ANY
    actions:
    - IF_ELSE=
        if:{%sneak%==true} 
        then:run:actions:{
            action1:{message=&aВы присели}
        } 
        else:run:actions:{
            action1:{message=&aВы встали}
        } 
  1. Многоуровневое действие.
SNEAK:
  s5:
    sneak: ANY
    actions:
    - 'IF_ELSE=
        if:{%sneak%==true} 
        then:run:actions:{
            action1:{message=&6&lУровень1 TRUE}
            action2:{cmd=say &6&lУровень1 TRUE}
            action3:{IF_ELSE=
                if:{3==2}
                then:{message=&c&lУровень2 TRUE}
                else:run:actions:{
                    action1:{message=&c&lУровень2 FALSE}
                    action2:{IF_ELSE=
                        if:{2==2}
                        then:run:actions:{
                            action1:{broadcast=&e&lУровень3 TRUE}
                        }
                        else:{}
                    }
                }
            }
        } else:run:actions:{
            action1:{message=&6&lУровень1 FALSE}
            action2:{message=&6&lУровень1 FALSE 2}
        }'

Clone this wiki locally