「絶対bit変数なんかに負けたりしない!!」キッ
 →「○○○には勝てなかったよ……」

parentvarsetではbit変数代入が出来ないことを知り、悲しみに明け暮れていたのも昔の話。
わざわざHelperを通さなくていいじゃんと、それ以来-2で直接本体変数を設定するようにしているので、またbit変数に挑んでみるかと意気込んだ。
数値を取り扱うんじゃなくて、ただONOFFさえできれば御の字のお話。

なのに、
本体側で2つ以上のフラグをONにすると、そのフラグのどれもHelperが認識しない
まず、
[statedef -2]
[state ]
type=varset
trigger1=!ishelper
var(30)=(var(30)|1)
そして、helperの方で以下の記述にしておく。前回ワープスターさんに指摘された反省を活かし、ちゃんとroot,をつけておく。
trigger1=(root,var(30)&1)
(あとのtriggerは省略)
この時点では成功、ちゃんとhelper内の記述は機能してる。rootリダイレクトが怖かったけどセーフ!


次にstatedef -2内の方を
var(30)=(var(30)|1|2)
これで1と2のFlagが建ったはず。試しにlifesetでtrigger1=(var(30)&1),trigger1=(var(30)&2)にするところっと逝去。
もしvar(30)を普通に変数として使ってたなら絶対に真にはならない。

なのに、helper内の記述は失敗。stateは読み込まれず、演出が行われない。
triggerall=(root,var(30)&2)にしてもうまくいかない。どちらFlagも立っていない様子。
やけくそで1|2|8にして3つ立ててももちろん効果なし。
気休めにignorehitpause=1を付けるも特に変わらず。

この状態で2つではなく1つなら上手く行くことを試すために、上の記述からFlag2を折ることに。
statedef -2 内の記述
var(30)=(var(30)|1|2)-2

一番最初と同じ、Flag1だけ。こうするとうまくいく。


なんでやねーん。