if文でANDとORを同時に使う
 とうとうif文で論理和(|)が使えるようになりましたね。使い方は下のような感じ。
;%0が0か%1が1のときにメッセージボックスを表示する
if %0 == 0 | %1 == 1 mesbox "hit!","hit!"

 論理積と同様、||と重ねても意味は同じになります。
;これでも動作は同じ
if %0 == 0 || %1 == 1 mesbox "hit!","hit!"




 さて、現バージョン(ver.2.93)では論理積と論理和は混在できません。下のように書いてもエラーが出てしまいます。
;%0が0か%1が1で、かつ%2が2のときだけヒットさせたいけど……
if %0 == 0 || %1 == 1 && %2 == 2 mesbox "hit!","hit!"

 じゃあこういう条件の時はif文を分けなきゃいけないかと言うと、そうでもありません。幻惑郷 : if文の重ねがけと同様のやり方が通用するんです。つまり上のif文は、
;こう書くと動くよ!
if %0 == 0 || %1 == 1 if %2 == 2 mesbox "hit!","hit!"

 のように、if文の中にif文を書けばいいと。条件がもっと複雑な場合は、どの条件から書き始めるかをよく考えた方がいいかもしれません。

 論理和が使えるようになったことで、if文がぐっと書きやすくなりました。他にもLua対応やボタン系命令の刷新など、システムの根幹に関わる重要な部分での更新が行なわれたので、昔からNScripterを弄ってる人は過去のスクリプトの見直しが必要になるかもしれませんね。
[PR]
by lyricist_m | 2009-04-16 19:21 | NScripter
<< 今後の方針 怒涛の更新とNScripter講座 >>