Skip to content

Instantly share code, notes, and snippets.

@awestover89
Created October 18, 2015 22:48
Show Gist options
  • Select an option

  • Save awestover89/e1d2065945328fb019c2 to your computer and use it in GitHub Desktop.

Select an option

Save awestover89/e1d2065945328fb019c2 to your computer and use it in GitHub Desktop.
local inInstance = false;
local instanceName, lootedMoney, vendorMoney, savedId;
local lootableItems = {};
local frame = CreateFrame("FRAME", "InstanceProfitsFrame");
frame:RegisterEvent("ZONE_CHANGED_NEW_AREA");
frame:RegisterEvent("ADDON_LOADED");
frame:RegisterEvent("LOOT_OPENED");
frame:RegisterEvent("PLAYER_LOGOUT");
frame:RegisterEvent("GET_ITEM_INFO_RECEIVED");
local function eventHandler(self, event, ...)
if (event == "ZONE_CHANGED_NEW_AREA") then
local name, type, difficulty, difficultyName, _, _, _, instanceMapId, _ = GetInstanceInfo();
if ((type == "raid" or type == "party") and ignorezones[instanceMapId] == nil and not inInstance) then
inInstance = true;
instanceName = name;
lootedMoney, vendorMoney = 0, 0;
print("You have entered the " .. difficultyName .. " version of " .. name);
end
elseif event == "LOOT_OPENED" and inInstance then
for i=1, GetNumLootItems() do
local _, item, quantity = GetLootSlotInfo(i);
if (quantity ~= 0) then
name, link, quality, iLevel, reqLevel, class, subclass, maxStack, equipSlot, texture, vendorPrice = GetItemInfo(item);
if (name ~= nil) then
print("NAME " .. name);
print("QTY " .. quantity);
print("VEND PRICE " .. vendorPrice);
vendorMoney = vendorMoney + (vendorPrice * quantity);
else
if (lootableItems[item] == nil) then
lootableItems[item] = quantity;
else
lootableItems[item] = lootableItems[item] + quantity;
end
end
else
for line in item:gmatch("[^\r\n]+") do
local number = 0;
local denomination = "";
for word in line:gmatch("%w+") do
if tonumber(word) ~= nil then
number = word;
else
denomination = word;
end
end
if denomination == 'Gold' then
lootedMoney = lootedMoney + (number * 100 * 100);
elseif denomination == 'Silver' then
lootedMoney = lootedMoney + (number * 100);
elseif denomination == 'Copper' then
lootedMoney = lootedMoney + number;
end
end
end
end
elseif event == "GET_ITEM_INFO_RECEIVED" and inInstance then
print("ITEM INFO SERVER RESPONSE RECEIVED");
name, link, quality, iLevel, reqLevel, class, subclass, maxStack, equipSlot, texture, vendorPrice = GetItemInfo(arg1);
local quantity = lootableItems[name];
print("NAME " .. name);
print("QTY " .. quantity);
print("VEND PRICE " .. vendorPrice);
vendorMoney = vendorMoney + (vendorPrice * quantity);
lootableItems[name] = 0;
end
end
frame:SetScript("OnEvent", eventHandler);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment