[教学]一个面向广大新手的简要宏教学
本帖最后由 cwendian 于 2017-6-16 19:20 编辑首先 你最好有一个 超级宏插件 也就是SuperMacro 论坛就有.搜索一下就行
我玩1.12服务器碰到NNNNNNNN+ 的玩家 拿着2.0的 宏来当1.12 的宏用了. 比如 #showtooltip /cast 精神鞭笞 这些有 #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来结束他
暂时先写这些如果以后心情好了 在补充....
小鸡仔加油,为1.12的宏的再次挖掘开发打基础! 写得不错,期待第二季 老血 发表于 2016-7-9 18:11
写得不错,期待第二季
给点提示 第二季 写什么好? 而且我看也没什么人有问题 第二季,那就战士的常用宏先来点呗 非常给力!很新手教学的宏制作方法,谢谢啦 楼主写的非常好,我有个问题,比如一键拉怪,第四行里的90为什么不是90%,是系统默认宏命令是按百分比计算的吗?如果是法师,法力值5000点,少了1300点我就吃法力红宝石,>3700是无用的,必须是3700/5000=74%,写>74,是这个意思吗?
也就是最终 写为 /script if(UnitMana("player")>74) then uesbyname("法力红宝石");end 狗血编剧男 发表于 2016-7-9 08:04
小鸡仔加油,为1.12的宏的再次挖掘开发打基础!
宏可以发在这个版块吗 充值不了为了伸手费路过顶一发 /run if IsAltKeyDown()then CastSpellByName("寒冰箭(等级 3)")else
CastSpellByName("寒冰箭(等级 1)")end
能帮看看这个宏有什么问题吗?这个宏的用途是平时是寒冰箭3级,按ALT寒冰箭1级。但是现在只能使用寒冰箭1级了!