vanilla-wow-addons – Rev 1
?pathlinks?
TheoryCraft_Data.EquipEffects = {}
local _, class = UnitClass("player")
local function findpattern(text, pattern, start)
if (text and pattern and (string.find(text, pattern, start))) then
return string.sub(text, string.find(text, pattern, start))
else
return ""
end
end
local function TheoryCraft_AddEquipEffect (slotname, test, data, equippedsets)
if (test ~= "test") then
TheoryCraftTooltip:SetOwner(UIParent,"ANCHOR_NONE")
TheoryCraftTooltip:SetInventoryItem ("player", GetInventorySlotInfo(slotname.."Slot"))
end
if (getglobal("TheoryCraftTooltipTextLeft1") == nil) then
return
end
local ltext = getglobal(TheoryCraftTooltip:GetName().."TextLeft1"):GetText()
if (data["name"] == ltext) and (data["numlines"] == TheoryCraftTooltip:NumLines()) then
return
end
for k,v in pairs(data) do
data[k] = nil
end
if data["procs"] == nil then data["procs"] = {} end
for k,v in pairs(equippedsets) do
equippedsets[k] = nil
end
data["name"] = ltext
data["numlines"] = TheoryCraftTooltip:NumLines()
local index = 2
ltext = getglobal("TheoryCraftTooltipTextLeft"..index)
if ltext then
ltext = ltext:GetText()
end
rtext = getglobal("TheoryCraftTooltipTextRight"..index)
if rtext then
if (not getglobal("TheoryCraftTooltipTextRight"..index):IsVisible()) then
rtext = nil
else
rtext = rtext:GetText()
end
end
local s2 = 1
local is = 1
local i2 = 1
local ignoreline = false
local startpos, endpos, found, foundme
while (ltext ~= nil) do
if strfind(ltext, TheoryCraft_Locale.Set) then
local numpieces = tonumber(findpattern(findpattern(ltext, TheoryCraft_Locale.Set), "%d+"))
while (string.len(ltext) > 0) and (string.sub(ltext, string.len(ltext), string.len(ltext)) == " ") do
ltext = string.sub(ltext, 1, string.len(ltext)-1)
end
while (string.len(ltext) > 0) and (string.sub(ltext, string.len(ltext), string.len(ltext)) ~= " ") do
ltext = string.sub(ltext, 1, string.len(ltext)-1)
end
while (string.len(ltext) > 0) and (string.sub(ltext, string.len(ltext), string.len(ltext)) == " ") do
ltext = string.sub(ltext, 1, string.len(ltext)-1)
end
local setname = ltext
equippedsets[setname] = (equippedsets[setname] or 0)+1
if TheoryCraft_SetBonuses[setname] == nil then
TheoryCraft_SetBonuses[setname] = {}
end
local foundbonuses = {}
local idx = 1
index = index + 1
ltext = getglobal(TheoryCraftTooltip:GetName().."TextLeft"..index)
while (ltext ~= nil) do
ltext = ltext:GetText()
if ltext == nil then break end
if strfind(string.sub(ltext, 1, 4), "%d+") then
foundbonuses[idx] = {}
foundbonuses[idx]["pieces"] = tonumber(findpattern(ltext, "%d+"))
ltext = string.sub(ltext, 5+string.len(TheoryCraft_Locale.ID_Set))
foundbonuses[idx]["text"] = ltext
idx = idx + 1
end
index = index + 1
ltext = getglobal(TheoryCraftTooltip:GetName().."TextLeft"..index)
end
local newbonuses = {}
i = 1
for k,v in TheoryCraft_SetBonuses[setname] do
if (v["pieces"] <= numpieces) then
newbonuses[i] = v
i = i + 1
end
end
for k,v in pairs(foundbonuses) do
newbonuses[i] = v
i = i + 1
end
TheoryCraft_SetBonuses[setname] = newbonuses
break
end
if (strfind(ltext, "^"..TheoryCraft_Locale.ID_Equip)) then
foundme = false
for k, v in pairs(TheoryCraft_Equips) do
if (v.slot == nil) or (v.slot == slotname) then
if ((foundme == false) or (v.me == nil)) then
_, start, found = strfind(ltext, v.text)
if _ then
if v.proc then
i2 = 1
if data["procs"] == nil then
data["procs"] = {}
end
while data["procs"][i2] do i2 = i2 + 1 end
data["procs"][i2] = {}
data["procs"][i2].amount = v.amount
data["procs"][i2].proc = v.proc
data["procs"][i2].duration = v.duration
data["procs"][i2].exact = v.exact
data["procs"][i2].type = v.type
else
if (v.amount) then
data[v.type] = (data[v.type] or 0) + v.amount
else
data[v.type] = (data[v.type] or 0) + tonumber(found)
end
if (v.me) then
foundme = true
end
end
end
end
end
end
else
foundme = false
if rtext then
for k, v in pairs(TheoryCraft_EquipEveryRight) do
if (v.slot == nil) or (v.slot == slotname) then
if (foundme == false) or (v.me == nil) then
_, start, found = strfind(rtext, v.text)
if _ then
if (v.amount) then
data[v.type] = (data[v.type] or 0) + v.amount
else
data[v.type] = (data[v.type] or 0) + found
end
if (v.me) then foundme = true end
end
end
end
end
end
ignoreline = false
for k, v in pairs(TheoryCraft_IgnoreLines) do
if strfind(ltext, v) then
ignoreline = true
break
end
end
if not ignoreline then
foundme = false
for k, v in pairs(TheoryCraft_EquipEveryLine) do
if (v.slot == nil) or (v.slot == slotname) then
if (not foundme) or (not v.me) then
_, start, found = strfind(ltext, v.text)
if _ then
if (v.amount) then
data[v.type] = (data[v.type] or 0) + v.amount
else
data[v.type] = (data[v.type] or 0) + found
end
if (v.me) then foundme = true end
end
end
end
end
end
end
index = index + 1
ltext = getglobal("TheoryCraftTooltipTextLeft"..index)
rtext = getglobal("TheoryCraftTooltipTextRight"..index)
if ltext then
ltext = ltext:GetText()
end
if rtext then
if (not getglobal("TheoryCraftTooltipTextRight"..index):IsVisible()) then
rtext = nil
else
rtext = rtext:GetText()
end
end
end
TheoryCraftTooltip:ClearLines()
return true
end
function TheoryCraft_CombineTables(tab1, tab2)
if tab2 == nil then tab2 = tab1 return end
for k,v in pairs(tab1) do
if type(v) == "table" then
tab2[k] = TheoryCraft_CombineTables(v, tab2[k])
elseif tonumber(v) and tonumber(tab2[k] or 0) then
tab2[k] = v + (tab2[k] or 0)
end
end
end
local function TheoryCraft_AddAllEquips(outfit, force)
local i2 = 1
local resetall = true
if not force and UnitAffectingCombat("player") then
resetall = false
end
if (TheoryCraft_Outfits[outfit]) == nil then
outfit = 1
end
if TheoryCraft_Data["SlotData"] == nil then
TheoryCraft_Data["SlotData"] = {}
TheoryCraft_Data["SetData"] = {}
end
TheoryCraft_Data.OldOutfit = outfit
if TheoryCraft_Data.StatsToDo == nil then
TheoryCraft_Data.StatsToDo = {}
end
TheoryCraft_DeleteTable(TheoryCraft_Data.StatsToDo)
for k, v in pairs(TheoryCraft_Outfits[outfit].wear) do
TheoryCraft_Data.StatsToDo[v] = true
if TheoryCraft_Data["SlotData"][v] == nil then
TheoryCraft_Data["SlotData"][v] = {}
TheoryCraft_Data["SlotData"][v]["procs"] = {}
end
if TheoryCraft_Data["SetData"][v] == nil then
TheoryCraft_Data["SetData"][v] = {}
end
if (v == "MainHand") or (v == "SecondaryHand") or (v == "Ranged") or (v == "Ammo") then
changed = TheoryCraft_AddEquipEffect(v, nil, TheoryCraft_Data["SlotData"][v], TheoryCraft_Data["SetData"][v])
elseif (resetall) then
changed = TheoryCraft_AddEquipEffect(v, nil, TheoryCraft_Data["SlotData"][v], TheoryCraft_Data["SetData"][v])
end
end
if not TheoryCraft_Data.EquipEffects then
TheoryCraft_Data.EquipEffects = {}
end
if not TheoryCraft_Data.EquipedSets then
TheoryCraft_Data.EquippedSets = {}
end
TheoryCraft_DeleteTable(TheoryCraft_Data.EquipEffects)
TheoryCraft_DeleteTable(TheoryCraft_Data.EquippedSets)
for k, v in pairs(TheoryCraft_Data.StatsToDo) do
TheoryCraft_CombineTables(TheoryCraft_Data.SlotData[k], TheoryCraft_Data.EquipEffects)
TheoryCraft_CombineTables(TheoryCraft_Data.SetData[k], TheoryCraft_Data.EquippedSets)
end
data = TheoryCraft_Data.EquipEffects
local i = 1
if (outfit == 2) then
TheoryCraft_Outfits[outfit].meleecritchance = 0
TheoryCraft_Outfits[outfit].formattackpower = 0
TheoryCraft_Outfits[outfit].rangedattackpower = 0
TheoryCraft_Outfits[outfit].attackpower = 0
TheoryCraft_Outfits[outfit].strength = 0
TheoryCraft_Outfits[outfit].agility = 0
TheoryCraft_Outfits[outfit].stamina = 0
TheoryCraft_Outfits[outfit].intellect = 0
TheoryCraft_Outfits[outfit].spirit = 0
TheoryCraft_Outfits[outfit].totalmana = 0
TheoryCraft_Outfits[outfit].totalhealth = 0
if (TheoryCraft_Settings["CustomOutfit"] == nil) then
TheoryCraft_Settings["CustomOutfit"] = TheoryCraft_Outfits[outfit]
TheoryCraft_Settings["CustomOutfit"].slots = {}
end
local k, v
while (TheoryCraft_SlotNames[i]) do
if ((TheoryCraft_SlotNames[i-1] == nil) or (TheoryCraft_SlotNames[i].slot ~= TheoryCraft_SlotNames[i-1].slot)) and (TheoryCraft_Settings["CustomOutfit"].slots[TheoryCraft_SlotNames[i].slot]) then
if TheoryCraft_Settings["CustomOutfit"].slots[TheoryCraft_SlotNames[i].slot] == nil then
TheoryCraft_Settings["CustomOutfit"].slots[TheoryCraft_SlotNames[i].slot] = {}
end
if TheoryCraft_Settings["CustomOutfit"].slots[TheoryCraft_SlotNames[i].slot]["stats"] == nil then TheoryCraft_Settings["CustomOutfit"].slots[TheoryCraft_SlotNames[i].slot]["stats"] = {} end
local a = TheoryCraft_Settings["CustomOutfit"].slots[TheoryCraft_SlotNames[i].slot]["stats"]
TheoryCraft_Outfits[outfit].meleecritchance = TheoryCraft_Outfits[outfit].meleecritchance+(a.meleecritchance or 0)
TheoryCraft_Outfits[outfit].formattackpower = TheoryCraft_Outfits[outfit].formattackpower+(a.formattackpower or 0)
TheoryCraft_Outfits[outfit].rangedattackpower = TheoryCraft_Outfits[outfit].rangedattackpower+(a.rangedattackpower or 0)
TheoryCraft_Outfits[outfit].attackpower = TheoryCraft_Outfits[outfit].attackpower+(a.attackpower or 0)
TheoryCraft_Outfits[outfit].strength = TheoryCraft_Outfits[outfit].strength+(a.strength or 0)
TheoryCraft_Outfits[outfit].agility = TheoryCraft_Outfits[outfit].agility+(a.agility or 0)
TheoryCraft_Outfits[outfit].stamina = TheoryCraft_Outfits[outfit].stamina+(a.stamina or 0)
TheoryCraft_Outfits[outfit].intellect = TheoryCraft_Outfits[outfit].intellect+(a.intellect or 0)
TheoryCraft_Outfits[outfit].spirit = TheoryCraft_Outfits[outfit].spirit+(a.spirit or 0)
TheoryCraft_Outfits[outfit].totalmana = TheoryCraft_Outfits[outfit].totalmana+(a.totalmana or 0)
TheoryCraft_Outfits[outfit].totalhealth = TheoryCraft_Outfits[outfit].totalhealth+(a.totalhealth or 0)
if a.settype then
TheoryCraft_Data.EquippedSets[a.settype] = (TheoryCraft_Data.EquippedSets[a.settype] or 0) + 1
end
a = TheoryCraft_Settings["CustomOutfit"].slots[TheoryCraft_SlotNames[i].slot]["data"]
if type(a) == "table" then
for k,v in pairs(a) do
if k ~= "procs" then
if tonumber(v) then
data[k] = (tonumber(data[k]) or 0)+v
end
else
for k,v in pairs(a["procs"]) do
i2 = 1
if data["procs"] == nil then
data["procs"] = {}
end
while data["procs"][i2] do i2 = i2 + 1 end
data["procs"][i2] = {}
data["procs"][i2].amount = v.amount
data["procs"][i2].proc = v.proc
data["procs"][i2].duration = v.duration
data["procs"][i2].exact = v.exact
data["procs"][i2].type = v.type
end
end
end
end
end
i = i + 1
end
local returndata
for k,count in pairs(TheoryCraft_Data.EquippedSets) do
if TheoryCraft_SetBonuses[k] then
for k,v in pairs(TheoryCraft_SetBonuses[k]) do
if (v["pieces"] <= count) then
returndata = {}
returndata = TheoryCraft_DequipLine(v["text"], returndata)
for k,v in pairs(returndata) do
TheoryCraft_Outfits[outfit][k] = (TheoryCraft_Outfits[outfit][k] or 0) - v
end
returndata = {}
returndata = TheoryCraft_DequipSpecial(v["text"], returndata)
for k,v in pairs(returndata) do
data[k] = (data[k] or 0) - v
end
end
end
end
end
else
while (TheoryCraft_Outfits[outfit].newstat[i]) do
if TheoryCraft_Outfits[outfit].newstat[i].proc then
i2 = 1
if data["procs"] == nil then
data["procs"] = {}
end
while data["procs"][i2] do i2 = i2 + 1 end
data["procs"][i2] = {}
data["procs"][i2].amount = TheoryCraft_Outfits[outfit].newstat[i].amount
data["procs"][i2].proc = TheoryCraft_Outfits[outfit].newstat[i].proc
data["procs"][i2].duration = TheoryCraft_Outfits[outfit].newstat[i].duration
data["procs"][i2].exact = TheoryCraft_Outfits[outfit].newstat[i].exact
data["procs"][i2].type = TheoryCraft_Outfits[outfit].newstat[i].type
else
data[TheoryCraft_Outfits[outfit].newstat[i].type] = (data[TheoryCraft_Outfits[outfit].newstat[i].type] or 0) + TheoryCraft_Outfits[outfit].newstat[i].amount
end
i = i + 1
end
for k,v in pairs(TheoryCraft_Locale.SetTranslator) do
if v.id == TheoryCraft_Outfits[outfit].name then
if TheoryCraft_SetBonuses[v.translated] then
local returndata
TheoryCraft_Data.EquippedSets[v.translated] = 100
for k,v in pairs(TheoryCraft_SetBonuses[v.translated]) do
returndata = {}
returndata = TheoryCraft_DequipSpecial(v["text"], returndata)
for k,v in pairs(returndata) do
data[k] = (data[k] or 0) - v
end
end
end
break
end
end
end
local i2, ltext, _, start, found, foundme
for k,count in pairs(TheoryCraft_Data.EquippedSets) do
if TheoryCraft_SetBonuses[k] then
foundme = false
for k,v in pairs(TheoryCraft_SetBonuses[k]) do
if (v["pieces"] <= count) then
ltext = v["text"]
foundme = false
for k, v in pairs(TheoryCraft_Equips) do
if (v.slot == nil) or (v.slot == slotname) then
if ((foundme == false) or (v.me == nil)) then
_, start, found = strfind(ltext, v.text)
if _ then
if v.proc then
i2 = 1
if data["procs"] == nil then
data["procs"] = {}
end
while data["procs"][i2] do i2 = i2 + 1 end
data["procs"][i2] = {}
data["procs"][i2].amount = v.amount
data["procs"][i2].proc = v.proc
data["procs"][i2].duration = v.duration
data["procs"][i2].exact = v.exact
data["procs"][i2].type = v.type
else
if (v.amount) then
data[v.type] = (data[v.type] or 0) + v.amount
else
data[v.type] = (data[v.type] or 0) + tonumber(found)
end
if (v.me) then
foundme = true
end
end
end
end
end
end
foundme = false
for k, v in pairs(TheoryCraft_Sets) do
if (v.slot == nil) or (v.slot == slotname) then
if ((foundme == false) or (v.me == nil)) then
_, start, found = strfind(ltext, v.text)
if _ then
if v.proc then
i2 = 1
if data["procs"] == nil then
data["procs"] = {}
end
while data["procs"][i2] do i2 = i2 + 1 end
data["procs"][i2] = {}
data["procs"][i2].amount = v.amount
data["procs"][i2].proc = v.proc
data["procs"][i2].duration = v.duration
data["procs"][i2].exact = v.exact
data["procs"][i2].type = v.type
else
if (v.amount) then
if v.amount == "n/100" then
data[v.type] = (data[v.type] or 0) + tonumber(found)/100
else
data[v.type] = (data[v.type] or 0) + v.amount
end
else
data[v.type] = (data[v.type] or 0) + tonumber(found)
end
if (v.me) then
foundme = true
end
end
end
end
end
end
end
end
end
end
end
local old = {}
local old2 = {}
function TheoryCraft_UpdateGear(arg1, dontgen, force)
if TheoryCraft_SetBonuses == nil then
TheoryCraft_SetBonuses = {}
end
if (arg1 ~= "player") then return end
if not force then
if UnitAffectingCombat("player") then
TheoryCraft_Data.regenaftercombat = true
end
end
TheoryCraft_DeleteTable(old)
TheoryCraft_CopyTable(TheoryCraft_Data.EquipEffects, old)
TheoryCraft_AddAllEquips(TheoryCraft_Data["outfit"], force)
if TheoryCraft_Data.EquipEffects["MeleeAPMult"] == nil then
TheoryCraft_Data.EquipEffects["MeleeAPMult"] = 1
end
if (dontgen == nil) then
TheoryCraft_DeleteTable(old2)
TheoryCraft_CopyTable(TheoryCraft_Data.Stats, old2)
TheoryCraft_DeleteTable(TheoryCraft_Data.Stats)
TheoryCraft_LoadStats()
if (TheoryCraft_IsDifferent(old, TheoryCraft_Data.EquipEffects)) or (TheoryCraft_IsDifferent(old2, TheoryCraft_Data.Stats)) then
TheoryCraft_GenerateAll()
end
end
end
function TheoryCraft_DequipLine(line, returndata)
local _, start, found
for k, v in pairs(TheoryCraft_Dequips) do
if strfind(line, TheoryCraft_Locale.Set) then
return returndata
end
_, start, found = strfind(line, v.text)
if found then
if v.type == "all" then
returndata["strength"] = (returndata["strength"] or 0)-found
returndata["agility"] = (returndata["agility"] or 0)-found
returndata["stamina"] = (returndata["stamina"] or 0)-found
returndata["intellect"] = (returndata["intellect"] or 0)-found
returndata["spirit"] = (returndata["spirit"] or 0)-found
elseif v.type == "formattackpower" then
returndata[v.type] = (returndata[v.type] or 0)-found
break
elseif v.type == "attackpower" then
returndata[v.type] = (returndata[v.type] or 0)-found
returndata["rangedattackpower"] = (returndata["rangedattackpower"] or 0)-found
break
else
returndata[v.type] = (returndata[v.type] or 0)-found
end
end
end
return returndata
end
local b = TheoryCraft_SetsDequipOnly
function TheoryCraft_DequipSpecial(line, returndata)
local i = 1
local amount
while (b[i]) do
if strfind(line, TheoryCraft_Locale.Set) then
return returndata
end
if string.find(line, b[i].text) then
if b[i].amount == "n" then
amount = tonumber(findpattern(findpattern(line, b[i].text), "%d+"))
elseif b[i].amount == "n/100" then
amount = tonumber(findpattern(findpattern(line, b[i].text), "%d+"))/100
else
amount = b[i].amount
end
returndata[b[i].type] = (returndata[b[i].type] or 0)-amount
end
i = i + 1
end
return returndata
end
function TheoryCraft_DequipEffect (slotname, returndata, equippedsets)
if (slotname ~= "test") then
TheoryCraftTooltip:SetOwner(UIParent,"ANCHOR_NONE")
TheoryCraftTooltip:SetInventoryItem ("player", GetInventorySlotInfo(slotname.."Slot"))
end
local index = 1
local i, found
local ltext
while (getglobal("TheoryCraftTooltipTextLeft"..index) ~= nil) do
ltext = getglobal("TheoryCraftTooltipTextLeft"..index):GetText();
if (ltext == nil) then
break
end
if strfind(ltext, TheoryCraft_Locale.Set) then
if equippedsets then
ltext = string.sub(ltext, 1, string.find(ltext, TheoryCraft_Locale.Set)-2)
equippedsets[ltext] = (equippedsets[ltext] or 0)+1
end
break
else
returndata = TheoryCraft_DequipLine(ltext, returndata)
end
index = index + 1
end
TheoryCraftTooltip:ClearLines()
return returndata
end
function TheoryCraft_AddToCustom(linkid)
if (TheoryCraft_Settings["CustomOutfit"] == nil) then
TheoryCraft_Settings["CustomOutfit"] = TheoryCraft_Outfits[3]
end
if (TheoryCraft_Settings["CustomOutfit"].slots == nil) then
TheoryCraft_Settings["CustomOutfit"].slots = {}
end
if (linkid == nil) or (string.find(linkid, "item:%d+:%d+:%d+:%d+") == nil) then
return
end
linkid = string.sub(linkid, string.find(linkid, "item:%d+:%d+:%d+:%d+"))
if linkid == nil then
return
end
TheoryCraftTooltip:SetOwner(UIParent,"ANCHOR_NONE")
TheoryCraftTooltip:SetHyperlink(linkid)
if (getglobal(TheoryCraftTooltip:GetName().."TextLeft1") == nil) then
return
end
local itemname, itemlink, itemrarity = GetItemInfo(linkid)
local r, g, b, hex = GetItemQualityColor(itemrarity)
itemname = hex.."|H"..itemlink.."|h["..itemname.."]|h|r"
local index = 1
local ltext = getglobal(TheoryCraftTooltip:GetName().."TextLeft"..index):GetText()
if ltext == nil then
return
end
local found = false
local realslot = false
local both = false
while (ltext ~= nil) and (found == false) do
local i = 1
while (TheoryCraft_SlotNames[i]) do
if (ltext == TheoryCraft_SlotNames[i].text) then
if (found) then
if TheoryCraft_Settings["CustomOutfit"].slots[found] then
TheoryCraft_Settings["CustomOutfit"].slots[TheoryCraft_SlotNames[i].slot] = TheoryCraft_Settings["CustomOutfit"].slots[found]
end
else
found = TheoryCraft_SlotNames[i].slot
realslot = TheoryCraft_SlotNames[i].realslot
both = TheoryCraft_SlotNames[i].both
end
end
i = i + 1
end
ltext = getglobal(TheoryCraftTooltip:GetName().."TextLeft"..index):GetText()
index = index + 1
end
if found == false then
return
end
if both then
TheoryCraft_Settings["CustomOutfit"].slots["Off HandItemName"] = nil
TheoryCraft_Settings["CustomOutfit"].slots["Off Hand"] = nil
end
local itemdata = {}
local equippedsets = {}
TheoryCraft_AddEquipEffect (realslot, "test", itemdata, equippedsets)
TheoryCraft_Settings["CustomOutfit"].slots[found] = {}
TheoryCraft_Settings["CustomOutfit"].slots[found]["data"] = itemdata
TheoryCraft_Settings["CustomOutfit"].slots[found]["name"] = itemname
TheoryCraftTooltip:SetOwner(UIParent,"ANCHOR_NONE")
TheoryCraftTooltip:SetHyperlink(linkid)
if (getglobal(TheoryCraftTooltip:GetName().."TextLeft1") == nil) then
return
end
local returndata = {}
returndata = TheoryCraft_DequipEffect ("test", returndata)
TheoryCraft_Settings["CustomOutfit"].slots[found]["stats"] = {}
local a = TheoryCraft_Settings["CustomOutfit"].slots[found]["stats"]
for k,v in pairs(equippedsets) do
a.settype = k
end
if returndata["meleecritchance"] then a.meleecritchance = -returndata["meleecritchance"] end
if returndata["formattackpower"] then a.formattackpower = -returndata["formattackpower"] end
if returndata["rangedattackpower"] then a.rangedattackpower = -returndata["rangedattackpower"] end
if returndata["attackpower"] then a.attackpower = -returndata["attackpower"] end
if returndata["strength"] then a.strength = -returndata["strength"] end
if returndata["agility"] then a.agility = -returndata["agility"] end
if returndata["stamina"] then a.stamina = -returndata["stamina"] end
if returndata["intellect"] then a.intellect = -returndata["intellect"] end
if returndata["spirit"] then a.spirit = -returndata["spirit"] end
if returndata["totalmana"] then a.totalmana = -returndata["totalmana"] end
if returndata["totalhealth"] then a.totalhealth = -returndata["totalhealth"] end
end
Generated by GNU Enscript 1.6.5.90.