魔兽世界喊话宏怎么弄宏怎么弄一个宏

魔兽世界高端玩家发福利:宏的书写法则及优化
魔兽世界高端玩家发福利:宏的书写法则及优化
魔兽世界宏科技大神发福利了咯!带来了非常详细宏的书写法则及优化,一起来看看吧!
随着魔兽世界6.0资料片的逐步临近,许多玩家都在积极为进入德拉诺而备战,其中就包括制作适合6.0资料片的宏命令!下面就一起来看看魔兽世界宏科技大神手把手教你写魔兽宏命令!本文将着重探讨宏的判断机制这一最重要也是最难的部分,讲解如何写出优美合理的判断语句,泛用于任何职业以及专精,对于文中之错误及疏漏望各位玩家指正。但这不是一篇面向零基础新手的宏命令完全教程,需要读者大致了解宏的形式和基本判断项(比如exists,help等),零基础的读者可以移步隔壁看基础教学贴。本问基于6.0.3版本而写,但由于宏在历代版本改动都非常非常小,因而本帖可能不会随着版本的推进而频繁更新。
本文正文分为四部分: |
6.0.2的改动以及存在的bug
*通用宏上限提高到120个,基本不可能用完了。
*切换目标时有可能出现判断迟滞,导致动作条按钮上的图标错误。不过宏仍旧能够正常运作,只是显示错误而已。这可能是由于动作条按钮本身的代码造成的(待查证)。
事实上宏这种东西从2.1.0版本加入安全模板一来没有发生过大的变动,只是偶尔加入新的简写或是判断条件。
判断表达式,判断式(Option Set):由若干判断项组成,封闭在方括号[]中的真值表达式。继承自安全模板,能在受保护环境下允许运作的唯一判断形式。
一、写宏的基本法则
宏最主要的应用是带有判断的施法,这也是下文主要应用的模型。一个典型的这种宏可以抽象成以下形式:
/cast [表达式1-1][表达式1-2]技能1;[表达式2]技能2;技能3
--宏的模型
[项1,项2,项3, ...]
--表达式的模型
--注:表达式中定义单位target=或@不是一种判断条件,但它重新指定了后续所有涉及目标的判断和最终技能施放的对象。比如指定了@mouseover后,后续的help/exists/dead之类的判断都会基于鼠标悬停的单位。
在这个模型下,讨论:
1. 逻辑及判断顺序(法则一,!极为重要)
涉及判断就有真值,但是不要被这个带有浓重编程和数学色彩的词吓倒。概括来说就两句话:
&1&方括号内各分项之间是AND的关系,用逗号间隔,只有各个分项都为真整个方括号(表达式)才为真。方括号内各项之间没有顺序要求。
&2&各个方括号之间是OR的关系,判断顺序是从左至右,遇到第一个方括号为真时即结束判断,而忽略其后的所有项目。
大部分宏出错/不能用/判断混乱的原因就是在此。写宏的时候必须把条件强的(或者说优先级高的)判断放到前面,弱的(泛用型的)判断放到后面。举个例子,昨天回答了问答区一个人的提问,他的宏
1:#showtooltip
2:/cast [nomod,spec:2]炼狱冲击;[nomod,target=mouseover,exists,harm,spec:2]炼狱冲击
无法对鼠标悬停目标放。究其原因就是,[nomod,spec:2]这一个表达式弱于后者[nomod,target=mouseover,exists,harm,spec:2],后者不仅需要无修饰键和第二专精,同时需要存在一个可攻击的鼠标悬停目标才会为真,导致了后者为真时前者一定为真。按照上文的&2&,从左至右的顺序将永远是前者表达式率先为真,因而无法对悬停目标施放炼狱冲击。修改的方法很简单,把两个判断调换位置即可:
1:#showtooltip
2:/cast [nomod,target=mouseover,exists,harm,spec:2]炼狱冲击;[nomod,spec:2]炼狱冲击
3:--修改后的宏
当然我在回答中还给出了优化方案,后文会详细介绍如何优化。
2. 技能整合(法则二)
对于把多个技能整合进一个/cast命令里,在不同的条件下自动判断施放不同的技能,只有一条格式法则:不同技能之间用分号;间隔。具体可以参照本章开头提出的宏模型。
要注意,一个/cast任何情况下至多只能施放一个技能,而且各个方括号之间仍旧遵循上文提出的&2&判断顺序法则。
3. 技能堆叠(法则三)
如果要做到一键同时放出两个或更多的技能,必须有多行/cast命令,这就是技能堆叠。这种宏通常用于爆发技能,喝药开饰品开技能需要同时完成。
其法则是:至多只能拥有一个产生/受到GCD影响的技能,幸运的是爆发类技能和药水等物品几乎都设计成不占用GCD。
1:#showtooltip
2:/cast 奥术强化
这样的宏是可行的,因为饰品和[奥术强化]本身并不产生GCD,甚至再加两行
/cast 气定神闲
/cast 奥术冲击
也是合法的。但是,形如以下的宏是非法的:
1:#showtooltip
2:/cast 驱邪术
3:/cast 审判
4:/cast 十字军打击
因为三者都产生GCD和/或被GCD影响,最终的效果是只相当于第一行[驱邪]有用。不要妄图这种方法能实现按优先级施放技能。
4. 技能替代(法则四)
技能替代是一个十分有意思的机制,自CTM引进。这种机制允许某[基础技能]在特殊情况下被另一个[替代技能]替代,而即便在替代的情况下,通过宏命令施放[基础技能]时会自动定向到[替代技能],其最终的结果是正常施放[替代技能],宏的图标也会随之变化。
这种机制有两种情况:
1)单向的替代,/cast [替代技能]不会施放出基础技能,但是/cast [基础技能]是任何情况下通用的。
举例:神牧的[圣言术:罚]在黄轮和蓝轮下转换成[静]和[佑],只要宏
1:#showtooltip
2:/cast 圣言术:罚
就能自动根据轮的颜色转换技能,但因为这是[罚]被单向地替代,反过来如果宏里写[静]或[佑],在红轮下就会放不出技能。
2)双向的等价,[基础技能]和[替代技能]是完全等价的,就如同一个技能,任何情况下用宏施放任意一个技能的结果都是放出当前激活的那一个。比如[腐蚀术]和[献祭]两者,SS玩家可以分别在不同下试试。
这种机制对于写宏非常有利,我们不需要为了技能被替换而另开一个宏。更深入的一点,以下两个技能需要重点提及:
1:#showtooltip
2:/cast 秘法炸弹
3:--这个技能对应法师75级天赋中的[虚空风暴],[寒冰炸弹]和[活动炸弹]。[秘法炸弹]被单向替代。
1:#showtooltip
2:/cast 神圣爆发
3:--这个技能对应牧师90级天赋,也是单向替代。
如果其他职业也有类似的天赋基础技能,请欢迎补充。
网易公司版权所有魔兽世界怎么才能从一个宏里 调用其他宏
能不能讲一个宏设置成一个按键来实现
(翰林院编修)
按Alt+F11在this documemt 里面定义的宏是可以被调用的, 自定义工具栏是可以设定按一个按钮执行某个动作的,当然也可以用窗体控件做
对您的评价:
你回答的太棒了,非常感谢哦。
同类未解决问题
同类已解决问题相关资源:
魔兽世界宏命令大全一宏:
传奇最经典网页版,多人团战跨服竞技玩法冰火,十年最经典游戏,英雄合击,3D特效绚丽,赶紧注册试玩一下,
切换目标重置宏的命令我就不清楚了,不过第一个条件还是能实现的
/castsequence reset=N 技能1,技能2
N为宏不触发之后的重置时间(秒),也就是不按下这个宏N秒后重置,重置顺序
技能1,技能2就是你要输入的技能名字,用英文格式的逗号隔开
注意"/castsequence"和"reset=N"之间,还有"reset=N"和"技能1"之间各有一个空格
技能可以输入多个,都是用逗号隔开
这个宏让你按下以后成功施放技能1后自动切换技能2,然后技能2施放后切换3,如此类推,如果是最后一个技能,那就重置宏,回到第一个技能,不过如果中间有技能无法施放那就会卡在该技能那无法顺序延续下去
例子:/castsequence reset=2 魔爆术,冰***术
2秒自动重置回魔爆术,如果要切换目标就施放第一个的话那么你要切换目标等2秒再施放咯
魔兽世界宏命令大全 触发宏命令符号是什么:
顺序施放命令: /castsequence 技能1,技能2,技能3..... 比如冰法开冰盾再开法力盾: /castsequence 寒冰护体,法力护盾 比如射击猎: /castsequence 奇美拉射击,瞄准射击,奥术射击 可以附加重置条件reset /castsequence reset=10 技能1,技能2,技能3.....,重置的条件就是当你10秒钟没有按此宏设置的按键,则重置宏 /castsequence reset=ALT 技能1,技能2,技能3.....,重置的条件就是当你同时按下ALT+此宏设置的按键,则重置宏 这个宏适合使用几个无触发条件,并且最好冷却时间相近的技能放到一起用。 的许多攻击技能,压制、斩杀这种都是触发的,个人感觉不适合用这种一键宏。&
比如你把压制填写到这个宏里:/castsequence reset=10 撕裂,压制,致死打击。 如果压制没有成功施放(没有触发、怒气不够、GCD未结束等原因,下一次按还是压制,而不是致死打击,而且重新计算重置宏时间。 不过你可以做一些简单的组合:/castsequence 冲锋,撕裂 或者:/castsequence 冲锋,断筋
魔兽世界宏命令大全谁有啊:
战士常用宏命令
一、1键实现3姿态间的切换
首先,菜单里选择按键设置,把8号快捷键的键位设置2,设为Q
然后,打开技能书,在战斗姿态下,把“狂暴姿态”图标拖到8那格去
切换狂暴姿态,在狂暴姿态下,把“战斗姿态”图标拖到8那格去
最后鼠标点一下切换防御姿态,把“狂暴姿态”图标拖到8那格去
这样,在战斗姿态或者防御姿态按一下Q,都能切成狂暴姿态。而在狂暴姿态按一下Q,就能切回战斗姿态。如果要在切姿态的同时换武器,把姿态的图标换成以下宏:
1、从任意姿态任意武器切换到战斗姿态+双手武器
/script P=PickupInventoryIPC=PickupContainerIoi=(GetInventoryItemLink("player",17));if(oi) then oi=(GetContainerItemLink(4,15));if(oi) then P(17);PC(4,7);else P(17);PC(4,15);P(16);PC(4,11);end
/施放 战斗姿态
2、从任意姿态任意武器切换到防御姿态+主手武器+盾牌
/script P=PickupInventoryIC=PickupContainerIoi=(GetInventoryItemLink("player",17));if(oi) then oi=(GetContainerItemLink(4,15));if(oi) then P(17);C(4,7);C(4,15);AutoEquipCursorItem();else C(4,11);P(16);C(4,15);P(17);end
/施放 防御姿态
3、从任意姿态任意武器切换到狂暴姿态+双持武器
/script P=PickupInventoryIPC=PickupContainerIoi=(GetInventoryItemLink("player",17));if(oi) then oi=(GetContainerItemLink(4,7));if(oi) then P(17);PC(4,15);PC(4,7);AutoEquipCursorItem();else PC(4,11);P(16);PC(4,7);P(17);end
/施放 狂暴姿态
副手武器放在4号背包(最左边的背包,因为这个包是最后被拾取的物品填满的背包,不容易因为盾或副手武器的那一格被填满导致宏实效)的7(副手武器)、11(主手武器或双手武器)、15(盾)三格。
背包的数法是:
11 12 13 14
15 16 17 18
二、三种姿态下的攻击常用技能整合
首先再次打开按键设置,把回复对话R键那里改为I。因为,第一,战斗到一半不小心把对话框按出来是很容易导致失败的。第二,R键是一个很就手的键,按久了不会累。
然后,把9号快捷键的键位设置2,改为R
1、在战斗姿态下,把以下这个宏的图标放到9
/施放 冲锋(等级 3)
/施放 压制(等级 4)
/script if ( UnitHealth("target")&20 ) then CastSpellByName("斩杀(等级 5)"); else if ( UnitHealth("target")&=20 ) then CastSpellByName("致死打击(等级 4)"); end end
/script if (UnitMana("Player")&80) then CastSpellByName("英勇打击");end
2、在防御姿态下,把以下图标放到9(这个我直接给出的是防战的版本了,其他天赋战士记得把第四行的“盾牌猛击”改为致死打击或者嗜血)
/施放 盾牌格挡
/script SpellStopCasting();
/script if (UnitMana("Player")&5) then CastSpellByName("复仇");end
/script if (UnitMana("Player")&40) then CastSpellByName("盾牌猛击");end
/script if (UnitMana("Player")&59) then CastSpellByName("英勇打击");end
3、在狂暴姿态下,把以下宏的图标放到9
/施放 拦截(等级 3)
/script if ( UnitHealth("target")&20 ) then CastSpellByName("斩杀(等级 5)"); else if ( UnitHealth("target")&=20 ) then CastSpellByName("致死打击(等级 4)"); end end
/script if(UnitAffectingCombat("player")==1) then CastSpellByName("旋风斩") else end
/施放 拦截(等级 3)
/script if ( UnitHealth("target")&20 ) then CastSpellByName("斩杀(等级 5)"); else if ( UnitHealth("target")&=20 ) then CastSpellByName("致死打击(等级 4)"); end end
/script if (UnitMana("Player")&80) then CastSpellByName("英勇打击");end
这样一个R键就实现了冲锋、压制、拦截、致死(嗜血、盾牌猛击)、斩杀、旋风、英勇、盾牌挡格、复仇共9个技能的使用。大大节约了键位。也弥补了某些操作上的缺陷。比如斩杀前出了闪避,R按下去就自动是压制了(一般压制秒人最后20%血还是可以的,还有打盗贼他很可能是开了闪避了,一味斩杀都是闪避)。还有能很方便的保持盾牌挡格和复仇。破甲的话另外设一个键吧。怒大于一定量的时候自动用英勇打击宣泄。狂暴战士的话可以把宏里面的数字改小一点。
三、破胆怒吼+立刻绷带,以及一键绷带宏
/施放 破胆怒吼
/script SpellStopCasting()
/script UseContainerItem(2,1)
/script TargetUnit("player")
/script UseContainerItem(2,1)
/script TargetUnit("player")
就是一键绷带宏。可以单独建一个。绷带放在中间那个包左上开始第一格。
这是战士的一个实用技巧。虽然时机有时候难以把握,但是只要敌我双方身上都没有流血效果,我们就可以25怒+2000血,也就是说这个宏用好了能顶一件+200耐的装备。成功用出后要是都没打赢,那基本上就是RP问题.....
一键绷带也非常有用。平时我们绷带都是点了绷带还要点人。或者要先F1再点绷带。总之就是要按两个键。将其简化到一个键,只要多节省1秒,那就是多获得了250血,也就等于比不会这招的对手多25耐。25耐的优势还不够多么?
3-2 铿锵玫瑰烈 朋友要的,一键血性狂暴+切换狂暴姿态
/施放 血性狂暴
/script SpellStopCasting()
/施放 狂暴姿态
/ if (UnitHealth("target")&20) then CastSpellByName("斩杀(等级 5)"); end
/施放 嗜血(等级 4)
/ if (UnitMana("Player")&34) then CastSpellByName("旋风斩");end
/ if (UnitMana("Player")&34) then CastSpellByName("英勇打击");end
狂暴状态攻击的宏,如果对方的血少于20%则斩杀
否则放嗜血. 如果怒气大于34,则使用旋风斩, 或英勇打击
这个数值我自己设的,具体情况可以看自己更改.
武器战士的
/script if(UnitIsFriend("player","target")) then AssistUnit("target");
/cast 压制(等级 x)
/script if (UnitHealth("target")&20) then CastSpellByName("斩杀(等级 x)") else CastSpellByName("致死打击(等级 x)") end
第一行:点中目标时打目标,点中队友时协助队友打。
第二行:压制亮了打压制。
第三行:目标血少于20%时出斩杀,否则出致死打击。
/施放 压制(等级 4)
/ if (UnitHealth("target")&20) then CastSpellByName("斩杀(等级 5)"); end
/施放 嗜血(等级 4)
/ if (UnitMana("Player")&34) then CastSpellByName("英勇打击");end
战斗状态用的,原理同上
/ if(nitAffectingCombat("player")==1) then CastSpellByName("旋风斩");end
只在战斗状态释放旋风斩,应某些朋友的要求添加的
/施放 破胆怒吼
/ SpellStopCasting()
/target 安达里克
/ UseContainerItem(4,1)
/ TargetLastEnemy()
破胆绷带宏, 第3行名字改成你自己的
/施放 破胆怒吼
/ SpellStopCasting()
/ UseContainerItem(4,1)
/ TargetUnit("player")
这个也可以
/施放 盾牌格挡
/ SpellStopCasting();
/ if (UnitMana("Player")&14) then CastSpellByName("复仇");end
/ if (UnitMana("Player")&44) then CastSpellByName("盾牌猛击");end
/ if (UnitMana("Player")&59) then CastSpellByName("英勇打击");end
优先使用盾牌格档的宏,我目前TANK用
《魔兽世界》相关文章
(阅读:407)
(阅读:316)
(阅读:211)
(阅读:631)
(阅读:264)
(阅读:248)
(阅读:148)
(阅读:243)
(阅读:307)
??7月25日,《饭局的诱惑》节目官方正版授权、腾讯首款狼人杀APP《饭局狼人杀》全量上线,所有玩家都可前往微信、手Q、应用宝、腾讯视频及各大应用商店下载。和朋友异地连麦,随时开局,相爱相杀就在《饭局狼人杀》。更值得期待的是,7月26日至28日期间,还有马东携众葩们在游戏里上演陪玩活动,和喜爱的明星一起偶遇吧!《饭局狼人杀》开饭了!腾讯合作版今日上线腾讯代理《饭局狼人杀》 7.25开饭了7月12 ...
?? 挥洒热血,赢得胜利,领取奖赏,这在大多数游戏里面,早已成为金科玉律般的游戏常识,却在《全民奇迹MU》中被全新的福利领取体系所彻底颠覆。那么,你可知道在4.0大时代之中,奇迹大陆上究竟有哪些资源与道具福利,能够让玩家们即便没有时间去参与活动与战斗,也能够每天免费领取? 《全民奇迹MU》 不打架也能领奖?4.0版本每日福利全揭秘
每日必做,专享与找回齐飞
说到免费领取的福利,自然逃不开《全民奇 ...
扫描二维码

参考资料

 

随机推荐