ページ 11

条件分岐で変数を複数指定

Posted: 2017年7月05日(水) 02:10
by tokkuri
RPGツクールVX Aceを使用しています。
現在、いずれかの変数が一定の数値以上だと
セリフが変わるという風に条件分岐を作りたいと思ってます。

変数の数が2個や3個なら特に問題ないのですが
都合により、40個以上あるのでどうしても編集画面からはみ出てしまいます。
スクリプトの条件分岐で出来ないか調べてやってみましたが上手くいきませんでした。

このイベントは正直諦めても一応問題ないので
出来なかったら、それはそれで構わないのですが
もし、可能にする方法を知る方がいらっしゃれば
教えていただきたいと思ってます。

Re: 条件分岐で変数を複数指定

Posted: 2017年7月05日(水) 03:39
by faida
複数の要素に対して、いずれかが条件を満たせばいい場合は、スクリプトでは「any?」を使用します。

コード: 全て選択

(2..30).any?{|i|$game_variables[i] >= 20}
この例だと変数2から30のどれかが20以上であれば条件を満たします。

連続していない複数の数値なら、適当な変数を配列にしてany?を使用するか、

コード: 全て選択

# ↓イベントコマンド「スクリプト」
$game_variables[1] = []
$game_variables[1] << 2 # 一つ入れる場合
$game_variables[1] |= [3,4,5,6,7] # 複数入れる場合
$game_variables[1] |= (10..30).to_a # 範囲オブジェクトなら
# ↓条件分岐
$game_variables[1].any?{|i|$game_variables[i] >= 20}
もしくは http://tm.lucky-duet.com/viewtopic.php?f=43&t=4104 に載っている方法だと

コード: 全て選択

[*2..7, *10..30].any?{|i|$game_variables[i] >= 20}
こんな風にするとか。
上記二つは変数2から7、10から30のどれかが20以上であれば条件を満たします。

Re: 条件分岐で変数を複数指定

Posted: 2017年7月05日(水) 22:33
by tokkuri
ご丁寧にありがとうございます!
理想通りの仕上がりに出来ました。
心から感謝いたします。