From 06855dd1de1ca0b52b23c713b5d423b2498d1ac9 Mon Sep 17 00:00:00 2001 From: BenDol Date: Sun, 20 Apr 2014 07:45:10 +1200 Subject: [PATCH] Added subType for Player:getItem/getItems. --- modules/gamelib/player.lua | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/modules/gamelib/player.lua b/modules/gamelib/player.lua index 5df5492f..ae464c95 100644 --- a/modules/gamelib/player.lua +++ b/modules/gamelib/player.lua @@ -99,37 +99,24 @@ function Player:dismount() end end -function Player:getItem(itemid) - for i=InventorySlotFirst,InventorySlotLast do - local item = self:getInventoryItem(i) - if item and item:getId() == itemid then - return item - end - end - - for i, container in pairs(g_game.getContainers()) do - for j, item in pairs(container:getItems()) do - if item:getId() == itemid then - item.container = container - return item - end - end - end - return items +function Player:getItem(itemId, subType) + return g_game.findPlayerItem(itemId, subType or -1) end -function Player:getItems(itemid) +function Player:getItems(itemId, subType) + local subType = subType or -1 + local items = {} for i=InventorySlotFirst,InventorySlotLast do local item = self:getInventoryItem(i) - if item and item:getId() == itemid then + if item and item:getId() == itemId and (subType == -1 or item:getSubType() == subType) then table.insert(items, item) end end for i, container in pairs(g_game.getContainers()) do for j, item in pairs(container:getItems()) do - if item:getId() == itemid then + if item:getId() == itemId and (subType == -1 or item:getSubType() == subType) then item.container = container table.insert(items, item) end @@ -138,8 +125,8 @@ function Player:getItems(itemid) return items end -function Player:getItemsCount(itemid) - local items, count = self:getItems(itemid), 0 +function Player:getItemsCount(itemId) + local items, count = self:getItems(itemId), 0 for i=1,#items do count = count + items[i]:getCount() end