Re: [問題] 任務巨集改寫

看板WOW (魔獸世界)作者 (すご-い!)時間1年前 (2023/03/18 13:28), 1年前編輯推噓2(2017)
留言19則, 5人參與, 1年前最新討論串2/2 (看更多)
※ 引述《pig8409 (Grinbear)》之銘言: : /run print(C_QuestLog.IsQuestFlaggedCompleted(70893)) : 這個巨集的功能是判斷有沒有完成每周的盛筵任務,有會顯示true,反之則顯示false。 : 想請問能不能修改變成顯示 盛筵完成 之類的,因為我想跟其他周任寫在一起。 : 簡單說想要達成像之前周年王判斷的巨集,以下巨集會顯示 : Doomwalker:No : Kazzak:No : /run for k, v in pairs({Doomwalker=60214,Azuregos=47462,Kazzak=47461}) do : print(format("%s: %s", k, C_QuestLog.IsQuestFlaggedCompleted(v) and : "\124cff00ff00Yes\124r" or "\124cffff0000No\124r")) end : 感謝! 試了一下 大概是這樣吧 記得接成一行 /run qid=70893 /run if(C_QuestLog.IsQuestFlaggedCompleted(qid)==true) then print(qid," 完成") else print(qid," 未完成") end 78093就是任務的ID 想查什麼任務的就查出ID改上去 有完成就會回傳true 沒有則是false 簡單用if判斷是否true print顯示出來 70893 完成 70893 未完成 想顯示什麼字就自己改 另外想取得任務名稱卻失敗了 name = C_QuestLog.GetTitleForQuestID(questID) 不知如何使用 總是nil 沒東西 看有沒有強者知道如何使用? 參考 https://wowpedia.fandom.com/wiki/API_C_QuestLog.IsQuestFlaggedCompleted ==== 編輯 加上任務名稱 /run qid=70893; /run qn=C_QuestLog.GetTitleForQuestID(qid); /run if(C_QuestLog.IsQuestFlaggedCompleted(qid)==true) then print(qn,qid," 已完成") else print(qn,qid," 未完成") end ==== 編輯 多個任務 新增修改有顏色的字即可 /run qidp={70893,72723,72686}; /run for k, v in pairs(qidp) do print( k, v, C_QuestLog.GetTitleForQuestID(v), ":", C_QuestLog.IsQuestFlaggedCompleted(v) and "已完成" or "未完成") end 顯示 1 70893 集體盛宴:已完成 2 72723 戰鬥的呼喚:未完成 3 72686 風暴洶湧:未完成 -- _ | ◢=▂▃▂ ◤▂ ▂◥ ▂≡▂ ー○-○- 竜が我が敵を喰らう! | 龍神の剣を喰え! /"Δ /\ ~胡適 | ~愛因斯坦 ψ \ \◥ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.38.73.215 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/WOW/M.1679117294.A.B66.html

03/18 14:15, 1年前 , 1F
再問一下,如果要把多任務寫進去判定要怎麼加@@?
03/18 14:15, 1F

03/18 14:16, 1年前 , 2F
像我前面提的世界王,他是三個ID在裡面嗎@@?
03/18 14:16, 2F

03/18 17:34, 1年前 , 3F
多個任務 像你貼的那個 是用迴圈寫的 加在IF外面
03/18 17:34, 3F

03/18 18:56, 1年前 , 4F
03/18 18:56, 4F

03/18 21:02, 1年前 , 5F
搞不好之後微軟爸爸直接把ai導入魔獸,大家只要表
03/18 21:02, 5F

03/18 21:02, 1年前 , 6F
達清楚自己要幹嘛就好
03/18 21:02, 6F
※ 編輯: OAzenO (114.38.73.215 臺灣), 03/18/2023 23:59:50

03/19 00:04, 1年前 , 7F
那個if判斷式的 ==true是多餘的
03/19 00:04, 7F

03/19 00:05, 1年前 , 8F
if判斷式前面的C_QuestLog.IsQuestFlaggedCompleted(qid)
03/19 00:05, 8F

03/19 00:06, 1年前 , 9F
的回傳值本身就是布林值了 不需要再判斷true of false
03/19 00:06, 9F

03/19 00:09, 1年前 , 10F
然後你取得任務名稱失敗是因為你參數給的是空值
03/19 00:09, 10F

03/19 00:09, 1年前 , 11F
你把C_QuestLog.GetTitleForQuestID(questID)裡面的questI
03/19 00:09, 11F

03/19 00:10, 1年前 , 12F
D改成任務實際ID或是其他有定義過的變數就能取出正確的任
03/19 00:10, 12F

03/19 00:11, 1年前 , 13F
務名稱 這會出現nil大概是複製來用 但是別人取得變數名稱
03/19 00:11, 13F

03/19 00:12, 1年前 , 14F
跟你取的變數名稱(qid)不一樣
03/19 00:12, 14F
※ 編輯: OAzenO (114.38.73.215 臺灣), 03/19/2023 10:27:26

03/19 10:43, 1年前 , 15F
還是搞不太懂任務ID的規則就是...
03/19 10:43, 15F

03/19 10:43, 1年前 , 16F
所以有可能同個任務 每個人ID不一樣?
03/19 10:43, 16F

03/19 10:46, 1年前 , 17F
應該只是別人有定義questID這個變數 而你沒有定義就丟這個
03/19 10:46, 17F

03/19 10:46, 1年前 , 18F
未定義的變數進去當參數才會出現nil
03/19 10:46, 18F

03/19 10:47, 1年前 , 19F
不然正常有丟東西進去(縱使是不存在的任務ID)就不會出nil
03/19 10:47, 19F
文章代碼(AID): #1a5Klkjc (WOW)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1a5Klkjc (WOW)