本帖最后由 cwendian 于 2017-6-16 19:20 编辑
首先 你最好有一个 超级宏插件 也就是 SuperMacro 论坛就有. 搜索一下就行
我玩1.12服务器 碰到NNNNNNNN+ 的玩家 拿着2.0的 宏来当1.12 的宏用了. 比如 #showtooltip /cast [nochanneling] 精神鞭笞 这些有 #showtooltip 的据我所知 就是2.0后的宏了 大家可以不必在试验了. 下面我们看看如何制作一个1.12的宏 , 1.12的宏 普遍是由 /script 起步 也就是在运行暴雪允许我们运行的脚本功能(插件也是这个道理 其实插件也算是宏命令) 我们想要做宏 首先先要知道 我们到底想要利用这个宏来做什么 ? 想要实现什么功能 先举一个简单的例子. 比如说我的宏:我的战士 盾墙是15秒 我想要过几秒就提醒一下队友 我的盾墙剩余时间 以免盾墙消失时 由于盾墙时伤害太低 盾墙消失后 伤害暴增 治疗来不及加血照成倒T (虽然没人要我这个稳如狗的战士).... 我就要利用1个命令 : 延迟命令 /in in后边 是延迟时间 单位是秒 那么我们的宏就是 - /施放 盾墙
- /in 5 /Y 盾墙还有10秒!
- /in 10 /Y 盾墙还有5秒!
- /in 12 /y 盾墙还有3秒!注意治疗!
复制代码由上边的说明可知 /in 是延迟命令 也就是 第一行 释放盾墙 第二行 延迟5秒后 会喊 盾墙还有 15-5 = 10 秒 以此类推
在来看看我的另外一个一键拉怪宏 - /施放 复仇(等级 5)
- /施放 盾牌猛击(等级 4)
- /script if(UnitMana("Player")>40) then CastSpellByName("英勇打击");end
- /script if(UnitHealth("player")>90) then CastSpellByName("血性狂暴");end
- /script if(UnitMana("Player")>30) then CastSpellByName("盾牌格挡");end
复制代码让我们来看看他到底表达了什么 1.2 我就不说了 直接看 3.4.5 /script if(UnitMana("Player")>40) then CastSpellByName("英勇打击");end 这里的if 就是如果的意思 if 后边跟着条件 then 后边跟着结果 ( if 饿了 then 吃饭 ) UnitMana(蓝量 因为我是战士 所以代表的是怒气) 后边括号里 的 player 代表玩家 也就是自己 ,CastSpellByName cast 是释放 组合起来 意思就是 CastSpellByName 释放某技能 格式是 CastSpellByName("XXXX") 如果不加等级的话 默认释放最高等级的法术 所以这条的意思 就是 如果 我的怒气 大于40 就放英勇打击 . 同上 第4条 的意思就是 如果自己的生命大于 90% 就释放血性狂暴 这里的 UnitHealth 代表 判断生命 第5条 就不说了. 宏就是 利用暴雪给出的 开放API接口 来实现各种判断 使用 以及 释放技能 的能力. 所以这就是 我为什么 到处求 1.12的 API 了.... 最后一点一段宏写完之后后边 一定要加上 分号 也就是 ; 如果里边有条件最后还要加上 end 来结束他
暂时先写这些如果以后心情好了 在补充....
|