PTT推薦

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

看板WOW標題Re: [問題] 任務巨集改寫作者
OAzenO
(すご-い!)
時間推噓 2 推:2 噓:0 →:17

※ 引述《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留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.38.73.215 (臺灣)
PTT 網址

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

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

OAzenO03/18 17:34多個任務 像你貼的那個 是用迴圈寫的 加在IF外面

nicholassys03/18 18:56https://imgur.com/a/PS7qiFA 這樣可以

j8ininder4ni03/18 21:02搞不好之後微軟爸爸直接把ai導入魔獸,大家只要表

j8ininder4ni03/18 21:02達清楚自己要幹嘛就好

※ 編輯: OAzenO (114.38.73.215 臺灣), 03/18/2023 23:59:50

virnux03/19 00:04那個if判斷式的 ==true是多餘的

virnux03/19 00:05if判斷式前面的C_QuestLog.IsQuestFlaggedCompleted(qid)

virnux03/19 00:06的回傳值本身就是布林值了 不需要再判斷true of false

virnux03/19 00:09然後你取得任務名稱失敗是因為你參數給的是空值

virnux03/19 00:09你把C_QuestLog.GetTitleForQuestID(questID)裡面的questI

virnux03/19 00:10D改成任務實際ID或是其他有定義過的變數就能取出正確的任

virnux03/19 00:11務名稱 這會出現nil大概是複製來用 但是別人取得變數名稱

virnux03/19 00:12跟你取的變數名稱(qid)不一樣

※ 編輯: OAzenO (114.38.73.215 臺灣), 03/19/2023 10:27:26

OAzenO03/19 10:43還是搞不太懂任務ID的規則就是...

OAzenO03/19 10:43所以有可能同個任務 每個人ID不一樣?

virnux03/19 10:46應該只是別人有定義questID這個變數 而你沒有定義就丟這個

virnux03/19 10:46未定義的變數進去當參數才會出現nil

virnux03/19 10:47不然正常有丟東西進去(縱使是不存在的任務ID)就不會出nil