C_TaskQuest.GetQuestInfoByQuestID(questID)的问题
2020-3-8 18:51:28
收藏:0
阅读:149
评论:2
我正在练习为《魔兽世界》制作插件。我试图通过从魔兽的 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
如有帮助,感谢!
点赞
用户1297035
C_TaskQuest.GetQuestInfoByQuestID() 只有对于世界任务才返回适当的值,但是你可以使用 C_QuestLog.GetQuestInfo() 来代替。请注意,数据仍然需要缓存,第一次在 QUEST_LOG_UPDATE 事件之前不可用。
参见 https://www.townlong-yak.com/framexml/go/QuestUtils_GetQuestName
2020-03-09 17:11:12
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

如错误的第一行所示;
C_TaskQuest.GetQuestInfoByQuestID(questID) 将会返回以下所有的值:
questTitle, factionID, capped, displayAsObjective
你必须选择一个值作为设置,因为这个返回类型是一个包括多个值的列表,所以无法设置文本。它返回的是第一个值,但我认为它还会返回其他值。
我猜你想要的是 _questTitle_,所以为了获取它而不使用额外的函数比如 **select()**,你需要注释掉(或删除)你的 SetText 行,并使用以下两种方式之一:
local questTitle, _, _, _ = C_TaskQuest.GetQuestInfoByQuestID(array[questID]) -- 获取任务标题,将其他值设为虚拟变量 fontString:SetText(questTitle) -- 将文本的值设为 questTitle 的值 -- fontString:SetText(C_TaskQuest.GetQuestInfoByQuestID(array[questID])) 原版 -- 使用 select(number, values) 的版本 fontString:SetText(select(1,C_TaskQuest.GetQuestInfoByQuestID(array[questID]))) -- 将文本的值设为 questTitle 的值 -- 如果经常执行,额外的函数使用不好!希望这有所帮助!