コメント
このコメントは、【トピック】【初心者質問】固定のアイテムGET後、別のイベントの選択肢の変更へのコメントです。コメントの内容
コメントの内容(一番最初の投稿)
mosmoss(投稿日:2017/10/01 10:10/01/17)
takiさんのバージョンのエラー原因は未確認なのですが、
bという値に配列がうまく入ってないように見えます
エラーの時に出る文をコピペすると、原因の特定がより簡単になると思います。
takiさんの方法とは違うのですが私が提案する解決方法は、
最初の選択肢の中にある"なんかの本"のところに通常変数を置いてしまうことです
まず開始スクリプトで次のように準備しておきます
[ code setVariable("本の名前","???") ]
次に、本を入手するイベントで、通常変数"本の名前"の中身を"???"から"なんかの本"に書き換えます
[ code setVariable("本の名前","なんかの本") ]
そして、イスのイベントスクリプトでは次のように書きます
このように書くことで、
「なんかの本」入手前は選択肢は「???」と表示される
「なんかの本」入手後は選択肢は「なんかの本」と表示される
「なんかの本」を持っていれば読んでアイテムを削除し、持っていなければ「読み終わっているか、持っていない」とアナウンスされる
というスクリプトになります
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
このように書くことで、
「なんかの本」入手前は選択肢は「???」と表示される
「なんかの本」入手後は選択肢は「なんかの本」と表示される
「なんかの本」を持っていれば読んでアイテムを削除し、持っていなければ「読み終わっているか、持っていない」とアナウンスされる
というスクリプトになります
bという値に配列がうまく入ってないように見えます
エラーの時に出る文をコピペすると、原因の特定がより簡単になると思います
すみません、以下に書かれていた内容を削除しました
takiさんの簡易バージョンの解決法と全く同じでした(^^;)