アイテム(質問掲示板

投稿: User icon mini 退会したユーザー 投稿:2009/08/17 11:29:17(最新:2009/08/21 14:32:21)
アイテムを複数受け取るにはどうしたらいいですか?
今テストプレーでボスキャラに勝つのが不可能に近いので、アイテムを複数追加したいのですが・・・

コメントする

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

コメント一覧

User icon mini 退会したユーザー(投稿日:2009/08/21 14:32, 履歴)
ありがとうございます
Material 6858 mini akasata(投稿日:2009/08/21 13:27, 履歴)
アイテムを渡すマップにアイテムが追加されていないと、
アイテムを追加することはできません。

たとえば、以下のように設定されているとします。

マップA
  アイテムC
マップB
  アイテムD


マップAでは、アイテムCは渡せますが、アイテムDは
渡せません。マップBでは、アイテムDは渡せますが、
アイテムCは渡せません。

マップBに移動したあと、マップAに移動したときに
マップAでアイテムDが渡せてしまうかもしれませんが、
もしこれが発生しているとすれば、Rmakeのバグという
ことになります。

ですから、アイテムは、渡すスクリプトを書くマップに
追加して下さい。

よろしくお願いします。
User icon mini 退会したユーザー(投稿日:2009/08/21 12:50, 履歴)
いまゲームを作っていて、最初のマップでアイテムAを受け取った後、別のマップでまたアイテムBを受け取ろうとすると受け取れません。
でも、最初にアイテムBのあるマップから開始すると、アイテムBを受け取れるんです
なぜでしょうか?
User icon mini 退会したユーザー(投稿日:2009/08/17 13:00, 履歴)
ありがとうございます!
Material 6858 mini akasata(投稿日:2009/08/17 12:28, 履歴)
以下のような書き方はどうでしょうか。

if getFlag("アイテムを受け取った") 
  speak("もうアイテムは渡したよ!") 
else
  speak("アイテムをやろう。") 
  speak("普通の剣と魔法弾丸と回復魔法を渡しました。") 
  
  # アイテムを渡す処理
  giveItem(1)
  giveItem(2)
  giveItem(3)
  
  setFlag("アイテムを受け取った",true) 
end


アクションRPGでは、持てるアイテムの総数が32個なので、
プレイヤーキャラクタが既に32個以上アイテムを持っていると
アイテムを渡せないことがあります。つまり、giveItem関数が
失敗することがあります。

そこで、ヘルプでは以下のような書き方をしています。

if giveItem(5)
  speak("渡しました")
else
  speak("渡せませんでした。")
end


アイテムの個数が32個を越えないなら上記のようなif文を
書く必要はありません。

ヘルプがわかりにくくて申し訳ないです。。。

User icon mini 退会したユーザー(投稿日:2009/08/17 12:07, 履歴)
前のトピックのことですが、アイテムを一度受け取ったらもう受け取れないようにするには

if getFlag("アイテムを受け取った")
speak("もうアイテムは渡したよ!")
else
speak("アイテムをやろう。")
# アイテムを渡す処理は省略します。。。←ここに
「if giveItem(5)
speak("渡しました")
else
speak("渡せませんでした。")
end」 をいれるんですか?

setFlag("アイテムを受け取った",true)
end

こういう関数はいまいち理解できなくて・・・
Material 6858 mini akasata(投稿日:2009/08/17 11:34, 履歴)
Rmakeのご利用ありがとうございます!

アイテムを渡す関数はgiveItem関数ですが、
この関数は何回呼び出しても大丈夫です。
以下のように書くことができます。

giveItem(1)
giveItem(2)
giveItem(3)


よろしくお願いします。