2DRPG 選択肢があるイベントを1度しか起こらないように設定するには?(質問掲示板

投稿: Material 110912 1 mini アイネ・レグルス 投稿:2011/10/30 00:07:30(最新:2011/10/30 13:51:30)
タイトル通りです。


if getFlag("アイテムAのID")
speak("もう何もない")
setFlag("アイテムAのID", true)
else
speak("不思議な部屋だなぁ")
speak("あれ?こんなところに棺があるぞ?")
speak("なんか棺が動いてる!")
case speakFullScreenWithSelect(true, 2,"開けてみる","無視して先を急ぐ","ど…どうする?")
when 0
speak(true, "…一応調べてみようか…うう\n")
speak("ゴトッ")

以下省略←会話なので。会話部分には問題なしでした

speak("???\n\nこれを持っていきなさい")
speak("アイテムAを手に入れた")
giveItem(アイテムAのID)
speak("???\n\nあと、お願いがある")

以下省略←会話なので。会話部分には問題なしでした

speak("これも持っていきなさい")
speak("アイテムBを手に入れた")
giveItem(アイテムBのID)

when 1
speak(true, "不気味だし…先を急ごう")
speak("ガタッ!")
speak("???  ヴア゛ア゛!!!")
speak("うわあ!")
speak("がしゃーん!")
speak("ってあれ?骸骨が崩れちゃった。")
speak("棺の中に何かがあるぞ?")
speak("アイテムAを手に入れた")
giveItem(アイテムAのID)
end


このように打つと、最後の行の「end」の項目にエラーと表示されてしまうのですが、どう入力すればいいのでしょうか?


(ゲーム内容はネタバレを防ぐために一部内容を変更して書きました。)

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Material 110912 1 mini アイネ・レグルス(投稿日:2011/10/30 13:51, 履歴)
闇龍神さん、ugonightさん、教えていただきありがとうございました☆

お2人のコメントを見て入力したところ、ループせずにしっかりと問題なくイベントが完了しました♪

分かりやすく方法を教えて頂き、ありがとうございましたm(__)m
新作頑張ります!
  1 mini 闇さん(投稿日:2011/10/30 11:54, 履歴)
まずspeak("もう何もない")の下の setFlag("アイテムAのID", true) を消し次にgiveItem(アイテムAのID)
end のあとにsetFlag("アイテムAのID", true)を足せばいい
【解説】
最初のsetFlag("アイテムAのID", true)がある場所はフラグ「アイテムAのID」がtrueの時に作動する場所なのでtrueの時にtrueにしても意味が無いspeak(true, "…一応調べてみようか…うう\n") のtrueは何の意味があって書いたのですかフラグのON/OFFはsetFiagを使わないと変化させることはできません

002 1  mini ugonight(投稿日:2011/10/30 01:42, 履歴)
ちょ…こっちが書いてる途中に先越されちゃってたし…

elseの前に書かれている
setFlag("アイテムAのID", true) 

をelseのあとに持ってくればおkです。

Material 110912 1 mini アイネ・レグルス(投稿日:2011/10/30 01:25, 履歴)
闇龍神さん、ugonightさん、方法を教えて頂きありがとうございます☆

早速入力してみたら、メッセージなどは正常に動きました^^

ですが…このイベントがループして何度も同じアイテムを入手してしまい、アイテムAを入手しているのにも関わらず、本来表示されるはずの「speak("もう何もない") 」が表示されません…

どこか入力を誤っているようなのですが、エラー表示されないのでどこだかわかりません…

どこを修正すればよいのでしょうか?教えて頂けると幸いです。
002 1  mini ugonight(投稿日:2011/10/30 00:56, 履歴)
はじめましてですーいろいろ素材もうpしてますね!
どれも色合いとかきれいにできてていいですねぇ―頑張ってくださいよー☆

一回整理してみますと
if getFlag("アイテムAのID") 
  speak("もう何もない") 
  setFlag("アイテムAのID", true) 
else 
  speak("不思議な部屋だなぁ") 
  speak("あれ?こんなところに棺があるぞ?") 
  speak("なんか棺が動いてる!") 
  case speakFullScreenWithSelect(true, 2,"開けてみる","無視して先を急ぐ","ど…どうする?") 
    when 0 
      speak(true, "…一応調べてみようか…うう\n") 
      speak("ゴトッ") 

      #以下省略←会話なので。会話部分には問題なしでした 

      speak("???\n\nこれを持っていきなさい") 
      speak("アイテムAを手に入れた") 
      giveItem(アイテムAのID) 
      speak("???\n\nあと、お願いがある") 

      #以下省略←会話なので。会話部分には問題なしでした 

      speak("これも持っていきなさい") 
      speak("アイテムBを手に入れた") 
      giveItem(アイテムBのID) 

    when 1 
      speak(true, "不気味だし…先を急ごう") 
      speak("ガタッ!") 
      speak("???  ヴア゛ア゛!!!") 
      speak("うわあ!") 
      speak("がしゃーん!") 
      speak("ってあれ?骸骨が崩れちゃった。") 
      speak("棺の中に何かがあるぞ?") 
      speak("アイテムAを手に入れた") 
      giveItem(アイテムAのID) 
  end 

まあ、endが足りないんですねー
これだとcase文しか閉じてないのでif文も閉じるためにもう一行endを追加するといいと思います。

完成楽しみにしてますー。脱出ゲームでしたら過去にすごく人気なのがありました。今でも総合ランキングで10位以内を誇ってますね。
よくみて学んでみるといいかと

まあ、フラグあたりの使い方が鍵になりますねー
あ、でもうちのテスクエはあんまりあてにしないほうがいいですよww
  1 mini 闇さん(投稿日:2011/10/30 00:51, 履歴)
if文とcase文があるのにendが一つしかない
最後にendを足せばいい