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

tokkuri
記事: 22
登録日時: 2015年12月17日(木) 22:26
連絡を取る:

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

投稿記事by tokkuri » 2017年7月05日(水) 02:10

RPGツクールVX Aceを使用しています。
現在、いずれかの変数が一定の数値以上だと
セリフが変わるという風に条件分岐を作りたいと思ってます。

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

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

【ものすごく簡単な自己紹介】
VX,VX Aceを中心にのんびりと素材を作っています。
和風素材を増やしていきたい、この頃。
faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

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

投稿記事by faida » 2017年7月05日(水) 03:39

複数の要素に対して、いずれかが条件を満たせばいい場合は、スクリプトでは「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以上であれば条件を満たします。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
tokkuri
記事: 22
登録日時: 2015年12月17日(木) 22:26
連絡を取る:

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

投稿記事by tokkuri » 2017年7月05日(水) 22:33

ご丁寧にありがとうございます!
理想通りの仕上がりに出来ました。
心から感謝いたします。
【ものすごく簡単な自己紹介】
VX,VX Aceを中心にのんびりと素材を作っています。
和風素材を増やしていきたい、この頃。

“VX / Ace:質問” へ戻る