複数エンディングの場合の達成・未達成の表示

シノヅカ
記事: 106
登録日時: 2017年11月15日(水) 17:08

複数エンディングの場合の達成・未達成の表示

投稿記事by シノヅカ » 2017年12月21日(木) 06:09

お世話になっております。

複数エンディングがあるゲームを作ったのですが、
エンディングの達成表を作りたいと考えております。
------------------------------------------------------
■例 ●が達成 ×が未達成
ED1 × ED2 ● ED3 ● ED4×
------------------------------------------------------
……このようにテキスト欄に、スイッチED1~ED4までが
ONであった場合● OFFであった場合× と表示したいと思います。

あるいは別の方法で、こうした複数エンディングの場合、達成状況が分かる様な表現方法や
プラグインでも構いませんがお教えいただけたらと思います。よろしくお願いします。

アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: 複数エンディングの場合の達成・未達成の表示

投稿記事by にゃたま » 2017年12月21日(木) 14:02

シノヅカ様

シノヅカ さんが書きました:------------------------------------------------------
■例 ●が達成 ×が未達成
ED1 × ED2 ● ED3 ● ED4×
------------------------------------------------------
……このようにテキスト欄に、スイッチED1~ED4までが
ONであった場合● OFFであった場合× と表示したいと思います。


スイッチ1:ED1〜スイッチ4:ED4とした場合、以下のようにスクリプト記述すれば
スイッチの状態によりメッセージウィンドゥに出力可能です。
但し$gameMessage.addは改行されてしまう為、改行させない方法は調べる必要があります。

コード: 全て選択

if($gameSwitches.value(1)){$gameMessage.add("ED1:●")}else{$gameMessage.add("ED1:☓")}
if($gameSwitches.value(2)){$gameMessage.add("ED2:●")}else{$gameMessage.add("ED2:☓")}
if($gameSwitches.value(3)){$gameMessage.add("ED3:●")}else{$gameMessage.add("ED3:☓")}
if($gameSwitches.value(4)){$gameMessage.add("ED4:●")}else{$gameMessage.add("ED4:☓")}
アバター
ビービー
記事: 308
登録日時: 2016年1月12日(火) 18:40

Re: 複数エンディングの場合の達成・未達成の表示

投稿記事by ビービー » 2017年12月21日(木) 17:54

改行したくない場合でスイッチが連番だった場合なら以下のスクリプトの10と13を書き換えれば可能です。
(10と13はスイッチのIDを指しています。この場合10~13のスイッチ)

コード: 全て選択

var text = "";
var j = 1;
for(i = 10; i <= 13; i++){
if($gameSwitches.value(i)){var a = "ED" + j+ ":● "}else{var a = "ED" + j+ ":☓ "};
text += a;
j += 1;
}
$gameMessage.add(text);

連番でない場合は

コード: 全て選択

var text = "";
if($gameSwitches.value(10)){var a = "ED1:● "}else{var a = "ED1:☓ "};
text += a;
if($gameSwitches.value(11)){var a = "ED2:● "}else{var a = "ED2:☓ "};
text += a;
if($gameSwitches.value(12)){var a = "ED3:● "}else{var a = "ED3:☓ "};
text += a;
if($gameSwitches.value(13)){var a = "ED4:●"}else{var a = "ED4:☓"};
text += a;
$gameMessage.add(text);

10,11,12,13を各スイッチのIDに書き換えてください。

ちなみに
$gameMessage.add(text);
の部分を
$gameVariables.setValue(1,text);
のように書き換えると変数1に代入されるので
イベントコマンドの文章の表示から制御文字で表示することも可能です。
ほかの文章と同時に表示したい場合などではこちらのほうがやりやすいかと思います。
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
シノヅカ
記事: 106
登録日時: 2017年11月15日(水) 17:08

Re: 複数エンディングの場合の達成・未達成の表示

投稿記事by シノヅカ » 2017年12月21日(木) 18:44

にゃたま様
教えて頂きましてありがとうございます。おかげ様で、考えていた通りの感じに出来そうです。

ビービー様
丁度改行しない方法を調べておりました。助かりました。ありがとうございます。

お二人とも、お教えいただきましてありがとうございます。

“MV:質問” へ戻る