因为突然发现以前正常使用的宏失效
/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;