[解決済] 鍵が必要(質問掲示板)
投稿:
退会したユーザー
投稿:2017/04/19 17:36:19(最新:2017/04/23 18:10:23)
2DアクションRPGについて。
「鍵がないと開かない」ということをしたいんですが、どのようにしたら良いんでしょうか?
鍵を使う方と、鍵を手に入れる方、出来れば両方教えていただきたいです。よろしくお願いします。
ツイート
「鍵がないと開かない」ということをしたいんですが、どのようにしたら良いんでしょうか?
鍵を使う方と、鍵を手に入れる方、出来れば両方教えていただきたいです。よろしくお願いします。
コメントする
コメントするには、ログインする必要があります。
コメント一覧
こんばんは~!
もう十分だろうけど暇なので載せちゃいます
これも僕のヴァルハラクエストの一部です
もう十分だろうけど暇なので載せちゃいます
これも僕のヴァルハラクエストの一部です
if getFlag("扉21")
else
#カギを持っていれば変数 m に「持ち物中、何番目のアイテムがカギなのか」が入ります
#持っていない場合は m には -1 が入ります
m=getItemIndexWithId(18214)
if m==-1
else
playSound(161964)
warpEvent("event72", 8, 80)#扉をどこかみえないところへワープさせます
#setFlag("event168", false) #扉キャラを非表示にします
#removeItemWithIndex(m) #使用したカギアイテムを消去しています
setFlag("扉21", true)
end
end
ありがとうございます。参考にさせていただきます。
Rmakeでは全てのアイテムは捨てる事が可能です。
それともフラグのみで、アイテム表示無しですか?
getItemIndexWithId関数とremoveItemWithIndex関数を使えば鍵を使用後に消すこともできます。
私もゲームに使っていますよ。
if getFlag("鍵入手") speak("もう何もない。") else speak("タンスの中に何かある。") speak("鍵を手に入れた!") giveItem(000) #000にはアイテムIDが入ります setFlag("鍵入手", true) end鍵を使う方のスクリプトは後で書きます
鍵を使って開ける扉のイベントのスクリプトを書きました。
有効条件
!getFlag("扉が開いた")イベント実行内容
a = getItemIndexWithId(000) #000にはアイテムIDが入ります if a == -1 #鍵を持っていない speak("鍵がないと、この扉は開かない。") else #鍵を持っている speak("扉が開いた。") speak("使った鍵は壊れた。") removeItemWithIndex(a) setFlag("扉が開いた", true) endスクリプトが長くなって見にくいので、1行目で getItemIndexWithId(000)をaとします。
getItemIndexWithId関数は、IDで指定した所持アイテムのインデックス(何番目に持っているか)を取得します。
アイテムは最大32個持てるのでaには0〜31が入ります。
(例えば、鍵がアイテム欄の1番上にあれば「0」、5番目にあれば「4」がaに入ります。なんでか知りませんが)
なのでaが「-1」だとアイテム欄のどこにもない、つまり持っていないという事になります。
10行目で、持っている鍵を消去する removeItemWithIndex関数を使います。
ーー補足ーー
これだと、イベント実行内容が全部終わってから扉のイベントが消えます。
「扉が開いた。」のセリフと同時に扉のイベントを消したい場合は、mugaさんのように
warpEvent関数で表示マップの外へすっ飛ばせば良いです。
聞かれたから書いたのに何の反応も無し…
もう二度と答えない