(宏大师三件套)之施法调节器,和我之前发布的2款宏插件并列为宏大师三件套之一(另2款为:简化宏和扩展宏,自己在我的网站搜),此施法调节器也是功能最多的一款!,他的具体功能我都列在下方。


#兼容性说明:

目前,以下UnitFrame已经过测试并且兼容:

## UnitFrames(单位框架)

* agUnitFrames* Blizzard's UnitFrames* CT_RaidAssist* CT_UnitFrames* DiscordUnitFrames* FocusFrame* Grid* LunaUnitFrames* NotGrid* PerfectRaid* pfUI* sRaidFrames* UnitFramesImproved_Vanilla* XPerl

**备注**: 如果你的插件不上以上列表中, 请提交一个问题,我(指作者)会尽快添加它。

## Action Bars(动作条)

目前,以下Action Bars已经过测试并且兼容:

* Blizzard's Action Bars* Discord Action Bars

**备注**: 如果你的插件不上以上列表中, 请提交一个问题,我(指作者)会尽快添加它。

## 已被支持的插件

### ClassicFocus / FocusFrame

使用这两个插件中的一个,允许您使用`@focus`目标条件!

## 已知的bug和解决方法

## 灰色按钮修复

为了修复范围和冷却时间(动作按钮左上角的灰色小按钮),你必须写这一行位于每个宏的顶部:

/script if nil then CastSpellByName("法术名字"); end

例如:

/script if nil then CastSpellByName("治疗链"); end 

/cast [@target help mod:alt] 治疗链; 治疗链(Rank 1)

**注意**:目前没有办法让这个工作于不同的法术,视情况而定。

/script if nil then CastSpellByName("治疗链"); end 

/cast [@target help] 治疗链; 冰霜震击

这只会激活治疗链的范围和冷却检查,而不会检查冰霜震击! 这似乎是API限制,没有办法解决这个问题。



# 条件

条件允许您微调宏的行为,而不必完全了解任何Lua语言!

# 符号

/命令 [条件] 参数

条件必须放在命令之后,在方括号内写入条件,方括号后输入参数

---

/命令 [条件1 条件2] 参数

可以采用空格键,让2个条件连在一起,让执行命令之前必须满足所有条件

---

/命令 [条件:参数] 参数

某些条件可能需要参数,这些需要跟随在小写的冒号之后,在某些情况下,在大于“>”或小于“<”符号之后

---

/命令 [条件:1/2/3] 参数

某些条件可能需要多个参数,这些必须用斜杠`/`分开

# 分支

在宏中使用条件时,可能需要执行两个不同的行为取决于条件的两种结果,虽然理论上可以通过重复下面一行的反转条件来实现这一点,但你会意识到这会导致你的宏变得更大。一个例子:

/cast [dead] 法术1 

/cast [nodead] 法术2

Roid-Macros插件允许通过分支第一组参数来解决这个问题,如果条件失败,最后用分号“;”分隔它们。相同的例子,但现在有一个分支:

/cast [dead] 法术1; 法术2

当然你也可以在不同的分支中加入更多条件!

例如:/cast [条件1] 治疗波; [条件2] 风怒图腾; [条件3] 治疗波 (等级 3); 冰霜震击

请注意,你可以在每种情况下使用任何想要的法术,此外,每个分号后需加入空格字符,使用它们来提高可读性

# 支持的聊天命令:

* /cast 

* /target 

* /equip

将具有指定名称的物品放入主手槽中

* /equipoh

将具有指定名称的物品放入副手槽中

* /petattack

让你的宠物攻击

* /unshift

让你离开你的变形形态

* /use

# 可用的条件:

* [attacks / noattacks]

只有在目标的目标是[not]指定目标时才会触发。参数:目标的UnitID必须[not]攻击你,参考[target condition]

例子:/cast [attacks:player] {Yes}; {No}

如果你的目标正在攻击你,这将执行名为“Yes”的宏,否则就执行“No”

* [(no)buff / (no)mybuff / (no)debuff / (no)mydebuff]

确保你(mybuff / mydebuff)或指定目标(buff / debuff)具有给定的buff或debuff,可以通过在开头添加“no”来反转。参数:buff或debuff的名字,如果英文端的话必须用下划线“_”替换buff名字中的空格。

例子:/cast [nobuff:韧 @mouseover] 真言术:韧

将会施放真言术:韧给你的鼠标悬停目标,如果在他身上没有发现任何带有“韧”字样的buff的话

