C_TaskQuest.GetQuestInfoByQuestID(questID) 问题
Issue with C_TaskQuest.GetQuestInfoByQuestID(questID)
我正在练习为魔兽世界制作插件。我试图通过从 Wow 的 API 检索信息并在框架中显示来显示任务标题。我可以显示任务是否已经完成或者不是很好,但是当我尝试使用 C_TaskQuest.GetQuestInfoByQuestID(questID)
端点时;没有任何内容打印到屏幕上。
local function questStatus()
for questID = 1, #array do
local y = topY - (questID * 15 - 20)
local fontString = UIConfig:CreateFontString(nil, "ARTWORK")
fontString:SetFont("Fonts\ARIALN.ttf", 13, "OUTLINE")
fontString:SetText(C_TaskQuest.GetQuestInfoByQuestID(array[questID]))
fontString:SetPoint("TOPLEFT", topX, y)
end
end
我在聊天框中遇到的错误是
7x Usage: local questTitle, factionID, capped, displayAsObjective = C_TaskQuest.GetQuestInfoByQuestID(questID)
[string "=[C]:"]: in function 'GetQuestInfoByQuestID'
[string "@My-Addon\Core.lua"]:66: in main chunk
感谢任何帮助,谢谢!
如第一行错误所示;
C_TaskQuest.GetQuestInfoByQuestID(questID) 将 return 所有这些值:
questTitle, factionID, capped, displayAsObjective
您必须选择要设置的值,因为它无法为这种 return 类型(包含多个值的列表)设置文本。这是第一个 returned,但它也会 return 其他值 afaik。
我假设你想要 questTitle,所以要在不使用像 select() 这样的附加函数的情况下得到它,你会评论(或删除)您的 SetText 行并改用以下 2 行之一:
local questTitle, _, _, _ = C_TaskQuest.GetQuestInfoByQuestID(array[questID]) -- get quest title, other values to dummy locals
fontString:SetText(questTitle) -- set the text to the value of questTitle
-- fontString:SetText(C_TaskQuest.GetQuestInfoByQuestID(array[questID])) ORIGINAL
-- version using select(number, values)
fontString:SetText(select(1,C_TaskQuest.GetQuestInfoByQuestID(array[questID]))) -- set the text to the value of questTitle -- extra function usage is no good if done often!
希望对您有所帮助!
C_TaskQuest.GetQuestInfoByQuestID()
仅 returns 适合世界任务的值,但您可以使用 C_QuestLog.GetQuestInfo() 代替。注意数据还是要缓存的,第一次要等到QUEST_LOG_UPDATE
事件
才可用
见https://www.townlong-yak.com/framexml/go/QuestUtils_GetQuestName
我正在练习为魔兽世界制作插件。我试图通过从 Wow 的 API 检索信息并在框架中显示来显示任务标题。我可以显示任务是否已经完成或者不是很好,但是当我尝试使用 C_TaskQuest.GetQuestInfoByQuestID(questID)
端点时;没有任何内容打印到屏幕上。
local function questStatus()
for questID = 1, #array do
local y = topY - (questID * 15 - 20)
local fontString = UIConfig:CreateFontString(nil, "ARTWORK")
fontString:SetFont("Fonts\ARIALN.ttf", 13, "OUTLINE")
fontString:SetText(C_TaskQuest.GetQuestInfoByQuestID(array[questID]))
fontString:SetPoint("TOPLEFT", topX, y)
end
end
我在聊天框中遇到的错误是
7x Usage: local questTitle, factionID, capped, displayAsObjective = C_TaskQuest.GetQuestInfoByQuestID(questID)
[string "=[C]:"]: in function 'GetQuestInfoByQuestID'
[string "@My-Addon\Core.lua"]:66: in main chunk
感谢任何帮助,谢谢!
如第一行错误所示;
C_TaskQuest.GetQuestInfoByQuestID(questID) 将 return 所有这些值:
questTitle, factionID, capped, displayAsObjective
您必须选择要设置的值,因为它无法为这种 return 类型(包含多个值的列表)设置文本。这是第一个 returned,但它也会 return 其他值 afaik。
我假设你想要 questTitle,所以要在不使用像 select() 这样的附加函数的情况下得到它,你会评论(或删除)您的 SetText 行并改用以下 2 行之一:
local questTitle, _, _, _ = C_TaskQuest.GetQuestInfoByQuestID(array[questID]) -- get quest title, other values to dummy locals
fontString:SetText(questTitle) -- set the text to the value of questTitle
-- fontString:SetText(C_TaskQuest.GetQuestInfoByQuestID(array[questID])) ORIGINAL
-- version using select(number, values)
fontString:SetText(select(1,C_TaskQuest.GetQuestInfoByQuestID(array[questID]))) -- set the text to the value of questTitle -- extra function usage is no good if done often!
希望对您有所帮助!
C_TaskQuest.GetQuestInfoByQuestID()
仅 returns 适合世界任务的值,但您可以使用 C_QuestLog.GetQuestInfo() 代替。注意数据还是要缓存的,第一次要等到QUEST_LOG_UPDATE
事件
见https://www.townlong-yak.com/framexml/go/QuestUtils_GetQuestName