made by SAIKEI氏



知らない記号を使うのでなかなか慣れないのが現実。
しかもその記号の優先度が結構特殊なので誤作動しやすい原因でもある。
なので最近自分がやってる方法をば。

---ＯＮにするとき

例：8と256

[state スイッチＯＮ]
type=varadd
trigger1=!(var(0)&8)　;←保険。余計なスイッチをＯＮにするのを避ける。
trigger1=ＯＮ条件
var(0)=8

[state スイッチＯＮ]
type=varadd
trigger1=!(var(0)&256)
trigger1=ＯＮ条件
var(0)=256

つまり代入じゃなくて加算を使えばわかりやすくスイッチの管理ができるわけ。
これで8と256の二つのスイッチをＯＮにしたことになる。

で、ＯＦＦにするときは

[state スイッチＯＦＦ]
type=varadd
trigger1=var(0)&8 ;同じく保険。
trigger1=ＯＦＦ条件
var(0)=-8

[state スイッチＯＦＦ]
type=varadd
trigger1=var(0)&256
trigger1=ＯＦＦ条件
var(0)=-256

単純に引けばＯＦＦにできる。

--------------------代用（:=を使う人向け）

ＯＮ版

[state ]
type=varadd
trigger1=1
var(0)=8*!(var(0)&8)*(ON条件)

[state ]
type=varadd
trigger1=1
var(0)=256*!(var(0)&8)*(ON条件)

ＯＦＦ版

[state ]
type=varadd
trigger1=1
var(0)=-(var(0)&8)*(OFF条件)

[state ]
type=varadd
trigger1=1
var(0)=-(var(0)&256)*(OFF条件)

やってることはいっしょでふ。
:=で記述する場合は var(0):=var(0)+8*!(var(0)&8)*(ON条件)
こんな感じかと。
