扉の応用(質問掲示板

投稿: User icon mini 退会したユーザー 投稿: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と入れました。
お願いします

コメントする

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

コメント一覧

User icon mini 退会したユーザー(投稿日:2009/11/22 21:32, 履歴)
はい、ご期待にこたえられるように、がんばります!
      mini shirosaboten(投稿日:2009/11/22 20:48, 履歴)
いえいえ^^僕も苦労しましたから(笑)
鍵の仕掛けを使ったゲームの完成、楽しみにしてまーす!
User icon mini 退会したユーザー(投稿日:2009/11/22 20:43, 履歴)
わざわざここまで詳しく教えていただき、ありがとうございます。
      mini 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になることがあります。
さっき自分が書いたのも忘れてたし^^;
もしかしたらそれかもしれませんよ?
User icon mini 退会したユーザー(投稿日:2009/11/22 18:59, 履歴)
鍵をもらうイベントで消えるのはできたが、扉がきえない・・・

うーん。ねばろう
Zararu128x128 mini dycoon(投稿日:2009/11/22 18:42, 履歴)
shirosabotenさんフォローありがとうございます。

ちょっと気になった点だけ細くさせていただきます。
getFlagは第2引数は意味をなさないはずです。
setFlag("変数名", フラグ)が呼ばれたあとは
getFlag("変数名")はフラグを返すようになります。
つまり以下のように書けば
setFlag("変数名", true)
if getFlag("変数名")
  speak("ここを通るはず")
end

"ここを通るはず"が表示されるはずです。

あと、この掲示板でもRmake記法を使うことができます。
http://page.rmake.jp/wikis/1
"pre 表記の書き方"のあたりを参考にすると
スクリプトを掲示板に書くときに便利かと思います。

よろしくお願いします。
User icon mini 退会したユーザー(投稿日:2009/11/22 18:14, 履歴)
ありがとうございます!
      mini 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("なんたら")

で十分だと思います。


長くなりましたが、これでうまくいくかと思います。
がんばってください^^


User icon mini 退会したユーザー(投稿日:2009/11/22 16:20, 履歴)
すみません。でかく表示されている文字の前に「!」が付きます
User icon mini 退会したユーザー(投稿日: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と入れました。
お願いします