扉の応用(質問掲示板)
投稿: 退会したユーザー
投稿:2009/11/22 16:19:22(最新:2009/11/22 21:32:22)
現在、2つの鍵を持っていると、扉が開くというのをつくっています。
そしてそれぞれ、鍵のアイコンを消したいです。
それで、関数を入れてみたけど、できません。
アドバイスお願いします
扉
if getFlag("鍵を持っている") ==2
speak("おk")
setFlag("扉が開いている", true)
end
else getFlag("鍵を持っている") < 2
speak("鍵が足りない")
end
開始条件
getFlag("扉が開いている")
鍵A
getFlag("鍵を持っている") + 1
setFlag("鍵A")
有効条件
getFlag("鍵A")
鍵B
getFlag("鍵を持っている") + 1
setFlag("鍵B")
有効条件
getFlag("鍵B")
一応、http://rmake.jp/boards/2/topics/16と、http://rmake.jp/boards/2/topics/9と、http://rmake.jp/document/script_manualを参考にしてみました
説明
鍵に関しては、getFlag("鍵を持っている") + 1でカウントして、
setFlag("鍵B")
有効条件
getFlag("鍵B")
で鍵のアイコンを消し、二度と受け取れないようにと、こう入力しました。
扉は、getFlag("鍵を持っている") ==2で扉があくようにと入れました。
2以下だと、あかないように、else getFlag("鍵を持っている") < 2と入れました。
お願いします
ツイート
そしてそれぞれ、鍵のアイコンを消したいです。
それで、関数を入れてみたけど、できません。
アドバイスお願いします
扉
if getFlag("鍵を持っている") ==2
speak("おk")
setFlag("扉が開いている", true)
end
else getFlag("鍵を持っている") < 2
speak("鍵が足りない")
end
開始条件
getFlag("扉が開いている")
鍵A
getFlag("鍵を持っている") + 1
setFlag("鍵A")
有効条件
getFlag("鍵A")
鍵B
getFlag("鍵を持っている") + 1
setFlag("鍵B")
有効条件
getFlag("鍵B")
一応、http://rmake.jp/boards/2/topics/16と、http://rmake.jp/boards/2/topics/9と、http://rmake.jp/document/script_manualを参考にしてみました
説明
鍵に関しては、getFlag("鍵を持っている") + 1でカウントして、
setFlag("鍵B")
有効条件
getFlag("鍵B")
で鍵のアイコンを消し、二度と受け取れないようにと、こう入力しました。
扉は、getFlag("鍵を持っている") ==2で扉があくようにと入れました。
2以下だと、あかないように、else getFlag("鍵を持っている") < 2と入れました。
お願いします
コメントする
コメントするには、ログインする必要があります。
コメント一覧
退会したユーザー(投稿日:2009/11/22 21:32,
履歴)
はい、ご期待にこたえられるように、がんばります!
shirosaboten(投稿日:2009/11/22 20:48,
履歴)
いえいえ^^僕も苦労しましたから(笑)
鍵の仕掛けを使ったゲームの完成、楽しみにしてまーす!
鍵の仕掛けを使ったゲームの完成、楽しみにしてまーす!
退会したユーザー(投稿日:2009/11/22 20:43,
履歴)
わざわざここまで詳しく教えていただき、ありがとうございます。
shirosaboten(投稿日:2009/11/22 20:39,
履歴)
なるほど、すいません。僕の書いたのじゃうまくいかないですね^^;
有効条件:getFlag("鍵を取ったかA", false)
とは書いてはだめで
有効条件:!getFlag("鍵を取ったかA")
なんですね。
「!」をgetFlagの前につけると「フラグが偽(false)である」ということになるようです。知らなかった・・;
扉のほうは
if getFlag(" A") && getFlag(" B")
speak("鍵を使って扉を開いた")
setFlag(" ")
else
speak("扉には鍵がかかっていて、開けることが出来ない。")
end
です。
最後のendを書き忘れて、errorになることがあります。
さっき自分が書いたのも忘れてたし^^;
もしかしたらそれかもしれませんよ?
有効条件:getFlag("鍵を取ったかA", false)
とは書いてはだめで
有効条件:!getFlag("鍵を取ったかA")
なんですね。
「!」をgetFlagの前につけると「フラグが偽(false)である」ということになるようです。知らなかった・・;
扉のほうは
if getFlag(" A") && getFlag(" B")
speak("鍵を使って扉を開いた")
setFlag(" ")
else
speak("扉には鍵がかかっていて、開けることが出来ない。")
end
です。
最後のendを書き忘れて、errorになることがあります。
さっき自分が書いたのも忘れてたし^^;
もしかしたらそれかもしれませんよ?
退会したユーザー(投稿日:2009/11/22 18:59,
履歴)
鍵をもらうイベントで消えるのはできたが、扉がきえない・・・
うーん。ねばろう
うーん。ねばろう
shirosabotenさんフォローありがとうございます。
ちょっと気になった点だけ細くさせていただきます。
getFlagは第2引数は意味をなさないはずです。
setFlag("変数名", フラグ)が呼ばれたあとは
getFlag("変数名")はフラグを返すようになります。
つまり以下のように書けば
"ここを通るはず"が表示されるはずです。
あと、この掲示板でもRmake記法を使うことができます。
http://page.rmake.jp/wikis/1
"pre 表記の書き方"のあたりを参考にすると
スクリプトを掲示板に書くときに便利かと思います。
よろしくお願いします。
ちょっと気になった点だけ細くさせていただきます。
getFlagは第2引数は意味をなさないはずです。
setFlag("変数名", フラグ)が呼ばれたあとは
getFlag("変数名")はフラグを返すようになります。
つまり以下のように書けば
setFlag("変数名", true) if getFlag("変数名") speak("ここを通るはず") end
"ここを通るはず"が表示されるはずです。
あと、この掲示板でもRmake記法を使うことができます。
http://page.rmake.jp/wikis/1
"pre 表記の書き方"のあたりを参考にすると
スクリプトを掲示板に書くときに便利かと思います。
よろしくお願いします。
退会したユーザー(投稿日:2009/11/22 18:14,
履歴)
ありがとうございます!
shirosaboten(投稿日:2009/11/22 17:45,
履歴)
Flagはtrueかfalseであらわすものなので、「同じフラグを二個以上とる」とかいうことは出来ないと思います。
またtrueとfalseがはっきりしていないのが混乱の原因だと思います。
アドバイスしますので自分で組み立ててみてください。
◎鍵を取ったときに消す
1.開始スクリプトでフラグを設定します。
鍵ABを取ったか否かのフラグをつくり、まだとっていない(false)と設定します。
setFlag("鍵Aを取ったか", false)
setFlag("鍵Bを取ったか", false)
2.鍵の設定です
有効条件でフラグが(false)のときだけ実行するようにします。
有効条件:getFlag("鍵Aを取ったか", false)
そして実行内容で鍵取得後にフラグを真(true)に変更します
実行内容:setFlag("鍵Aを取ったか", true)
こうすることで有効条件「フラグがfalseである」が成立しなくなり、鍵が消えます。
鍵Bについても同様です
◎鍵を二つ取ると扉が開く
1.開始スクリプト
・扉もイベント後に消える予定ですので、鍵と同じようなフラグが必要で す。開始スクリプトに扉用のフラグも設定してください。
2.扉の設定
鍵の応用です
・有効条件:「扉が開いたか」のフラグが(false)のとき
・実行内容
鍵Aを持っている、かつ、鍵Bを持っているは「&&」を使います。
if getFlag(" ", true) && getFlag(" ", true)
空欄はクイズです^^
この下に「扉が開いたか」のフラグを真にする命令を書いてください
setFlag(" ", true)
そのほか、の場合は
else
speak("なんたら")
で十分だと思います。
長くなりましたが、これでうまくいくかと思います。
がんばってください^^
またtrueとfalseがはっきりしていないのが混乱の原因だと思います。
アドバイスしますので自分で組み立ててみてください。
◎鍵を取ったときに消す
1.開始スクリプトでフラグを設定します。
鍵ABを取ったか否かのフラグをつくり、まだとっていない(false)と設定します。
setFlag("鍵Aを取ったか", false)
setFlag("鍵Bを取ったか", false)
2.鍵の設定です
有効条件でフラグが(false)のときだけ実行するようにします。
有効条件:getFlag("鍵Aを取ったか", false)
そして実行内容で鍵取得後にフラグを真(true)に変更します
実行内容:setFlag("鍵Aを取ったか", true)
こうすることで有効条件「フラグがfalseである」が成立しなくなり、鍵が消えます。
鍵Bについても同様です
◎鍵を二つ取ると扉が開く
1.開始スクリプト
・扉もイベント後に消える予定ですので、鍵と同じようなフラグが必要で す。開始スクリプトに扉用のフラグも設定してください。
2.扉の設定
鍵の応用です
・有効条件:「扉が開いたか」のフラグが(false)のとき
・実行内容
鍵Aを持っている、かつ、鍵Bを持っているは「&&」を使います。
if getFlag(" ", true) && getFlag(" ", true)
空欄はクイズです^^
この下に「扉が開いたか」のフラグを真にする命令を書いてください
setFlag(" ", true)
そのほか、の場合は
else
speak("なんたら")
で十分だと思います。
長くなりましたが、これでうまくいくかと思います。
がんばってください^^
退会したユーザー(投稿日:2009/11/22 16:20,
履歴)
すみません。でかく表示されている文字の前に「!」が付きます
退会したユーザー(投稿日:2009/11/22 16:20,
履歴)
修正
現在、2つの鍵を持っていると、扉が開くというのをつくっています。
そしてそれぞれ、鍵のアイコンを消したいです。
それで、関数を入れてみたけど、できません。
アドバイスお願いします
扉
if getFlag("鍵を持っている") ==2
speak("おk")
setFlag("扉が開いている", true)
end
else getFlag("鍵を持っている") < 2
speak("鍵が足りない")
end
開始条件
getFlag("扉が開いている")
鍵A
getFlag("鍵を持っている") + 1
setFlag("鍵A")
有効条件
getFlag("鍵A")
鍵B
getFlag("鍵を持っている") + 1
setFlag("鍵B")
有効条件
getFlag("鍵B")
一応、http://rmake.jp/boards/2/topics/16と、http://rmake.jp/boards/2/topics/9と、http://rmake.jp/document/script_manualを参考にしてみました
説明
鍵に関しては、getFlag("鍵を持っている") + 1でカウントして、
setFlag("鍵B")
有効条件
getFlag("鍵B")
で鍵のアイコンを消し、二度と受け取れないようにと、こう入力しました。
扉は、getFlag("鍵を持っている") ==2で扉があくようにと入れました。
2以下だと、あかないように、else getFlag("鍵を持っている") < 2と入れました。
お願いします
現在、2つの鍵を持っていると、扉が開くというのをつくっています。
そしてそれぞれ、鍵のアイコンを消したいです。
それで、関数を入れてみたけど、できません。
アドバイスお願いします
扉
if getFlag("鍵を持っている") ==2
speak("おk")
setFlag("扉が開いている", true)
end
else getFlag("鍵を持っている") < 2
speak("鍵が足りない")
end
開始条件
getFlag("扉が開いている")
鍵A
getFlag("鍵を持っている") + 1
setFlag("鍵A")
有効条件
getFlag("鍵A")
鍵B
getFlag("鍵を持っている") + 1
setFlag("鍵B")
有効条件
getFlag("鍵B")
一応、http://rmake.jp/boards/2/topics/16と、http://rmake.jp/boards/2/topics/9と、http://rmake.jp/document/script_manualを参考にしてみました
説明
鍵に関しては、getFlag("鍵を持っている") + 1でカウントして、
setFlag("鍵B")
有効条件
getFlag("鍵B")
で鍵のアイコンを消し、二度と受け取れないようにと、こう入力しました。
扉は、getFlag("鍵を持っている") ==2で扉があくようにと入れました。
2以下だと、あかないように、else getFlag("鍵を持っている") < 2と入れました。
お願いします