スクリプト/所持アイテムをアイテムIDで削除する関数

最終投稿者:Material 6858 mini akasata 更新:2011/07/20 16:46:22
2DRPGおよびアクションRPGでは、アイテムの削除はアイテムの
インデックス(※)を指定しなくてはなりません。

関数リファレンス(removeItemWithIndex関数)
http://rmake.jp/document/function_reference#removeItemWithIndex関数

※ インデックスとは、プログラミング用語では、通し番号という
ような意味合いがあります。この場合は、所持しているアイテムが
何番目であるかを指します。

とはいえ、「鍵を使ったら鍵を消したい」というようなシーンで
使う場合、インデックスによる消去は直感的ではありません。
アイテムIDで指定したいところです。

そこで、アイテムIDを指定したら、アイテムを消去する関数を
実現します。

アイテムを一つ削除する場合


開始スクリプトに以下のコードを書きます。

def removeItemById(itemId)
  # アイテムIDに対応するアイテムインデックスの取得
  itemIndex = getItemIndexWithId(itemId)
  # アイテムインデックスを消去
  return removeItemWithIndex(itemIndex)
end


そして、アイテムを消去したいときに、以下のように書きます。

removeItemById(アイテムのID)


同じアイテムをすべて削除する場合


前述の関数では、同じアイテムを複数個持っている場合、
一つしか消去することができません。すべてのアイテムを
消去したい場合は以下のように書いてください。

開始スクリプトに以下のコードを書きます。

def removeItemAllById(itemId)
  itemIndex = getItemIndexWithId(itemId)
  while itemIndex > -1 do
    removeItemWithIndex(itemIndex)
    itemIndex = getItemIndexWithId(itemId)
  end
end


そして、アイテムを消去したいときに、以下のように書きます。

removeItemAllById(アイテムのID)

コメントする

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

コメント一覧

  1 mini 闇さん(投稿日:2011/07/20 16:46, 履歴)
関数リファレンスのアイテム関連見ても
ぜんぜんわかりません
Nyan mini rurun9(投稿日:2011/06/11 18:05, 履歴)
ヘルプ>関数リファレンスのアイテム関連を探すと
装備品をいじれるのがあるので、同じようにつくる事ができると思います。

気を付けなければいけない点として、
装備可能アイテムは「現在装備中のもの」と「持っているだけで装備はしていないもの」が考えられるので、持ち物から特定のアイテムを全部消去したい場合には、両方を確認する必要があるワケです。
  1 mini 闇さん(投稿日:2011/06/11 13:13, 履歴)
装備しているアイテムを消すにはどうすればいいですか
User icon mini 退会したユーザー(投稿日:2011/05/21 12:29, 履歴)
おぉ!これで念願のゲームが作れるぞ!
メニュー
目次