From 4b8b0f14047068d61334b8ea872074d3ef70a1f8 Mon Sep 17 00:00:00 2001 From: Alex Shubert Date: Sun, 1 Apr 2012 21:42:29 +0400 Subject: [PATCH] Auto reward loot logic, first approach Localization added Introduced new namespace, ptable.CONST (C in short) as a storage for any reward class string constants --- AutoTurnIn.lua | 82 +++++++++++++++++++++++++++++++---------- AutoTurnIn.toc | 2 + RewardOptions.lua | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++ localization_DE.lua | 3 +- localization_EN.lua | 3 +- localization_RU.lua | 3 +- options.lua | 51 ++++++++++++-------------- rewards.lua | 95 +++++++++++++++++++++++++++++------------------ 8 files changed, 257 insertions(+), 84 deletions(-) create mode 100644 RewardOptions.lua diff --git a/AutoTurnIn.lua b/AutoTurnIn.lua index 3d79ed7..8b8b939 100644 --- a/AutoTurnIn.lua +++ b/AutoTurnIn.lua @@ -1,7 +1,9 @@ local addonName, ptable = ... local L = ptable.L +local C = ptable.CONST + AutoTurnIn = LibStub("AceAddon-3.0"):NewAddon("AutoTurnIn", "AceEvent-3.0", "AceConsole-3.0") -AutoTurnIn.defaults = {enabled = true, all = false, dontloot = true, tournament = 2, darkmoonteleport=true, togglekey=1} +AutoTurnIn.defaults = {enabled = true, all = false, dontloot = 1, tournament = 2, darkmoonteleport=true, togglekey=1} AutoTurnIn.ldb, AutoTurnIn.allowed = nil, nil local ldbstruct = { type = "data source", @@ -38,9 +40,12 @@ function AutoTurnIn:OnEnable() if not AutoTurnInCharacterDB then _G.AutoTurnInCharacterDB = CopyTable(AutoTurnIn.defaults) end - if (AutoTurnInCharacterDB.togglekey == nil) then + if (tonumber(AutoTurnInCharacterDB.togglekey) == nil) then AutoTurnInCharacterDB.togglekey = 1 end + if ( AutoTurnInCharacterDB.items == nil ) then + AutoTurnInCharacterDB.items = {} + end local LDB = LibStub:GetLibrary("LibDataBroker-1.1", true) if LDB then @@ -85,13 +90,9 @@ function AutoTurnIn:ConsoleComand(arg) elseif arg == "list" then AutoTurnInCharacterDB.all = false self:Print(L["list"]) - elseif arg == "loot" then - AutoTurnInCharacterDB.dontloot = not AutoTurnInCharacterDB.dontloot - self:Print(L["dontloot"..tostring(AutoTurnInCharacterDB.dontloot)]) elseif arg == "help" then self:Print(p1[AutoTurnInCharacterDB.enabled == true]) self:Print(p2[AutoTurnInCharacterDB.all]) - self:Print(L["dontloot"..tostring(AutoTurnInCharacterDB.dontloot)]) end end @@ -226,24 +227,67 @@ function AutoTurnIn:QUEST_COMPLETE() if AutoTurnInCharacterDB.all or quest then local index, money = 0, 0; if GetNumQuestChoices() > 0 then - if not AutoTurnInCharacterDB.dontloot then + if AutoTurnInCharacterDB.dontloot > 1 then -- Auto Loot enabled! + + -- Tournament quest found if (quest == "tournament") then GetQuestReward(AutoTurnInCharacterDB.tournament) return - end - for i=1, GetNumQuestChoices() do - local m = select(11, GetItemInfo(GetQuestItemLink("choice", i))) - if m > money then - money = m - index = i + end + + -- G R E E D + if (AutoTurnInCharacterDB.dontloot == 2) then + for i=1, GetNumQuestChoices() do + local m = select(11, GetItemInfo(GetQuestItemLink("choice", i))) + if m > money then + money = m + index = i + end + end + if money > 0 then -- some quests, like tournament ones, offer reputation rewards and they have no cost. + GetQuestReward(index) + return end end - if money > 0 then -- some quests, like tournament ones, offer reputation rewards and they have no cost. - GetQuestReward(index) - return - else - self:Print("rewards have no cost! Send a message to author please.") - end + -- #G R E E D + + -- N E E D + if (AutoTurnInCharacterDB.dontloot == 3) then + local found = {} + + for i=1, GetNumQuestChoices() do + local class, subclass, _, equipSlot = select(6, GetItemInfo(GetQuestItemLink("choice", i))) + -- relics and trinkets are out of autoloot + if C.STOPTOKENS[equipSlot] then + self:Print(INVTYPE_RELIC..' or ' .. INVTYPE_TRINKET .. 'found. Choose reward manually pls.') + return + end + + if AutoTurnInCharacterDB.items[subclass] or (AutoTurnInCharacterDB.items['Ranged'] and + (C.ITEMS['Crossbows'] == subclass or + C.ITEMS['Guns'] == subclass or + C.ITEMS['Bows'] == subclass)) then + local stattable = GetItemStats(swordLink) + for stat, value in pairs(stattable) do + if ( C.STATS[stat] ) then + tinsert(found, i) + end + end + end + end + + -- HANDLE RESULT + if #found > 1 then + for _, reward in pairs(found) do + --_G["QuestInfoItem" .. index] + end + elseif(#found == 1) then + GetQuestReward(found[1]) + end + end + -- #N E E D + + end else GetQuestReward(index) diff --git a/AutoTurnIn.toc b/AutoTurnIn.toc index 1aa0707..4394c54 100644 --- a/AutoTurnIn.toc +++ b/AutoTurnIn.toc @@ -17,5 +17,7 @@ embeds.xml localization_RU.lua localization_EN.lua localization_DE.lua +rewards.lua AutoTurnIn.lua options.lua +RewardOptions.lua diff --git a/RewardOptions.lua b/RewardOptions.lua new file mode 100644 index 0000000..fe0eed6 --- /dev/null +++ b/RewardOptions.lua @@ -0,0 +1,102 @@ +local addonName, ptable = ... +local C = ptable.CONST +local O = addonName .. "RewardPanel" +local RewardPanel = CreateFrame("Frame", O) +RewardPanel.name= QUEST_REWARDS + +local function CreateCheckbox(name, parent, marginx, marginy, text) + local cb = CreateFrame("CheckButton", "$parent"..name, parent, "OptionsCheckButtonTemplate") + cb:SetPoint("TOPLEFT", parent, marginx, marginy) + _G[cb:GetName().."Text"]:SetText(text) + cb:SetScript("OnClick", function(self) + ptable.TempConfig.items[name] = self:GetChecked() == 1 + end) + tinsert(parent.buttons, cb) + return cb +end + +local function CreatePanel(name, text, w, h) + local panel = CreateFrame("Frame", O..name, RewardPanel, "OptionsBoxTemplate") + panel:SetWidth(w) + panel:SetHeight(h) + panel.buttons = {} + function panel:ClearCheckBoxes() + for k,v in ipairs(self.buttons) do + v:SetChecked(false) + end + end + _G[panel:GetName().."Title"]:SetText(text) + return panel +end + +-- Description +local description = RewardPanel:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall") +description:SetText("Reward loot options") +RewardPanel.parent = _G["AutoTurnInOptionsPanel"] + +-- WEAPON +local WeaponPanel = CreatePanel("WeaponPanel", C.WEAPONLABEL, 590, 170) +CreateCheckbox("One-Handed Axes", WeaponPanel, 10, -8, C.ITEMS['One-Handed Axes']) +CreateCheckbox("Two-Handed Axes", WeaponPanel, 206, -8, C.ITEMS['Two-Handed Axes'] ) +CreateCheckbox("One-Handed Maces", WeaponPanel, 402, -8, C.ITEMS['One-Handed Maces']) + -- 2nd line +CreateCheckbox("Two-Handed Maces", WeaponPanel, 10, -40, C.ITEMS['Two-Handed Maces']) +CreateCheckbox("Polearms", WeaponPanel, 206, -40, C.ITEMS['Polearms']) +CreateCheckbox("One-Handed Swords", WeaponPanel, 402, -40, C.ITEMS['One-Handed Swords'] ) + -- 3rd line +CreateCheckbox("Two-Handed Swords", WeaponPanel, 10, -72, C.ITEMS['Two-Handed Swords']) +CreateCheckbox("Staves", WeaponPanel, 206, -72, C.ITEMS['Staves']) +CreateCheckbox("Fist Weapons", WeaponPanel, 402, -72, C.ITEMS['Fist Weapons']) + -- 4rd line +CreateCheckbox("Daggers", WeaponPanel, 10, -104, C.ITEMS['Daggers'] ) +CreateCheckbox("Thrown", WeaponPanel, 206, -104, C.ITEMS['Thrown']) +CreateCheckbox("Wands", WeaponPanel, 402, -104, C.ITEMS['Wands']) +CreateCheckbox("Ranged", WeaponPanel, 10, -136, string.format("%s, %s, %s", C.ITEMS['Crossbows'], C.ITEMS['Bows'], C.ITEMS['Guns']) ) + + +-- ARMOR +local ArmorPanel = CreatePanel("ArmorPanel", C.ARMORLABEL, 590, 70) +CreateCheckbox("Cloth", ArmorPanel, 10, -8, C.ITEMS['Cloth']) +CreateCheckbox("Leather", ArmorPanel, 152, -8, C.ITEMS['Leather'] ) +CreateCheckbox("Mail", ArmorPanel, 292, -8, C.ITEMS['Mail']) +CreateCheckbox("Plate", ArmorPanel, 436, -8, C.ITEMS['Plate']) +CreateCheckbox("Shields", ArmorPanel, 10, -40, C.ITEMS['Shields']) + +-- ATTRIBUTES +local StatPanel = CreatePanel("StatPanel", STAT_CATEGORY_ATTRIBUTES, 590, 40) +CreateCheckbox("Strength", StatPanel, 10, -8, SPELL_STAT1_NAME) +CreateCheckbox("Agility", StatPanel, 152, -8, SPELL_STAT2_NAME) +CreateCheckbox("Intellect", StatPanel, 292, -8, SPELL_STAT4_NAME) +CreateCheckbox("Spirit", StatPanel, 436, -8, SPELL_STAT5_NAME) + +--[[ CONTROL PLACEMENT]]-- +description:SetPoint("TOPLEFT", 16, -8) +WeaponPanel:SetPoint("TOPLEFT", description, "BOTTOMLEFT", 0, -20) +ArmorPanel:SetPoint("TOPLEFT", WeaponPanel, "BOTTOMLEFT", 0, -20) +StatPanel:SetPoint("TOPLEFT", ArmorPanel, "BOTTOMLEFT", 0, -20) + +--[[ PANEL FINCTIONS ]]-- +RewardPanel.refresh = function() + WeaponPanel:ClearCheckBoxes() + ArmorPanel:ClearCheckBoxes() + StatPanel:ClearCheckBoxes() + + for k,v in pairs(ptable.TempConfig.items) do + local w = _G[WeaponPanel:GetName()..k] + if not w then + w = _G[ArmorPanel:GetName()..k] + end + if not w then + w = _G[StatPanel:GetName()..k] + end + if w then + w:SetChecked(v) + end + end +end +--RewardPanel.default = function() end +--RewardPanel.okay = function()end + +--[[ REGISTERING PANEL ]]-- +InterfaceOptions_AddCategory(RewardPanel) + diff --git a/localization_DE.lua b/localization_DE.lua index 380fade..6abd536 100644 --- a/localization_DE.lua +++ b/localization_DE.lua @@ -18,7 +18,8 @@ privateTable.L = setmetatable({ ["lootTypeLabel"]="Jobs mit Auszeichnungen", ["lootTypeFalse"]="nicht abgeschlossen", - ["lootTypeTrue"]="nehmen Sie die teuerste, was", + ["lootTypeGreed"]="nehmen Sie die teuerste, was", + ["lootTypeNeed"]="Wahl Sie nach Parametern", ["tournamentLabel"]="Turnier", ["tournamentWrit"]="Verfügung des Champions", -- 46114 diff --git a/localization_EN.lua b/localization_EN.lua index 2fdcf79..ff93b2b 100644 --- a/localization_EN.lua +++ b/localization_EN.lua @@ -15,7 +15,8 @@ privateTable.L = setmetatable({ ["lootTypeLabel"]="quests with rewards", ["lootTypeFalse"]="don't turn in", - ["lootTypeTrue"]="loot most expensive reward", + ["lootTypeGreed"]="loot most expensive reward", + ["lootTypeNeed"]="loot by parameters", ["tournamentLabel"]="tournament", ["tournamentWrit"]="Champion's Writ", -- 46114 diff --git a/localization_RU.lua b/localization_RU.lua index 33d250c..bd9eea1 100644 --- a/localization_RU.lua +++ b/localization_RU.lua @@ -18,7 +18,8 @@ privateTable.L = setmetatable({ ["lootTypeLabel"]="задания с наградами", ["lootTypeFalse"]="не сдавать", - ["lootTypeTrue"]="выбирать самую дорогую", + ["lootTypeGreed"]="взять самую дорогую", + ["lootTypeNeed"]="взять самую нужную", ["tournamentLabel"]="серебряный турнир", ["tournamentWrit"]="Удостоверение чемпиона", -- 46114 diff --git a/options.lua b/options.lua index 1f61ea9..d7f0e67 100644 --- a/options.lua +++ b/options.lua @@ -1,7 +1,5 @@ local addonName, ptable = ... local L = ptable.L -local TempConfig = nil - local O = addonName .. "OptionsPanel" local OptionsPanel = CreateFrame("Frame", O) OptionsPanel.name=addonName @@ -18,7 +16,7 @@ subText:SetText(notes) local Enable = CreateFrame("CheckButton", O.."Enable", OptionsPanel, "OptionsCheckButtonTemplate") _G[O.."EnableText"]:SetText(L["enabled"]) Enable:SetScript("OnClick", function(self) - TempConfig.enabled = self:GetChecked() == 1 + ptable.TempConfig.enabled = self:GetChecked() == 1 end) -- Quest types to handle @@ -32,7 +30,7 @@ UIDropDownMenu_Initialize(QuestDropDown, function (self, level) info.text, info.value = v, k info.func = function(self) UIDropDownMenu_SetSelectedID(QuestDropDown, self:GetID()) - TempConfig.all = (self:GetID() == 1) + ptable.TempConfig.all = (self:GetID() == 1) end UIDropDownMenu_AddButton(info, level) end @@ -51,7 +49,7 @@ function TournamentDropDown:initialize () info.text, info.value = v, k info.func = function(self) UIDropDownMenu_SetSelectedID(TournamentDropDown, self:GetID()) - TempConfig.tournament = self:GetID() + ptable.TempConfig.tournament = self:GetID() end UIDropDownMenu_AddButton(info, level) end @@ -62,7 +60,7 @@ UIDropDownMenu_JustifyText(TournamentDropDown, "LEFT") -- How to loot local LootLabel = OptionsPanel:CreateFontString(nil, "ARTWORK", "GameFontNormal") LootLabel:SetText(L["lootTypeLabel"]) -local LootConst = {L["lootTypeFalse"], L["lootTypeTrue"]} +local LootConst = {L["lootTypeFalse"], L["lootTypeGreed"], L["lootTypeNeed"]} local LootDropDown = CreateFrame("Frame", O.."LootDropDown", OptionsPanel, "UIDropDownMenuTemplate") UIDropDownMenu_Initialize(LootDropDown, function (self, level) for k, v in ipairs(LootConst) do @@ -70,8 +68,8 @@ UIDropDownMenu_Initialize(LootDropDown, function (self, level) info.text, info.value = v, k info.func = function(self) UIDropDownMenu_SetSelectedID(LootDropDown, self:GetID()) - TempConfig.dontloot = (self:GetID() == 1) - if TempConfig.dontloot then + ptable.TempConfig.dontloot = self:GetID() + if ptable.TempConfig.dontloot == 1 then UIDropDownMenu_DisableDropDown(TournamentDropDown) else UIDropDownMenu_EnableDropDown(TournamentDropDown) @@ -87,14 +85,14 @@ UIDropDownMenu_JustifyText(LootDropDown, "LEFT") local DarkMoonCannon = CreateFrame("CheckButton", O.."DarkMoonCannon", OptionsPanel, "OptionsCheckButtonTemplate") _G[O.."DarkMoonCannonText"]:SetText(L["DarkmoonTeleLabel"]) DarkMoonCannon:SetScript("OnClick", function(self) - TempConfig.darkmoonteleport = self:GetChecked() == 1 + ptable.TempConfig.darkmoonteleport = self:GetChecked() == 1 end) -- 'Show Reward Text' CheckBox local ShowRewardText = CreateFrame("CheckButton", O.."Reward", OptionsPanel, "OptionsCheckButtonTemplate") _G[ShowRewardText:GetName().."Text"]:SetText(L["rewardtext"]) ShowRewardText:SetScript("OnClick", function(self) - TempConfig.showrewardtext = self:GetChecked() == 1 + ptable.TempConfig.showrewardtext = self:GetChecked() == 1 end) -- Auto toggle key @@ -108,7 +106,7 @@ UIDropDownMenu_Initialize(ToggleKeyDropDown, function (self, level) info.text, info.value = v, k info.func = function(self) UIDropDownMenu_SetSelectedID(ToggleKeyDropDown, self:GetID()) - TempConfig.togglekey = self:GetID() + ptable.TempConfig.togglekey = self:GetID() end UIDropDownMenu_AddButton(info, level) end @@ -134,35 +132,34 @@ ToggleKeyLabel:SetPoint("BOTTOMLEFT", ToggleKeyDropDown, "TOPLEFT", 18, 0) ToggleKeyDropDown:SetPoint("TOPLEFT", ShowRewardText, "BOTTOMLEFT", -15, -30) OptionsPanel.refresh = function() - TempConfig = CopyTable(AutoTurnInCharacterDB) + ptable.TempConfig = CopyTable(AutoTurnInCharacterDB) - Enable:SetChecked(TempConfig.enabled) + Enable:SetChecked(ptable.TempConfig.enabled) - UIDropDownMenu_SetSelectedID(QuestDropDown, TempConfig.all and 1 or 2) - UIDropDownMenu_SetText(QuestDropDown, TempConfig.all and L["questTypeAll"] or L["questTypeList"] ) + UIDropDownMenu_SetSelectedID(QuestDropDown, ptable.TempConfig.all and 1 or 2) + UIDropDownMenu_SetText(QuestDropDown, ptable.TempConfig.all and L["questTypeAll"] or L["questTypeList"] ) - UIDropDownMenu_SetSelectedID(LootDropDown, TempConfig.dontloot and 1 or 2) - UIDropDownMenu_SetText(LootDropDown, TempConfig.dontloot and L["lootTypeFalse"] or L["lootTypeTrue"]) + UIDropDownMenu_SetSelectedID(LootDropDown, ptable.TempConfig.dontloot) + UIDropDownMenu_SetText(LootDropDown, LootConst[ptable.TempConfig.dontloot]) - UIDropDownMenu_SetSelectedID(TournamentDropDown, TempConfig.tournament) - UIDropDownMenu_SetText(TournamentDropDown,TournamentConst[TempConfig.tournament]) - if (TempConfig.dontloot) then + UIDropDownMenu_SetSelectedID(TournamentDropDown, ptable.TempConfig.tournament) + UIDropDownMenu_SetText(TournamentDropDown,TournamentConst[ptable.TempConfig.tournament]) + if (ptable.TempConfig.dontloot == 1) then UIDropDownMenu_DisableDropDown(TournamentDropDown) end - DarkMoonCannon:SetChecked(TempConfig.darkmoonteleport) - ShowRewardText:SetChecked(TempConfig.showrewardtext) - - UIDropDownMenu_SetSelectedID(ToggleKeyDropDown, TempConfig.togglekey) - UIDropDownMenu_SetText(ToggleKeyDropDown, ToggleKeyConst[TempConfig.togglekey]) + DarkMoonCannon:SetChecked(ptable.TempConfig.darkmoonteleport) + ShowRewardText:SetChecked(ptable.TempConfig.showrewardtext) + UIDropDownMenu_SetSelectedID(ToggleKeyDropDown, ptable.TempConfig.togglekey) + UIDropDownMenu_SetText(ToggleKeyDropDown, ToggleKeyConst[ptable.TempConfig.togglekey]) end OptionsPanel.default = function() - TempConfig = CopyTable(AutoTurnIn.defaults) + ptable.TempConfig = CopyTable(AutoTurnIn.defaults) end OptionsPanel.okay = function() - AutoTurnInCharacterDB = CopyTable(TempConfig) + AutoTurnInCharacterDB = CopyTable(ptable.TempConfig) AutoTurnIn:SetEnabled(AutoTurnInCharacterDB.enabled) end diff --git a/rewards.lua b/rewards.lua index 296ca58..714bf98 100644 --- a/rewards.lua +++ b/rewards.lua @@ -1,36 +1,53 @@ local addonName, ptable = ... +ptable.CONST = {} +local C = ptable.CONST + local weapon = {GetAuctionItemSubClasses(1)} local armor = {GetAuctionItemSubClasses(2)} ---local back = INVTYPE_CLOAK, INVTYPE_FINGER, INVTYPE_NECK, INVTYPE_HOLDABLE, INVTYPE_RELIC --- INVTYPE_SHIELD <--- do not use, it is always shield - -ptable.L.ITEMS = { - ['One-Handed Axes'] = select(1, weapon), - ['Two-Handed Axes'] = select(2, weapon), - ['Bows'] = select(3, weapon), - ['Guns'] = select(4, weapon), - ['One-Handed Maces'] = select(5, weapon), - ['Two-Handed Maces'] = select(6, weapon), - ['Polearms'] = select(7, weapon), - ['One-Handed Swords'] = select(8, weapon), - ['Two-Handed Swords'] = select(9, weapon), - ['Staves'] = select(10, weapon), - ['Fist Weapons'] = select(11, weapon), +-- INVTYPE_RELIC INVTYPE_TRINKET - . +C.WEAPONLABEL, C.ARMORLABEL = GetAuctionItemClasses() +C.STOPTOKENS = {['INVTYPE_RELIC']='', ['INVTYPE_TRINKET']=''} +--[[ +SPELL_STAT1_NAME = "Strength"; +SPELL_STAT2_NAME = "Agility"; +SPELL_STAT3_NAME = "Stamina"; +SPELL_STAT4_NAME = "Intellect"; +SPELL_STAT5_NAME = "Spirit"; + +STAT_CATEGORY_ATTRIBUTES = "Attributes"; +STAT_CATEGORY_DEFENSE = "Defense"; +STAT_CATEGORY_GENERAL = "General"; +STAT_CATEGORY_MELEE = "Melee"; +STAT_CATEGORY_RANGED = "Ranged"; +]]-- + +C.ITEMS = { + ['One-Handed Axes'] = weapon[1], + ['Two-Handed Axes'] = weapon[2], + ['Bows'] = weapon[3], + ['Guns'] = weapon[4], + ['One-Handed Maces'] = weapon[5], + ['Two-Handed Maces'] = weapon[6], + ['Polearms'] = weapon[7], + ['One-Handed Swords'] = weapon[8], + ['Two-Handed Swords'] = weapon[9], + ['Staves'] = weapon[10], + ['Fist Weapons'] = weapon[11], --['Miscellaneous'] = select(12, weapon) - ['Daggers'] = select(13, weapon), - ['Thrown'] = select(14, weapon), - ['Crossbows'] = select(15, weapon), - ['Wands'] = select(16, weapon), + ['Daggers'] = weapon[13], + ['Thrown'] = weapon[14], + ['Crossbows'] = weapon[15], + ['Wands'] = weapon[16], --['Fishing Pole'] = select(17, weapon) -- armor - --['Miscellaneous'] = select(1, armor) - ['Cloth'] = select(2, armor), - ['Leather'] = select(3, armor), - ['Mail'] = select(4, armor), - ['Plate'] = select(5, armor), - ['Shields'] = select(6, armor), + --['Miscellaneous'] = armor[1] + ['Cloth'] = armor[2], + ['Leather'] = armor[3], + ['Mail'] = armor[4], + ['Plate'] = armor[5], + ['Shields'] = armor[6], --[[3rd slot ['Librams'] = select(7, armor), @@ -39,22 +56,30 @@ ptable.L.ITEMS = { ]]-- } -if not AutoTurnInCharacterDB.items then +C.STATS = { + ['ITEM_MOD_STRENGTH_SHORT'] = "Strength", + ['ITEM_MOD_AGILITY_SHORT'] = "Agility", + ['ITEM_MOD_INTELLECT_SHORT'] = "Intellect", + ['ITEM_MOD_SPIRIT_SHORT'] = "Spirit" +} + +--[[ +: . , - . - . + : + +if not _G.AutoTurnInCharacterDB.items then AutoTurnInCharacterDB.items = {} - for k, v in pairs(ptable.L.ITEMS) do + for k, v in pairs(ptable.C.ITEMS) do AutoTurnInCharacterDB.items[k]=0 end end - - ---[[ /run table.foreach(OPEN_FILTER_LIST, function(value) for v,k in pairs(value) do print(v,k) end) /run for k,v in pairs(OPEN_FILTER_LIST) do for n,m in pairs(v) do print(n,m) end end - /run print(_G[INVTYPE_CLOAK]) - - - /run function a(...) for i=1, select("#", ...), 2 do invType = _G[select(i, ...)] print(invType, select(i, ...)) end end a(GetAuctionInvTypes(2,2)) - 00:08:47 INVTYPE_CLOAK 1 INVTYPE_HOLDABLE nil +/run print(_G[INVTYPE_CLOAK]) +/run print(select(5, GetItemInfo(" "))) + +/run function a(...) for i=1, select("#", ...), 2 do invType = _G[select(i, ...)] print(invType, select(i, ...)) end end a(GetAuctionInvTypes(2,2)) +00:08:47 INVTYPE_CLOAK 1 INVTYPE_HOLDABLE nil ]]-- \ No newline at end of file -- 1.7.9.5