Была бы поставлена конкретно задача, то... А так...
Володя, в том то и дело, что хотелось бы разобраться с выражениями использующими состояние в максимально общих условиях, без привязки к очень конкретной задаче.
Но в качестве "тренинга" можно было бы попробовать решить вот такую задачу -
Cycle Action, который меняет ряд параметров в нескольких плагинах и/или пресеты в них меняет. Но его выполнение делалось только при условии, что эти параметры отличны от заданных в этом Cycle Action.
Понятно, что можно не записывать в регистр состояние прям всех параметров описанных в Cycle Action, а взять за идентификатор выполнения какой-то один уникальный - я вот переход на конкретный маркер использую (т.е. в конце выполнения Cycle Action-а Рипер скачет в конкретный Марке и если он там, то Cycle Action повторно выполнять не нужно. Можно привязать к состоянию Пресета конкретного плагина (это даже лучше).
В общем - понять бы на одном примере Суть данной возможности.
PS: Statement - "IF" может работать только с теми Action, у которых есть параметр состояния on/off ............ ну, в общем при помощи двух таких (без вредных Action) можно конечно попробовать организовать нужный мне тригер - чтобы выполненный уже Cycle Action, повторно мог выполнятся только при условии того, что после него выполнился другой, который перебросит в on нужный для исполнения этого Cycle Action Action-а.
Но вот только для всего двух Cycle Action я понимаю как это коромысло (тригер осуществить), а для трёх и более - НЕТ.
Так что ты прав - нужно решить вопрос "сброса регистра" текущего Cycle Action при помощи любого другого Cycle Action - тогда я был бы на коне и знал как это сделать.
Если бы можно было создать Custom Action с наличием у него параметра State - on/off, тогда я тоже бы нашёл выход - создал бы их столько, сколько мне нужно тригерить Cycle Action и тогда всё бы работало...
PSS: Как же мало я ещё знаком с возможностями Рипера.
В общем сделано в Extensions всё что мне нужно -
Нужный мне Тригер Cycle Action будет выглядеть так -
IF NOT
_S&M_EXCL_TGL1
Здесь любые нужные к выполнению Action, Custom Action или Console команды
_S&M_EXCL_TGL1
ENDIF
Следующие Тригер Cycle Action соответственно -
IFNOT
_S&M_EXCL_TGL2
_S&M_EXCL_TGL2
Здесь любые нужные к выполнению Action, Custom Action или Console команды
ENDIF
Следующий соответственно -
IF NOT
_S&M_EXCL_TGL3
Здесь любые нужные к выполнению Action, Custom Action или Console команды
_S&M_EXCL_TGL3
ENDIF
И т.д.
Работать это будет так, что - выполнившийся любой из подобного ряда Cycle Action не будет повтороно выполняться до момента, пока не выполнится любой другой!
Основанно это решение на том факте, что, цитирую -
- SWS/S&M: Exclusive toggle An (where 'n' is in [1; 4], customizable in the S&M.ini file, (up to 99 toggles)
- SWS/S&M: Exclusive toggle Bn (where 'n' is in [1; 4])
- SWS/S&M: Exclusive toggle Cn (where 'n' is in [1; 4])
- SWS/S&M: Exclusive toggle Dn (where 'n' is in [1; 4])
Action - "Exclusive toggle" means only one toggle action is ON at a time.
For ex: in the set of toggles "A", if "Exclusive toggle A03" is ON, A01 A02 and A04 are OFF.