例子:/cast [mybuff:血性狂暴] 治疗波

当你的血性狂暴激活时,会施放治疗波给自己

例子:/cast [debuff:虚弱诅咒 @player] 治疗波

只要发现你身上有虚弱诅咒,就会施放治疗波给你自己

* [channeled / nochanneled]

这种情况只会在你目前[not]施放任何通道法术时触发

例子:/cast [nochanneled] 暗影箭

每当你没有施放任何通道法术时,你将施放暗影箭

* [combat / nocombat]

只用于战斗, 可以通过在“combat”前添加“no”来反转

例子:/cast [nocombat] 星火术; 愤怒

当你不在战斗中时你会施放星火术,否则就使用愤怒

* [cooldown / nocooldown]

这个条件只有在指定名称的法术或物品处于CD或未CD冷却时才会触发。参数:法术的名字,如果英文端的话必须用下划线“_”替换buff名字中的空格。

例子:/cast [nocooldown:法术封锁] 法术封锁

你的地狱猎犬会在法术封锁可用时施放法术封锁

* [dead / nodead]

只能在你的目标死亡时使用,可以通过在`dead`前添加`no`来反转。

例子:/cast [dead] 复活术; 快速治疗

如果目标死亡,就施放复活术,否则就施放快速治疗

例子:/cast [nodead] 快速治疗; 复活术

如果目标未死亡,就施放快速治疗,否贼就施放复活术

* [equipped]

确保指定的项目类型已装备。参数:各种主手武器类型的英文名。

例子:/cast [equipped:Bows] 弓射击; [equipped:Crossbows] 弩射击; [equipped:Guns] 枪械射击; [equipped:Thrown] 投掷

将使用你的远程射击能力,取决于你目前装备的远程武器

* [group]

这个条件只有当你参加队伍或团队时才会触发。参数:party和raid

例子:/cast [group:party] 奥术光辉; [group:raid] 奥术智慧

当你参加小队时,这个宏将施放奥术光辉。当你在团队时,它会施放奥术智慧

* [help / harm]

当单位可以获得有益效果时,[help]条件成立,例如一个治疗法术。当单位可受到不利影响时,[harm]条件则成立,例如一个伤害法术。

例子:/cast [harm] 冰霜震击; [help] 治疗波

这个宏会给友方施放治疗波,给敌方施放冰霜震击

* [(my)hp]

检查你自己(myhp)或指定目标(hp)是否具有指定的生命值。参数:小于`<`或大于`>`符号后跟所需的hp百分比

例子:/cast [myhp<40 @player] 快速治疗; 快速治疗

会对你自己施放快速治疗,如果你的健康状况低于40%,或者你的当前目标,如果你有更多的mana

例子:/cast [hp<20] 斩杀; 嗜血

你的目标大于20%的血会施放嗜血,小于20%的血会施放斩杀

* [isnpc]

这个条件只有在指定的UnitID是npc时才会触发。参数:目标的UnitID,请参考target条件

例子:/cast [isnpc:target] {Yes}

如果你的目标是npc,将会执行名为“Yes”的宏。

* [isplayer]

这个条件只有在指定的UnitID是玩家时才会触发。参数:目标的UnitID,请参考target条件

例子:/cast [isplayer:target] {Yes}

如果你的目标是一个玩家,将会执行名为“Yes”的宏。

* [mod]

修改键是保存操作栏空间和做出某些决定的便捷方式。参数:ctrl,shift和alt,可以使用斜杠`/`分隔多个参数

例子:/cast [mod:ctrl] 治疗波; 治疗波 (等级 1)

每当你按CTRL键就会施放满级治疗波,否则就施放1级治疗波

例子:/cast [mod:ctrl/shift] 治疗波

当你按下CTRL和SHIFT时你会施放治疗波

* [party]

这个条件只会成立在你的目标是队伍成员时

例子:/cast [party] 奥术光辉; 奥术智慧

如果你的目标是小队成员,就施放奥术光辉,否则就施放奥术智慧

* [(my)power / (my)rawpower]

检查你自己(mypower)或指定目标(power)是否具有指定量的能量类型。参数:小于“<”或大于“>”符号后跟实际能量值([my] rawpower)或所需百分比([my] power)

例子:/cast [mypower>60] 英勇打击

当你有60%以上怒气时会施放英勇打击

例子:/cast [harm @target power>10] 法力燃烧

你当前目标的蓝量超过10%的话你就会施放法力燃烧。

