标题: 《超级宏官方教程》第二章·第1节:常用命令与参数运算符号 —— 主稿:YYL ∕ 修订:Jachou
第二章·第1节:常用命令与参数运算符号
主稿:YYL ∕ 修订:Jachou
常用命令/Cast 或 /Skill 释放技能语法:
/skill 技能名称或ID
/cast 技能名称或ID
/Use 或 /Skill 使用物品语法:
/use 腰坠 (腰坠可以包含所有腰坠,无需写名字)
/use 武器名称或ID
/Omwp 或 /Equip 切换武器或装备语法:
/omwp 武器或装备名称或UID
/Umwp 卸下当前武器
/Unequip 卸下当前装备
/Target 选择目标语法:
/target 目标名字或ID
/Delbuff 或 /Cbuff 删除buff即点掉某个Buff,比如MT可以总是点掉无威胁气劲
例:/cbuff 引羌笛,极乐引,金刚伏魔五阵
/Var 变量赋值将判断条件的执行结果赋值给变量,变量名(以”V_”开头)
例:/Var [bufftime:青冠<3] v_qg 即将青冠Buff时间小于3秒作为一个变量,并将其命名为v_qg,后续可以反复利用这个变量!
/Print 打印判断结果/print [fight ,life<0.3]
在系统聊天栏里面会黄字输出 [fight , life<0.3]的判断结果,方便调试宏
注: /print 命令默认只有在编辑界面打开的时候才会打印判断结果
/Inter Doodad交互例:/Inter [nobuff:蛊时]仙王蛊鼎 – 也可庖丁挖草挖矿等交互
/Dia 对话交互(类似盗宝贼、美人图、茶馆对话)例:/Dia 确定存在对话框,且选项中有包含“确定”两字就会选择对话框!(模糊匹配)多个待选项以逗号分割。
/Return 终止运行可以理解成保护引导如果符合条件,停止执行宏,该语句后面的内容将不会运行
终止宏的运行,可加入判断语句,有点类似盒子宏的/config 保护引导
#name Return示例
/skill 穿云
/ReTurn [fight]
/skill 后撤
如果Fight判断为真,则终止,后面的/skill 后撤将不会执行。
常见用法
/Return [ggcd>0.3]–公共cd
/skill 疾如风,龙牙,穿云
即公共cd大于0.3的时候就终止. 可以把下面的爆发技能[疾如风]压缩到即将释放技能的前面一刻, 合理利用其buff的有效时间。
/Return [! (tar:npc , tarisem) ]–目标的NPC类型判断,敌对判断
/skill 疾如风,龙牙,穿云
其中 “!” 表示否定. 即“不是”(目标NPC 且 目标敌对),即终止。
由于官方白名单的原因.宏插件只能在 无目标 或 目标为NPC 时使用技能。
此处Return 既可以避免那些不必要的插件的判断,又可以使[疾如风]这类爆发性buff在正确的时机释放。
扩展用法
/if [fullmoon ; fullsun]
/skill 净世破魔击
/Return [dis<8]
/end
/skill 赤日轮
此处/return 的作用是合理规避官方游戏的bug和延迟!
因为在游戏处理时,日月值100转换为满日月时,会有稍许停顿,再加上网络延迟,即使ggcd结束的时刻,还不能释放 [净世破魔击],
导致打出了不必要的[赤日轮], 加上终止命令 /return [dis<8]即可规避游戏本身的迟钝,达到想要结果。
保护引导
/return [ota]
/skill 玳弦急曲
上面的简单示例可以保护引导技能
/return [ota]
/skill 玳弦急曲
/skill 梵音急节
这个例子中,保护引导可能会失效,因为插件执行速度较快,一次键击,宏从上到下执行,导致后面的 [梵音急节]会打断[玳弦急曲],
/return [ota]并未执行,同时也没有获取到OTA的状态。
–改进1型
/return [ota]
/skill [tar,sktest:玳弦急曲]玳弦急曲 –有目标,且技能亮着(在攻击范围内)
/return [explast :玳弦急曲]
/skill 梵音急节
例子通过return命令,终止宏后半段的执行.以防止被打断.(关于explast预判参加其他说明文档)。
–改进2型
/return [ota]
/if [tar,sktest:玳弦急曲]
/skill 玳弦急曲
/return
/end
/skill 梵音急节
例子2通过if结构,一样可以保护引导
总之:宏上面有/return [ota]命令,同时宏内容中,每次键击[引导技能]是最后一个动作,即可保护引导 !
If 条件结构/If 如果符合条件,执行下面代码
/Elseif 如果不符合前面的”/if”、”elseif”条件的情况,且符合这个条件的情况下,执行下面的代码
/Else 如果不符合前面”/if”、”elseif”中的条件,执行下面代码
/End /If 结构结束标记
/Macro 调用子宏子宏的名字多个以逗号分割
注:子宏将完全继承并使用主宏的#skillbox #varbool #varnum #bantest /var 定义的变量值或判断
/AllSk 允许技能释放/BanSk 禁止技能释放技能名称,多个以逗号分割
对#SkillBox定义过的技能,执行“禁止/允许”操作未被#skillBox定义的技能无效
判断参数符号表优先级 | 符号 | 同义 | 描述 | 示例 | 备注 |
1 | ; | | (多个条件间)或 | [buff:剑神无我;tmbuff:急曲] | 自己有剑神并或对方身上有自己的急曲 |
2 | , | | (多个条件间)且 | [buff:剑神无我,tmbuff:急曲] | 自己有剑神并且对方身上有自己的急曲 |
3 | ! | | (任意值)非 | [!buff:剑神无我;tmbuff:急曲] | 自己身上没有剑神无我,或者对方身上有自己的急曲 |
4 | | | | (多个参数间)或 | [buff:春泥护花|天地低昂] | 自己身上有春泥或者天地 |
5 | & | | (多个参数间)且 | [buff:春泥护花&清心静气] | 自己身上有春泥和天地 |
6 | >= | | (数值间比较)大于等于 | [bufftime:剑神无我>=5] | 注:如进行比较的变量值非数字型,一律返回flase |
| <= | | (数值间比较)小于等于 | [bufftime:剑神无我<=6] | |
| > | | (数值间比较)大于 | [bufftime:剑神无我>7] | |
| < | | (数值间比较)小于 | [bufftime:剑神无我<8] | |
| ~= | | (值比较)不等于 | [tmbuff:急曲~=3] | 可对所有类型的变量进行比较! |
| = | == | (值比较)等于 | [tmbuff:急曲=3] | |
7 | + | | (数值运算)加 | [3+4+5+bufftime:剑神无我] | |
| - | | (数值运算)减 | [6-3-2-life] | |
8 | % | | (数值运算)求余 | [123%100] | 123除以100的余数,得23 |
9 | * | × | (数值运算)乘 | [life*100] | |
| / | ÷ | (数值运算)除 | [life/100] | |
10 | : | | (表达式)参数传递 | [buff:剑神无我] | |
11 | ( ) | | (表达式)括号 | [(buff:春泥护花;bufftime:天地低昂>5),v_a>123] | 改变优先级用 |
备注:按结合优先级从低到高排列,优先级高的将优先结合,同级按从左到右结合! |
注1:>= , <= , ~= , > , < , =这六个用于大小比较的符号,可以使用连续比较形式如: [ a>b<c=e ]他在逻辑上的意义完全等同于 [a>b,b<c,c=e] |
学习了,感谢.......