トビラを使ったイベントの作り方を教えていただきたいです(質問掲示板

投稿:    mini 19920613 投稿:2010/12/27 00:56:27(最新:2010/12/29 10:45:29)
"鍵を取る前から扉をすり抜けるのを防ぎ、鍵を取ってからでないとその扉を通ることができないようにしたい"です。
また、その扉のマップチップには通れるマップチップを置くのか、そうでないマップチップを置くのかどっちでしょうか?

この「扉」の役目を果たすイベントは、キャラクター画像を使っていない透明なイベントです。ただ通れない扉のマップチップをはめ込み、そこに鍵を使わないと開かないイベントを設置しているだけです。




制作中のゲームでは、Bのシーンから鍵を取ってくるよう頼まれ、Aのシーンで鍵を取り、もう一度Bのシーンに戻って、鍵をあけるという風に考えてます。
最初に、通れないチップを置く前に、通れるチップを置いて試したのですが、扉のチップを置いてその扉のイベントに、「Aのフラグを受け、手持ちの鍵が無いと開かない」ようなフラグを作りましたが、うまくいかず、すり抜けてしまいます。

扉のイベントにどんなにフラグをしかけてもすり抜けてしまいますので、上のように通れないチップを置きました。ですが、通れないチップを通るのは不可能ですので、やはり思うようにできません・・・

また、AからBへはワープしないといけないのですが、フラグを作る時、ワープしても有効になるんでしょうか?


解決お願いします!

コメントする

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

コメント一覧

   mini 19920613(投稿日:2010/12/29 10:45, 履歴)
>rurun9さん

ありがとうございます!
これでやってみます
Nyan mini rurun9(投稿日:2010/12/27 15:13, 履歴)
最も面倒な(プレイする側にとっては判り易い)方法で説明します。
手順は三段階。

(1)
まず「カギ」をアイテムで作成して、マップに登録します。
詳細設定にて、種類は「道具」、使用可能「いいえ」、にしておきます。
メニューアイコンに画像(32*32で充分)を指定しておけば、所持アイテム欄でカギだと判り易いかもしれません。
仮にこのカギアイテムのID番号が9999だったとします。

開始スクリプトに、扉のフラグをセット。
今回はフラグ名を kagi と名付けてみます。
フラグ kagi が true なら扉があって、false だと扉が消える、というのを作る事にします。
setFlag("kagi",true) #扉を複数つくるならフラグ名を変えてコピペ


(2)
扉もキャラクターで作成しておきます。
アニメする必要は無いので、キャラクタアニメーション画像の設定にてパターン数を1とし、ドット絵は上下左右を同じ絵をコピペするだけで構いません。

マップ内に扉キャラをイベント設置、
・あたり判定「有り(通行不可能)」
・移動タイプ「固定(向きも固定)」
・開始方法「はなす/調べるの実行」
・有効条件(スクリプト)「 getFlag("kagi") 」
n=0; m=false; a=getItemIdArray()
while n<getArrayLength(a)
 if a[n]==9999 #カギ
  m=true
 end
n=n+1
end

if m
  setFlag("kagi", false)
  removeItemWithIndex(n) #使用したカギアイテムを消去しています
  speak("カギを使って扉を開けた")
else
 speak("カギがかかっている")
end


(3)
マップ内のキャラクターから鍵をもらう場合のイベントスクリプト
カギをひとつしか持てないように、してみます。
適当なキャラをマップに登録して設置して下さい。
speak("「カギをあげる」")

n=0; m=true
a=getItemIdArray() #所持アイテムの中にカギがあるか調べる
while n<getArrayLength(a)
 if a[n]==9999 #カギ
  m=false
 end
n=n+1
end

if m
 giveItem(9999)
 speak("カギをもらった")
else
 speak("「なんだ、持ってたのか」")
end