260 lines
5.9 KiB
Lua
260 lines
5.9 KiB
Lua
if not Nampower then
|
|
return
|
|
end
|
|
|
|
if not Nampower:HasMinimumVersion(2, 14, 0) then
|
|
return
|
|
end
|
|
|
|
local function GetSpellMod(num)
|
|
local modifierTypes = {
|
|
[0] = "DAMAGE",
|
|
[1] = "DURATION",
|
|
[2] = "THREAT",
|
|
[3] = "ATTACK_POWER",
|
|
[4] = "CHARGES",
|
|
[5] = "RANGE",
|
|
[6] = "RADIUS",
|
|
[7] = "CRITICAL_CHANCE",
|
|
[8] = "ALL_EFFECTS",
|
|
[9] = "NOT_LOSE_CASTING_TIME",
|
|
[10] = "CASTING_TIME",
|
|
[11] = "COOLDOWN",
|
|
[12] = "SPEED",
|
|
[14] = "COST",
|
|
[15] = "CRIT_DAMAGE_BONUS",
|
|
[16] = "RESIST_MISS_CHANCE",
|
|
[17] = "JUMP_TARGETS",
|
|
[18] = "CHANCE_OF_SUCCESS",
|
|
[19] = "ACTIVATION_TIME",
|
|
[20] = "EFFECT_PAST_FIRST",
|
|
[21] = "CASTING_TIME_OLD",
|
|
[22] = "DOT",
|
|
[23] = "HASTE",
|
|
[24] = "SPELL_BONUS_DAMAGE",
|
|
[27] = "MULTIPLE_VALUE",
|
|
[28] = "RESIST_DISPEL_CHANCE"
|
|
}
|
|
return modifierTypes[num] or "UNKNOWN"
|
|
end
|
|
|
|
function PrintTable(tbl, indent)
|
|
indent = indent or 0
|
|
local prefix = string.rep(" ", indent)
|
|
|
|
for k, v in pairs(tbl) do
|
|
if type(v) == "table" then
|
|
print(prefix .. tostring(k) .. ":")
|
|
PrintTable(v, indent + 1)
|
|
else
|
|
print(prefix .. tostring(k) .. ": " .. tostring(v))
|
|
end
|
|
end
|
|
end
|
|
|
|
if CombatLogAdd then
|
|
function PrintTableToCombatLog(tbl, indent)
|
|
indent = indent or 0
|
|
local prefix = string.rep(" ", indent)
|
|
|
|
for k, v in pairs(tbl) do
|
|
if type(v) == "table" then
|
|
CombatLogAdd(prefix .. tostring(k) .. ":")
|
|
PrintTableToCombatLog(v, indent + 1)
|
|
else
|
|
CombatLogAdd(prefix .. tostring(k) .. ": " .. tostring(v))
|
|
end
|
|
end
|
|
end
|
|
|
|
function LogUnitData(unit)
|
|
local data = GetUnitData(unit)
|
|
if data then
|
|
PrintTableToCombatLog(data)
|
|
else
|
|
print("No unit data available")
|
|
end
|
|
end
|
|
|
|
function LogSpellData(spellId)
|
|
local data = GetSpellRec(spellId)
|
|
if data then
|
|
PrintTableToCombatLog(data)
|
|
else
|
|
print("No spell data available")
|
|
end
|
|
end
|
|
end
|
|
|
|
function PrintBuffs(unit)
|
|
for i = 1, 32 do
|
|
local texture, stacks, spellId = UnitBuff(unit, i)
|
|
if not texture then
|
|
break
|
|
end
|
|
print(tostring(i) .. " " .. tostring(spellId))
|
|
end
|
|
end
|
|
|
|
function PrintUnitData(unit)
|
|
local data = GetUnitData(unit)
|
|
if data then
|
|
PrintTable(data)
|
|
else
|
|
print("No unit data available")
|
|
end
|
|
end
|
|
|
|
function PrintSpellMods(spellId)
|
|
for i = 0, 28 do
|
|
local flatMod, percentMod, ret = GetSpellModifiers(spellId, i)
|
|
if ret > 0 then
|
|
print(GetSpellMod(i) .. " (" .. tostring(i) .. "): flat:" .. tostring(flatMod) .. " percent:" .. tostring(percentMod))
|
|
end
|
|
end
|
|
end
|
|
|
|
function PrintSpellData(spellId)
|
|
local data = GetSpellRec(spellId)
|
|
if data then
|
|
PrintTable(data)
|
|
else
|
|
print("No spell data available")
|
|
end
|
|
end
|
|
|
|
if not Nampower:HasMinimumVersion(2, 16, 0) then
|
|
return
|
|
end
|
|
|
|
function PrintItemLocation(itemNameOrId)
|
|
local bagIndex, slot = FindPlayerItemSlot(itemNameOrId)
|
|
print(tostring(bagIndex) .. " " .. tostring(slot))
|
|
end
|
|
|
|
function PrintEquippedItems()
|
|
local target = "player"
|
|
if UnitExists("target") then
|
|
target = "target"
|
|
end
|
|
local data = GetEquippedItems(target)
|
|
PrintTable(data)
|
|
end
|
|
|
|
function LogEquippedItems()
|
|
local target = "player"
|
|
if UnitExists("target") then
|
|
target = "target"
|
|
end
|
|
local data = GetEquippedItems(target)
|
|
PrintTableToCombatLog(data)
|
|
end
|
|
|
|
function PrintBagItems()
|
|
local data = GetBagItems()
|
|
PrintTable(data)
|
|
end
|
|
|
|
function LogBagItems()
|
|
local data = GetBagItems()
|
|
PrintTableToCombatLog(data)
|
|
end
|
|
|
|
function TestBagItems(bagIndex)
|
|
local items = GetBagItems(bagIndex)
|
|
local numItemsChecked = 0
|
|
for slot, itemData in pairs(items) do
|
|
local itemLink = GetContainerItemLink(bagIndex, slot)
|
|
if not itemLink then
|
|
print(tostring(bagIndex) .. " " .. tostring(slot))
|
|
PrintTable(itemData)
|
|
end
|
|
local _, _, itemId = strfind(itemLink, "(%d+):")
|
|
numItemsChecked = numItemsChecked + 1
|
|
if (tostring(itemData.itemId) ~= itemId) then
|
|
print("Item mismatch at " .. tostring(bagIndex) .. " " .. tostring(slot) .. " " .. tostring(itemData.itemId) .. " " .. tostring(itemId))
|
|
print(itemLink)
|
|
end
|
|
end
|
|
print("checked " .. tostring(numItemsChecked) .. " items")
|
|
end
|
|
|
|
function TestAllBagItems()
|
|
local data = GetBagItems()
|
|
local numItemsChecked = 0
|
|
for bagIndex, items in pairs(data) do
|
|
for slot, itemData in pairs(items) do
|
|
local itemLink = GetContainerItemLink(bagIndex, slot)
|
|
if not itemLink then
|
|
print(tostring(bagIndex) .. " " .. tostring(slot))
|
|
PrintTable(itemData)
|
|
end
|
|
local _, _, itemId = strfind(itemLink, "(%d+):")
|
|
numItemsChecked = numItemsChecked + 1
|
|
if (tostring(itemData.itemId) ~= itemId) then
|
|
print("Item mismatch at " .. tostring(bagIndex) .. " " .. tostring(slot) .. " " .. tostring(itemData.itemId) .. " " .. tostring(itemId))
|
|
print(itemLink)
|
|
end
|
|
end
|
|
end
|
|
print("checked " .. tostring(numItemsChecked) .. " items")
|
|
end
|
|
|
|
function TestTrinkets()
|
|
local data = GetTrinkets()
|
|
for index, trinketData in pairs(data) do
|
|
local bagIndex = trinketData.bagIndex
|
|
local slot = trinketData.slotIndex
|
|
local itemLink
|
|
if bagIndex then
|
|
itemLink = GetContainerItemLink(bagIndex, slot)
|
|
else
|
|
itemLink = GetInventoryItemLink("player", slot)
|
|
end
|
|
local _, _, itemId = strfind(itemLink, "(%d+):")
|
|
if (tostring(trinketData.itemId) ~= itemId) then
|
|
print("Trinket mismatch at " .. tostring(bagIndex) .. " " .. tostring(slot) .. " " .. tostring(itemData.itemId) .. " " .. tostring(itemId))
|
|
print(itemLink)
|
|
end
|
|
end
|
|
end
|
|
|
|
if not Nampower:HasMinimumVersion(2, 17, 0) then
|
|
return
|
|
end
|
|
|
|
function PrintCastInfo()
|
|
local data = GetCastInfo()
|
|
if data then
|
|
PrintTable(data)
|
|
end
|
|
end
|
|
|
|
function PrintSpellCooldown(spellId)
|
|
local data = GetSpellIdCooldown(spellId)
|
|
if data then
|
|
PrintTable(data)
|
|
end
|
|
end
|
|
|
|
function PrintItemCooldown(itemId)
|
|
local data = GetItemIdCooldown(itemId)
|
|
if data then
|
|
PrintTable(data)
|
|
end
|
|
end
|
|
|
|
function PrintTrinketCooldown(trinketId)
|
|
local data = GetTrinketCooldown(trinketId)
|
|
if data then
|
|
PrintTable(data)
|
|
end
|
|
end
|
|
|
|
function PrintTrinkets()
|
|
local data = GetTrinkets(1)
|
|
if data then
|
|
PrintTable(data)
|
|
end
|
|
end
|