From 7a3a6259d507a1dc418118a0fec52b6124ba0959 Mon Sep 17 00:00:00 2001 From: Manuel Simon Hirsig Date: Sun, 20 Mar 2016 21:13:56 +0100 Subject: [PATCH] vendor itemlink check --- merchant.lua | 47 +++++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/merchant.lua b/merchant.lua index 31671ca..ff9a012 100644 --- a/merchant.lua +++ b/merchant.lua @@ -30,31 +30,34 @@ function private.scan_merchant() -- TODO maybe more detail? zone or local merchant_name = UnitName('npc') local merchant_item_count = GetMerchantNumItems() for i=1,merchant_item_count do - local item_id = Aux.info.parse_hyperlink(GetMerchantItemLink(i)) - local _, _, price, count, stock = GetMerchantItemInfo(i) - local new_unit_price, new_limited = price / count, Aux.persistence.blizzard_boolean(stock >= 0) - if aux_merchant_buy[item_id] then - local fields = Aux.util.split(aux_merchant_buy[item_id], '#') - local old_unit_price, old_limited = tonumber(fields[1]), tonumber(fields[2]) + local link = GetMerchantItemLink(i) + if link then + local item_id = Aux.info.parse_hyperlink(link) + local _, _, price, count, stock = GetMerchantItemInfo(i) + local new_unit_price, new_limited = price / count, Aux.persistence.blizzard_boolean(stock >= 0) + if aux_merchant_buy[item_id] then + local fields = Aux.util.split(aux_merchant_buy[item_id], '#') + local old_unit_price, old_limited = tonumber(fields[1]), tonumber(fields[2]) - local unit_price - if old_limited and not new_limited then - unit_price = new_unit_price - elseif new_limited and not old_limited then - unit_price = old_unit_price + local unit_price + if old_limited and not new_limited then + unit_price = new_unit_price + elseif new_limited and not old_limited then + unit_price = old_unit_price + else + unit_price = min(old_unit_price, new_unit_price) + end + + aux_merchant_buy[item_id] = Aux.util.join({ + unit_price, + old_limited or new_limited, + }, '#') else - unit_price = min(old_unit_price, new_unit_price) + aux_merchant_buy[item_id] = Aux.util.join({ + new_unit_price, + new_limited, + }, '#') end - - aux_merchant_buy[item_id] = Aux.util.join({ - unit_price, - old_limited or new_limited, - }, '#') - else - aux_merchant_buy[item_id] = Aux.util.join({ - new_unit_price, - new_limited, - }, '#') end end end \ No newline at end of file