Originally Posted by
cry4ty
Sure, in few minutes. Gonna upload them and i'll mention what each one has.
And I forgot to mention in order for this addon to be executed, you need to log-ingame go to your bank and write "/chardump profskip" in your chat.Just to give you an idea how it works , since you said you don't have the 4.xx client.
EDIT: I "tried" to find a pattern myself few days ago:
1. without any gear/item on my char ->
http://www.filedropper.com/gearscore_2
2. with only 1 Maelstorm Crystal on char ->
http://www.filedropper.com/gearscore_3
3. with a bunch of epic Items from Firelands/PvP etc. ->
http://www.filedropper.com/gearscore_4
but no luck since I don't know too much LUA
You can't modify the generated files very easily, you need to edit the Lua directly.
This is the Get Item Data function:
Code:
function info.GetIData()
local retTbl = {}
for slot = 1, 74 do
itemLink = GetInventoryItemLink("player", slot)
if itemLink then
count = GetInventoryItemCount("player",slot)
for entry, chant, Gem1, Gem2, Gem3, _, _, _, _ in string.gmatch(itemLink,".-Hitem:(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+).*") do
retTbl["0:"..(slot-1)..":"..(entry)] =count..":"..Gem1..":"..Gem2..":"..Gem3..":"..chant;
end
end
end
for bag = 0, NUM_BAG_FRAMES do
for slot = 1, GetContainerNumSlots(bag) do
ItemLink = GetContainerItemLink(bag, slot)
if ItemLink then
local _, count, _, _, _ = GetContainerItemInfo(bag, slot);
local p = bag + 1;
for entry, chant, Gem1, Gem2, Gem3, _, _, _, _ in string.gmatch(ItemLink,".-Hitem:(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+).*") do
retTbl[p..":"..(slot-1)..":"..(entry)] =count..":"..Gem1..":"..Gem2..":"..Gem3..":"..chant;
end
end
end
end
local numSlots, isFull = GetNumBankSlots()
for bagNum = 5, 11 do
local bagNum_ID = BankButtonIDToInvSlotID(bagNum, 1)
local itemLink = GetInventoryItemLink("player", bagNum_ID)
if itemLink then
local size = GetContainerNumSlots(bagNum)
for bagItem = 1, size do
ItemLink = GetContainerItemLink(bagNum, bagItem)
if ItemLink then
local _, count, _, _, _ = GetContainerItemInfo(bagNum, bagItem);
local p = bagNum + 1;
for entry, chant, Gem1, Gem2, Gem3, _, _, _, _ in string.gmatch(ItemLink,".-Hitem:(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+).*") do
retTbl[p..":"..(bagItem - 1)..":"..(entry)] =count..":"..Gem1..":"..Gem2..":"..Gem3..":"..chant;
end
end
end
end
end
private.ILog("Bank Slots ["..numSlots.."] Done");
private.ILog("Inventory DONE...");
return retTbl;
end
So for example, to add martin thunder to you (item 192):
Code:
function info.GetIData()
local retTbl = {}
for slot = 1, 74 do
itemLink = GetInventoryItemLink("player", slot)
if itemLink then
count = GetInventoryItemCount("player",slot)
for entry, chant, Gem1, Gem2, Gem3, _, _, _, _ in string.gmatch(itemLink,".-Hitem:(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+).*") do
retTbl["0:"..(slot-1)..":"..(entry)] =count..":"..Gem1..":"..Gem2..":"..Gem3..":"..chant;
end
end
end
-- This line below, slot 0 item id 192, no gems and no enchant
retTbl["0:"..(0)..":"..(192)] =1..":"..0..":"..0..":"..0..":"..0;
for bag = 0, NUM_BAG_FRAMES do
for slot = 1, GetContainerNumSlots(bag) do
ItemLink = GetContainerItemLink(bag, slot)
if ItemLink then
local _, count, _, _, _ = GetContainerItemInfo(bag, slot);
local p = bag + 1;
for entry, chant, Gem1, Gem2, Gem3, _, _, _, _ in string.gmatch(ItemLink,".-Hitem:(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+).*") do
retTbl[p..":"..(slot-1)..":"..(entry)] =count..":"..Gem1..":"..Gem2..":"..Gem3..":"..chant;
end
end
end
end
local numSlots, isFull = GetNumBankSlots()
for bagNum = 5, 11 do
local bagNum_ID = BankButtonIDToInvSlotID(bagNum, 1)
local itemLink = GetInventoryItemLink("player", bagNum_ID)
if itemLink then
local size = GetContainerNumSlots(bagNum)
for bagItem = 1, size do
ItemLink = GetContainerItemLink(bagNum, bagItem)
if ItemLink then
local _, count, _, _, _ = GetContainerItemInfo(bagNum, bagItem);
local p = bagNum + 1;
for entry, chant, Gem1, Gem2, Gem3, _, _, _, _ in string.gmatch(ItemLink,".-Hitem:(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+).*") do
retTbl[p..":"..(bagItem - 1)..":"..(entry)] =count..":"..Gem1..":"..Gem2..":"..Gem3..":"..chant;
end
end
end
end
end
private.ILog("Bank Slots ["..numSlots.."] Done");
private.ILog("Inventory DONE...");
return retTbl;
end
And if you want to print out what item is in what slot ID:
Code:
function info.GetIData()
local retTbl = {}
for slot = 1, 74 do
itemLink = GetInventoryItemLink("player", slot)
if itemLink then
count = GetInventoryItemCount("player",slot)
for entry, chant, Gem1, Gem2, Gem3, _, _, _, _ in string.gmatch(itemLink,".-Hitem:(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+).*") do
retTbl["0:"..(slot-1)..":"..(entry)] =count..":"..Gem1..":"..Gem2..":"..Gem3..":"..chant;
print("Slot: " .. tostring(slot - 1) .. " has item id: " .. tostring(entry))
end
end
end
for bag = 0, NUM_BAG_FRAMES do
for slot = 1, GetContainerNumSlots(bag) do
ItemLink = GetContainerItemLink(bag, slot)
if ItemLink then
local _, count, _, _, _ = GetContainerItemInfo(bag, slot);
local p = bag + 1;
for entry, chant, Gem1, Gem2, Gem3, _, _, _, _ in string.gmatch(ItemLink,".-Hitem:(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+).*") do
retTbl[p..":"..(slot-1)..":"..(entry)] =count..":"..Gem1..":"..Gem2..":"..Gem3..":"..chant;
end
end
end
end
local numSlots, isFull = GetNumBankSlots()
for bagNum = 5, 11 do
local bagNum_ID = BankButtonIDToInvSlotID(bagNum, 1)
local itemLink = GetInventoryItemLink("player", bagNum_ID)
if itemLink then
local size = GetContainerNumSlots(bagNum)
for bagItem = 1, size do
ItemLink = GetContainerItemLink(bagNum, bagItem)
if ItemLink then
local _, count, _, _, _ = GetContainerItemInfo(bagNum, bagItem);
local p = bagNum + 1;
for entry, chant, Gem1, Gem2, Gem3, _, _, _, _ in string.gmatch(ItemLink,".-Hitem:(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+):(%d+).*") do
retTbl[p..":"..(bagItem - 1)..":"..(entry)] =count..":"..Gem1..":"..Gem2..":"..Gem3..":"..chant;
end
end
end
end
end
private.ILog("Bank Slots ["..numSlots.."] Done");
private.ILog("Inventory DONE...");
return retTbl;
end