スクリプト/所持アイテムをアイテムIDで削除する関数
最終投稿者: akasata
更新:2011/07/20 16:46:22
2DRPGおよびアクションRPGでは、アイテムの削除はアイテムの
インデックス(※)を指定しなくてはなりません。
関数リファレンス(removeItemWithIndex関数)
http://rmake.jp/document/function_reference#removeItemWithIndex関数
※ インデックスとは、プログラミング用語では、通し番号という
ような意味合いがあります。この場合は、所持しているアイテムが
何番目であるかを指します。
とはいえ、「鍵を使ったら鍵を消したい」というようなシーンで
使う場合、インデックスによる消去は直感的ではありません。
アイテムIDで指定したいところです。
そこで、アイテムIDを指定したら、アイテムを消去する関数を
実現します。
アイテムを一つ削除する場合
開始スクリプトに以下のコードを書きます。
そして、アイテムを消去したいときに、以下のように書きます。
同じアイテムをすべて削除する場合
前述の関数では、同じアイテムを複数個持っている場合、
一つしか消去することができません。すべてのアイテムを
消去したい場合は以下のように書いてください。
開始スクリプトに以下のコードを書きます。
そして、アイテムを消去したいときに、以下のように書きます。
ツイート
インデックス(※)を指定しなくてはなりません。
関数リファレンス(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)
コメントする
コメントするには、ログインする必要があります。
ぜんぜんわかりません