例子:/cast [myrawpower<390] 魔爆术(等级 1); 魔爆术

如果你当前法力值低于390,就会施放1级魔爆术,否则就施放满级魔爆术

* [raid]

这个条件只会成立在你的目标是团队成员时

例子:/cast [raid] 奥术光辉; 奥术智慧

如果你的目标是团队成员,就施放奥术光辉,否则就施放奥术智慧

* [stance]

允许您检查您是否处于给定的姿势或变形形式。参数:可以使用斜杠`/`分隔多个参数,0代表你无姿态,1, 2, ..., n - 代表你在姿态中,其中n是可用的姿态或变形形态的总数

例子:/cast [stance:0] 猎豹形态

当你不在猎豹形态时就施放猎豹形态

例子:/cast [stance:1] 狂怒; 巨熊形态

如果你当前身处巨熊形态,就施放狂怒,如果不在巨熊形态,就进入巨熊形态

例子:/cast [stance:1/2] 盾击; 防御姿态

如果你在战斗姿态或防御姿态,你会施放盾击,但是,如果你在狂暴,你将会切换到防御姿态。

* [stealth / nostealth]

只会在你的角色潜行时触发。 可以通过在“stealth”前添加“no”来反转。

例子:/cast [stealth @player] 治疗之触; 影遁

如果你的角色已经潜行,就会施放治疗之触,如果你的角色没有潜行,就施放影遁

* [type]

检查我们的目标是否具有指定的动物类型。参数:怪物的类型,野兽,人型生物之类的。

例子:/cast [@target type:野兽] 休眠; 纠缠根须

如果目标是野兽,就施放休眠,否则就施放纠缠根须

* [UnitID]

一个标识符,指的是可以与之交互的游戏世界中的单位。 可用的标识符是:

`@player` -当前玩家,指你自己 

`@pet` - 当前玩家的宠物

`@partyN` - 除了你自己的第N个队员 (N 是 1, 2, 3 或 4)

`@partypetN` - 第N队伍成员的宠物 (N 是 1, 2, 3 或 4)

`@raidN` - 第N个团队成员 (N 是 1, 2, 3, ..., 40)

`@raidpetN` - 第N团队成员的宠物 (N 是 1, 2, 3, ..., 40)

`@target` - 当前目标的单位

`@mouseover` - 当前鼠标悬停的单位

`@npc` - 玩家正在与之交互的NPC

你可以将“target”附加到其中任何一个以引用该单位的目标。 你可以甚至把它们连在一起就像`@ playertargettargettarget`但如果你过分,你会发现性能会受到影响。


彩色文字


#调用其他宏

这将非常有趣,比如将非常复杂的宏链接在一起,每个宏在执行之前检查他的某些条件至另外一个宏。你必须把宏的名字放在花括号里{ },任何的聊天命令都支持这个插件。

简单的例子:

宏1:主

/cast {Blood}

/cast {WW}

/cast {Heroic}

宏2:Blood

/cast [mypower>30] 嗜血

宏3:WW

/cast [mypower>25] 旋风斩

宏4:Heroic

/cast [mypower>60 harm] 英勇打击

现在可以使用宏1:主 来执行所有其他宏。

主宏试图执行几个子宏,同时执行的宏条件句如果都是成功的。这使您可以构建非常复杂的递归结构!非常的高端!

简单的例子:

宏1:鹰

/cast {猴}; [nomybuff:雄鹰守护] 雄鹰守护

宏2: 猴

/cast [nomybuff:灵猴守护] 灵猴守护

当你使用宏1:鹰,宏将调用宏2:猴并检查它是否成功。宏2只会成功,如果玩家没有灵猴守护激活,如果他这样做,宏将失败,宏1鹰的第二部分将被执行!

你也可以调用宏之前使用所有条件!

/cast [nostealth] {M1}

当你不在隐身状态时,会使用M1


===========================================================================

结语:有了这款插件,宏类的插件算是补全了,60年代再也没有其他插件可以再宏命令条件上超过这(宏大师三件套)了。

这款插件可以配合扩展宏,做到很多以前难以想象的事:比如猎人的12秒射击循环

/cast !自动射击

/castsequence 瞄准射击,多重射击,瞄准射击

就到这。各位宏大师们,自己拿去研究吧。祝60年代宏能更上一层楼!


v3 增加了对超级宏的支持

链接: https://pan.baidu.com/s/1Prx7VTcLfoCrXPGjQNvRyg 提取码: ud8j