作者OAzenO (すご-い!)
看板WOW
标题[闲聊] 巨集函式有更新
时间Mon Sep 2 21:58:26 2024
因为突然发现以前正常使用的巨集失效
/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;
--
◢ミ
_爫◣ | ◢
=▂▃▂◣
▊
◤▂ ▂◥ 彡 ▂≡▂
▉ー○-○- 竜が我が敌を喰らう! | 龙神の剣を喰え!
▉/●"▆Δ▆▲
● △ ▏ ◤
/▲▲\◤
▊ ︵ ~胡适 | ~爱因斯坦
◢◥﹨▅ ▲
▉\ ◤▄▂ ψ ▎ \ \◥
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.224.172.28 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/WOW/M.1725285518.A.66A.html
1F:推 cn091103: 快推,不然别人以为我们看不懂XD 09/02 23:40
2F:推 PrimeChaoz: 所以这个巨集是干嘛的?断法巨集吗 09/03 00:05
3F:推 nepholi: 施法成功用白频:对XXX 太阳光束 09/03 00:08
4F:推 nepholi: 施法失败用白频:光束CD:x (还有几秒) 09/03 00:10
5F:推 nepholi: 我可能误会了,如果只是要判断剩余冷却时间应该只要抓dur 09/03 00:17
6F:→ nepholi: ation就可以了?请问rt那段的目的是什麽 09/03 00:17
7F:→ Hylun: duration是技能完整的cd时间 09/03 01:19
8F:推 macheal: 超过255个字... 09/03 02:52
9F:推 summer17299: 太多字最後一段可以不用把end移上去,也比较不洗画面 09/03 03:09
10F:→ cat05joy: 应该有UI WA可以取代(?) 09/03 12:02
11F:推 scvb: 难怪我万年没更新的MSBT一直说GetSpellCooldown 这个错误 09/03 12:31
12F:推 sarevork: msbt不是更新了吗 09/03 12:47
13F:→ hh123yaya: 大声巨集 09/03 14:24
14F:推 oldriver: 他这个会白字喊话 比较偏向RSA这种ui 09/03 15:13
15F:→ ray12121313: starttime是开始时间,duration CD, gettime是你电脑 09/03 15:36
16F:→ ray12121313: 时间,所以你回推一下就知道为什麽需要rt那段了 09/03 15:36
17F:→ ray12121313: reurl.cc/yvYdjO 参考这篇你可以压点字数 09/03 15:40
18F:推 nepholi: 看来是我误会文件写的duration意思 原来是指完整CD 09/03 16:22
19F:→ nepholi: 我看完文件以为是剩余秒数XD 想说为啥要这麽复杂算rt 09/03 16:23
20F:→ OAzenO: 原来巴哈已经有讨论文了 没想到查巴哈XD 09/03 19:10
※ 编辑: OAzenO (61.224.172.28 台湾), 09/03/2024 21:46:16