フラグ判定がおかしくなった…(質問掲示板

投稿: Material 110912 1 mini アイネ・レグルス 投稿:2012/07/22 11:17:22(最新:2012/07/22 13:23:22)
とあるイベントに以下のスクリプトを書いたのですが…

if getFlag("b") #bを既に持ってる場合

speak("扉が開いた")
speak("ハッピーエンド")
goEnding()


else #bを持っていない場合
 if getFlag("a") #でもaは持ってる場合
  setFlag("a",false)
  removeItemWithIndex(getItemIndexWithId(11133))
  setFlag("b",true)
stopBGM()
waitTime(1300)
speak("扉が開いた")
speak("ノーマルエンド")



 else #aもbも持ってなかった場合
 speak("カギがかかっている")
 end
end


こう書くと、aもbも持っていないのに、ノーマルエンドへ行くフラグが立ってしまうのです…

一体どこが間違っているのでしょうか?
ちなみに、abのアイテム入手のイベントや、開始スクリプトに書くフラグ設定はちゃんと合っています

コメントする

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

コメント一覧

Material 110912 1 mini アイネ・レグルス(投稿日:2012/07/22 13:23, 履歴)
すみません自己解決しました

開始スクリプトのフラグ分岐を間違っていました。すみませんでしたm(__)m
       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2012/07/22 11:31, 履歴)
if getFlag("b") #bを既に持ってる場合

speak("扉が開いた")
speak("ハッピーエンド")
goEnding()


#bを持っていない場合
elsif getFlag("a") #でもaは持ってる場合
  setFlag("a",false)
  removeItemWithIndex(getItemIndexWithId(11133))
  setFlag("b",true)
stopBGM()
waitTime(1300)
speak("扉が開いた")
speak("ノーマルエンド")



elsif !getFlag("b") && !getFlag("a")#aもbも持ってなかった場合
 speak("カギがかかっている")
end

これで大丈夫かな?
Human icon mini クソザコ(投稿日:2012/07/22 11:46, 履歴)
んまぁそれでいいんですけど、
最後はelseで充分ですね、上二つの条件をどちらを満たしていない場合ですし
Material 110912 1 mini アイネ・レグルス(投稿日:2012/07/22 12:18, 履歴)
皆さんありがとうございます(^^♪
でも、やってみたのですがやはり直りません…
       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2012/07/22 13:14, 履歴)
if getFlag("b") #bを既に持ってる場合

speak("扉が開いた")
speak("ハッピーエンド")
goEnding()


#bを持っていない場合
elsif getFlag("a") && !getFlag("b") #でもaは持ってる場合
  setFlag("a",false)
  removeItemWithIndex(getItemIndexWithId(11133))
  setFlag("b",true)
stopBGM()
waitTime(1300)
speak("扉が開いた")
speak("ノーマルエンド")


else #aもbも持ってなかった場合
 speak("カギがかかっている")
end

念のためこうしてみる

(違かったら消してくださいorz)
Material 110912 1 mini アイネ・レグルス(投稿日:2012/07/22 11:23, 履歴)
記入ミスがありました。
11133=アイテムaです