コメント

このコメントは、【トピック】【初心者質問】固定のアイテムGET後、別のイベントの選択肢の変更へのコメントです。

コメントの内容

            mini mosmoss(投稿日:2017/10/01 10:10/01/17)
takiさんのバージョンのエラー原因は未確認なのですが、
bという値に配列がうまく入ってないように見えます
エラーの時に出る文をコピペすると、原因の特定がより簡単になると思います

すみません、以下に書かれていた内容を削除しました
takiさんの簡易バージョンの解決法と全く同じでした(^^;)

コメントの内容(一番最初の投稿)

            mini mosmoss(投稿日:2017/10/01 10:10/01/17)
takiさんのバージョンのエラー原因は未確認なのですが、
bという値に配列がうまく入ってないように見えます
エラーの時に出る文をコピペすると、原因の特定がより簡単になると思います。


takiさんの方法とは違うのですが私が提案する解決方法は、
最初の選択肢の中にある"なんかの本"のところに通常変数を置いてしまうことです


まず開始スクリプトで次のように準備しておきます
[ code setVariable("本の名前","???") ]

次に、本を入手するイベントで、通常変数"本の名前"の中身を"???"から"なんかの本"に書き換えます
[ code setVariable("本の名前","なんかの本") ]

そして、イスのイベントスクリプトでは次のように書きます
speak("イスに座って本を読めます。")
case speakWithSelect(2, getVariable("本の名前"), "読まない",   "どの本を読みますか?\n") #この行を変更しました、通常変数"本の名前"の中に入っている文字列が選択肢として表示されます
  when 0
  a = getItemIndexWithId(21501)
 if a == -1
  speak("この本は読み終わっているか、\nまたは持っていません。")
 else
  speak("「なんかの本」")
  speak("面白そう。")
  removeItemWithIndex(a)
  setFlag("読書", true)
 end
  when 1
speak("今は読まなくていいや。")
end


このように書くことで、
「なんかの本」入手前は選択肢は「???」と表示される
「なんかの本」入手後は選択肢は「なんかの本」と表示される
「なんかの本」を持っていれば読んでアイテムを削除し、持っていなければ「読み終わっているか、持っていない」とアナウンスされる

というスクリプトになります