如何在魔兽世界中编写宏命令以大喊两个语句?

我想编写一个能够让角色大喊两个语句中的一个的魔兽世界宏命令,同时我希望能够选择要使用哪个语句。我可以接受创建一个按顺序依次使用每个语句的宏命令,让游戏检测玩家是否拥有某个增益状态,或者让游戏检测某个修改键(比如 alt, shift, ctrl)是否被按下。如果我要为一个法术创建宏命令,我可以使用

/cast [mod] 法术1
/cast [nomod] 法术2

但是这在使用 /s 命令时不起作用(我试过了)。我尝试深入学习基本的 Lua 代码,但是一直没能让它起作用。以下是我尝试过的使用 Lua if then else 命令测试玩家是否拥有某个增益状态的例子(我在我的德鲁伊角色中使用了“旅行形态”作为占位增益状态)

/run if (UnitAura("player", "Travel Form"))
        then SendChatMessage("语句1","say")
        else SendChatMessage("语句2","say")
        end

非常感谢您提供的任何帮助!

点赞
用户1297035
用户1297035

以下是两个使用修改键的示例。它们有点简短,因为我喜欢我的宏很短。

/run SendChatMessage(IsModifierKeyDown() and "Statement1" or "Statement2")
/run SendChatMessage(SecureCmdOptionParse("[mod] Statement1; Statement2"))

至于检查您是否拥有诸如增益效果(按名称)之类的效果,您需要迭代UnitAura()的索引或使用[GetPlayerAuraBySpellID](https://wowpedia.fandom.com/ wiki / API_GetPlayerAuraBySpellID)(不太紧凑的示例)

/run if GetPlayerAuraBySpellID(783) then SendChatMessage("Statement1") else SendChatMessage("Statement2") end
2021-08-12 06:23:37