因為突然發現以前正常使用的巨集失效
/cast 太陽光束
/run s,d,e=GetSpellCooldown("太陽光束");
if (s>2 and d>2)
then SendChatMessage("太陽光束CD中:"..SecondsToTime(s+d-GetTime()),ic);
else SendChatMessage("對[%t]施放 <太陽光束>",ic);
end
錯誤訊息寫 GetSpellCooldown 不動作了
查了一下發現11版又更新了函式
https://warcraft.wiki.gg/wiki/Patch_11.0.0/API_changes
雖然看不懂
但搜到了 reddit 這篇 https://reurl.cc/zDl75N
剛好解決了我的需求
簡而言之就是 GetSpellCooldown 更新為 C_Spell.GetSpellCooldown(spell)
回傳值用 C_Spell.GetSpellCooldown(spell).startTime
C_Spell.GetSpellCooldown(spell).duration
所以把原本的巨集改成 (借助ChatGPT幫忙)
/cast 太陽光束
/run cd = C_Spell.GetSpellCooldown("太陽光束");
SCM=SendChatMessage;
if (cd.startTime > 0 and cd.duration > 2)
then local rt = cd.startTime + cd.duration- GetTime();
SCM("光束CD:"..SecondsToTime(rt), "SAY");
else SCM("對[%t] <太陽光束>", "SAY") end;
實測可用
共勉之
(ChatGPT還真方便XD 對寫程式語法來說)
==
編輯.精簡 229字元 記得接成一行
/cast 太陽光束
/run cd=C_Spell.GetSpellCooldown("太陽光束");
SCM=SendChatMessage;
st=cd.startTime;
dt=cd.duration;
if (st > 0 and dt > 2)
then SCM("太陽光束CD還有:"..SecondsToTime(st + dt - GetTime()), "SAY");
else SCM("對[%t] <太陽光束>", "SAY")
end;