什么是宏命令 通俗解释令

您所在的位置: &
魔兽世界7.0宏命令大全
时间: 10:45:51
编辑:linyanhong
来源:下载吧
阅读2405次
《魔兽世界》(World of Warc...
魔兽世界7.0前夕版本更新之后玩家们对于宏命令的需求也在更新着,下面就来分享一下魔兽世界7.0宏命令大全。魔兽世界7.0宏命令大全基本宏命令远程攻击宏#showtooltip/targetenemy [noharm][dead]/cast [@mouseover,harm,nodead][harm][@targettarget]技能名这是一个远程攻击宏,它的施法优先顺序是:鼠标指向敌方》目标是敌方》目标的目标是敌方,其中(/targetenemy [noharm][dead])这个语句是目标死亡更换目标宏,可以提取出来放入其他宏里面使用。顺序施法宏#showtooltip/castsequence reset=combat 技能名,技能名这是一个顺序施法宏,其中(combat—战斗中)是宏重置条件,可以替换为(冷却时间—1234)(目标—target)(快捷键—mod:shift/ctrl/alt),如果添加更多技能,则在后面直接添加,技能名爆发宏#showtooltip/cast 技能名/USE 11/USE 12/USE 13/USE 14这是一个爆发宏,爆发技能基本上都是两三分钟或者五分钟的技能,和直接伤害类技能没有共CD,/USE 11 /USE 12是使用戒指,/USE 13 /USE 14 是使用饰品,如果爆发技能多的话,直接/cast 技能名下面重复添加。双方技能宏#showtooltip/cast [@mouseover,exists][]技能名这是双方技能宏,基本上最适合盗贼的暗影步和牧师点了天赋的苦修两个技能,对敌方和友方都可以施放。绑定的技能宏#showtooltip/cast [nomod]天堂之羽/cast [mod:shift,@mouseover]信仰飞跃/cast [mod:shift,help]信仰飞跃/cast [mod:shift,@targettarget]信仰飞跃这个是我个人喜欢绑定的技能,单点是天堂之羽,加shift是信仰飞跃,不管是鼠标指向还是敌方的目标是友方都可以拽过来。判断目标施法宏#showtooltip/stopcasting/cast [@mouseover,harm,nodead][harm]驱散魔法;[@mouseover,help][help][@player]净化疾病这个是判断目标施法宏,基本上只适合驱散类技能。友方目标施法宏#showtooltip/cast [@mouseover,help][help][@targettarget,help][]技能名这个是友方目标施法宏,优先鼠标指向》直接目标》敌方的目标是友方》自己,适合加血类和友方驱散技能。防止打断宏#showtooltip技能名/cast [nochanneling]技能名这个是防止打断宏,基本上只适合猎人和武僧,因为弹幕射击和怒雷破运行中点其他技能的时候会被打断。恶魔猎手技能宏命令恶魔猎手出了了,大家一定喜欢飞,各种飞。下面是我个人用的一个宏,和大家分享一下。/dismount [mounted]/cast [mod]禁锢;!滑翔说明:如果你在坐骑上,就解散坐骑,开始滑翔,没有上坐骑就直接滑翔,多次点击不会取消滑翔状态,妈妈再也不用担心宝宝会摔跤拉,如果组合ALT,CRTL,SHIFT键就施法禁锢,禁锢可以根据你的喜好替换。我相信很多朋友喜欢直接骑着坐骑跳崖飞把,这个最适合你了。第二版根据网友提的意见优化了一下,不再加入其他技能,整合进了坐骑按键。请用下面的宏直接替换随机坐骑按键#showtooltip 随机召唤偏好的坐骑/run if not IsAddOnLoaded(&Blizzard_Collections&) then LoadAddOn(&Blizzard_Collections&) end/dismount [mounted]/cast !滑翔/click [nocombat] MountJournalSummonRandomFavoriteButton/script UIErrorsFrame:Hide()说明:非战斗状态且人物静止不动,则随机召唤坐骑;如果人物离地,无论是否进战斗状态都会滑翔。战士宏命令请戳:/infoview/Article_98327.html猎人战场宏命令推荐猫鼬宏:没有BB 召唤第一个BB,同时BB攻击和自动砍#showtooltip 猫鼬撕咬/cast [nopet]召唤宠物1;/cast 猫鼬撕咬/startattack/petattack鱼叉宏:近身同时蜘蛛BB 放减速#showtooltip/cast 鱼叉猛刺/cast 蛛网喷射(特殊技能)/startattack/petattack焦点打断宏:焦点鱼叉同时焦点蜘蛛网打断#show 鱼叉猛刺/cast [target=focus] 鱼叉猛刺/cast [target=focus, exists] 压制; 压制;/cast [target=focus] 蛛网喷射(特殊技能)侧翼打击宏:#showtooltip 侧翼打击/cast [nopet] 召唤宠物 1;/cast 侧翼打击/startattack/petattack龙岩手雷宏:#showtooltip/cast 龙焰手雷/cast 蛛网喷射(特殊技能)/startattack/petattack鼠标指向网网网宏:#showtooltip 游侠之网/cast [target=mouseover,nomodifier,exists] 游侠之网;游侠之网龟壳保命宏:/stopcasting/cast 灵龟守护/cast [target= 你的名字 ]灵魂治愈/USE 协同战旗/use 治疗石兽王凶暴野兽宏:#showtooltip 凶暴野兽/cast 凶暴野兽/startattack/petattack红人乌鸦宏:#showtooltips 狂野怒火/施放野性守护/castsequence reset=61 [nochanneling:弹幕射击] 狂野怒火,夺命黑鸦/petattack/cast 急奔开启隐藏属性宏命令代码(一)这些代码无毒无副作用,等价于把暴雪关闭的开关给打开了。最下面有个栗子,代码有点长,属于我目前用的显示属性:使用类似这样的宏:/run table.insert(PAPERDOLL_STATCATEGORIES[1].stats,{ stat =&ATTACK_DAMAGE&})宏介绍:中间的数字1,表示显示在&属性&栏位置可以改成2显示到&强化属性&位置ATTACK_DAMAGE表示会增加一行伤害数值的显示(就是XXX-XXX),可以用下面任何来替换:(不要中括号)[&HEALTH&] 生命值[&POWER&] 能量值[&ALTERNATEMANA&] ??[&ITEMLEVEL&] 物品等级[&MOVESPEED&] 移动速度 (需要额外代码,不然无效,并且异常)[&STRENGTH&] 力量[&AGILITY&] 敏捷[&INTELLECT&] 智力[&STAMINA&] 耐力[&CRITCHANCE&] 暴击[&HASTE&]急速[&MASTERY&]精通[&VERSATILITY &] 全能[&LIFESTEAL&] 吸血(副属性)[&***OIDANCE&] 闪避(副属性)[&ATTACK_DAMAGE&] 攻击伤害[&ATTACK_AP&] 攻击强度[&ATTACK_ATTACKSPEED&] 攻击速度[&ENERGY_REGEN&] 能量回复[&RUNE_REGEN&] 符文回复[&FOCUS_REGEN&] ???什么东西[&SPELLPOWER&]施法速度[&MANAREGEN&] 法力回复[&ARMOR&] 护甲[&DODGE&] 躲闪[&PARRY&] 招架[&BLOCK&] 格挡上面这些属性中.敏捷智力力量,默认是根据你的专精来显示其中某几个.如果你需要全显示不需要增加,可以使用这样的代码:(分别力量敏捷智力,效果是无论什么专精情况都显示这些属性)而目前归类到,强化属性中的暴击急速精通之类的。是在你该属性不为0的情况下才会显示,所以一般不需要用上面的代码。而防御属性会根据你当前专精来显示。法力回复也是治疗者才会显示(非治疗者已经没有蓝了)总的来说被完全隐藏(?删除)的有这些:移动速度,攻击速度,攻击强度,伤害,能量回复/符文回复,副属性上面少了有一个SPEED的属性(加速),这属性好像没用了.因为显示之后,并不会根据装备改动,这个属性被暴雪删了??开启隐藏属性宏命令代码(二)关于隐藏你不想要的属性下面这段代码,是目前游戏本身的属性显示设定.如果你其中某一个不想显示.最简单的是复制这整个段代码,然后直接修改其中的内容。注意的是 ,需要必须1~n不能间断如果使用这些,关于移动速度的修改代码,必须放到这个修改后面或者说是PAPERDOLL_STATCATEGORIES[1].xxx=xxx 之类的代码 必须放到这段代码之后able.insert(xxx,xxx)之类的代码放到最后第一个数字[1]和数字[2]就表示显示在属性,还是强化属性的位置stat=xxx就是你要显示的属性这后面的代码表示一些功能primary = LE_UNIT_STAT_STRENGTH判断专精的主属性类别(力量专精才显示这一列)roles = { &HEALER& ,&DAMAGER&}roles表示职责,里面写的是Tank/HEALER/DAMAGER(职责为治疗或者输出,才显示这一列)hideAt=0表示如果这个属性值等于0,那么隐藏他如果删掉后面的代码,就是常驻显示,如果删掉这一列,就是不显示(序号必须1~n不能缺少.)Codec:PAPERDOLL_STATCATEGORIES= {[1] = {categoryFrame =&AttributesCategory&,stats = {[1] = { stat =&STRENGTH&, primary = LE_UNIT_STAT_STRENGTH },[2] = { stat =&AGILITY&, primary = LE_UNIT_STAT_AGILITY },[3] = { stat =&INTELLECT&, primary = LE_UNIT_STAT_INTELLECT },[4] = { stat =&STAMINA&},[5] = { stat =&ARMOR&},[6] = { stat =&MANAREGEN&,},},},[2] = {categoryFrame =&EnhancementsCategory&,stats = {[1] = { stat =&CRITCHANCE&, hideAt = 0 },[2] = { stat =&HASTE&, hideAt = 0 },[3] = { stat =&MASTERY&, hideAt = 0 },[4] = { stat =&VERSATILITY&, hideAt = 0 },[5] = { stat =&LIFESTEAL&, hideAt = 0 },[6] = { stat =&***OIDANCE&, hideAt = 0 },[7] = { stat =&DODGE&, roles ={&TANK&} },[8] = { stat =&PARRY&, hideAt = 0, roles ={&TANK&} },[9] = { stat =&BLOCK&, hideAt = 0, roles ={&TANK&} },},},};下面是我修改的一个范例:适用于物理dps的,显示了伤害攻速能量恢复和移动速度Codec:doPAPERDOLL_STATCATEGORIES= {[1] = {categoryFrame =&AttributesCategory&,stats = {[1] = { stat =&ATTACK_DAMAGE&},[2] = { stat =&STRENGTH&, primary = LE_UNIT_STAT_STRENGTH },[3] = { stat =&AGILITY&, primary = LE_UNIT_STAT_AGILITY },[4] = { stat =&INTELLECT&, primary = LE_UNIT_STAT_INTELLECT },[5] = { stat =&STAMINA&},[6] = { stat =&ARMOR&},[7] = { stat =&ENERGY_REGEN&, hideAt = 0 },[8] = { stat =&RUNE_REGEN&, hideAt = 0 },[9] = { stat =&FOCUS_REGEN&, hideAt = 0 },[10] = { stat =&MANAREGEN&, roles ={&HEALER&} },},},[2] = {categoryFrame =&EnhancementsCategory&,stats = {[1] = { stat =&CRITCHANCE&, hideAt = 0 },[2] = { stat =&HASTE&, hideAt = 0 },[3] = { stat =&MASTERY&, hideAt = 0 },[4] = { stat =&VERSATILITY&, hideAt = 0 },[5] = { stat =&LIFESTEAL&, hideAt = 0 },[6] = { stat =&***OIDANCE&, hideAt = 0 },[7] = { stat =&DODGE&, roles ={&TANK&} },[8] = { stat =&PARRY&, hideAt = 0, roles ={&TANK&} },[9] = { stat =&BLOCK&, hideAt = 0, roles ={&TANK&} },},},};---修改,若能量值获取不到.就设置为0,就能套用hideAt了PAPERDOLL_STATINFO[&ENERGY_REGEN&].updateFunc = function(statFrame, unit) statFrame.numericValue=0; PaperDollFrame_SetEnergyRegen(statFrame, unit); endPAPERDOLL_STATINFO[&RUNE_REGEN&].updateFunc = function(statFrame, unit) statFrame.numericValue=0; PaperDollFrame_SetRuneRegen(statFrame, unit); endPAPERDOLL_STATINFO[&FOCUS_REGEN&].updateFunc = function(statFrame, unit) statFrame.numericValue=0; PaperDollFrame_SetFocusRegen(statFrame, unit); end--增加移动速度的代码(被暴雪删掉了)PAPERDOLL_STATINFO[&MOVESPEED&].updateFunc =function(statFrame, unit) PaperDollFrame_SetMovementSpeed(statFrame, unit); end--根据职业,做一些改动local _,_,classid = UnitClass(&player&)if(classid==1)then --战士elseif (classid==2)then --圣骑elseif (classid==3)then --猎人elseif (classid==4)then --盗贼elseif (classid==5)then --牧师PAPERDOLL_STATCATEGORIES[1].stats[1].roles={} --隐藏伤害elseif (classid==6)then --DKelseif (classid==7)then --萨满elseif (classid==8)then --法师,加上回蓝显示PAPERDOLL_STATCATEGORIES[1].stats[1].roles={}table.insert(PAPERDOLL_STATCATEGORIES[1].stats,{ stat =&MANAREGEN&})elseif (classid==9)then --术士PAPERDOLL_STATCATEGORIES[1].stats[1].roles={} --隐藏伤害elseif (classid==10)then --武僧elseif (classid==11)then --德鲁伊elseif (classid==12)then --DHend--加上移动速度(加最后)table.insert(PAPERDOLL_STATCATEGORIES[1].stats,{ stat =&MOVESPEED&})--关于移动速度代码(不然会出现错乱)local tempstatFramehooksecurefunc(&PaperDollFrame_SetMovementSpeed&,function(statFrame, unit)if(tempstatFrame and tempstatFrame~=statFrame)thentempstatFrame:SetScript(&OnUpdate&,nil);endstatFrame:SetScript(&OnUpdate&, MovementSpeed_OnUpdate);tempstatFrame = statFstatFrame:Show();end)end挂机宏命令代码野外 挂机宏:/script T,F=T or 0,F or CreateFrame(&frame&)if X then X=nil else X=function()local t=GetTime()if t-T&1 then StaticPopup1Button1:Click()T=t end end end F:SetScript (&OnUpdate&,X)注意:是在野外,在野外,在野外(重要的事情讲3遍)。(编注:可以高高的飞在天上,或者原地被砍死躺那里。)主城旅店等因为是秒下线,所以不可行。开启宏:现在要挂机的小伙伴,可以在野外点击一下这个宏,然后ESC-返回角色选择界面,会提示插件导致行为失效或者一闪而过,可以安心挂机啦。取消宏:要取消宏的就再点击一下宏就取消了。PS:给大家科普下,自动奔跑、自动攻击进战斗的,并不会防止暂离掉线,大神亲测,在要塞自动攻击木桩,一样会返回角色选择界面然后掉线,不相信的同学可以测试下。还有小伙伴老扯要电费,台式机电脑多少功率大约300W,待机的功耗更小,大概3-4小时一度电,一度电6毛多点。一键切换天赋专精与装备宏命令前言由于版本的变更,暴雪爸爸更新,更改了很多api。旧版一键换专精+装备宏惨遭毒手。/equipset [button:1] 敏锐;[button:2] 刺杀/usetalents [button:1] 1;[button:2]2然而api的变更并不能阻止懒人的步伐,所以阿愁退而求其次,用一些土方法来实现这个目的。下面是偏向DH制作的,如果你是其他职业,那就真的抱歉了。步骤1分别编写数个宏(视乎你专精数量DH2个 XD 4个)。我将它们叫做工作组。如下:宏1#show/equipset 浩劫/run SetSpecialization(1)宏说明:切换装备管理里名为“浩劫”的装备方案 ,切换第一套专精宏2#show/equipset 复仇/run SetSpecialization(2)宏说明:切换装备管理里名为“复仇”的装备方案 ,切换第二套专精宏3,4(DH无需)#show/equipset 专精3/run SetSpecialization(3)宏说明:切换装备管理里名为“专精3”装备方案 ,切换第三套专精宏中的浩劫,复仇,专精3,专精4 分别对应你装备管理里面套装的名字 如图:步骤2将工作组按序放进平时用不到的动作条空白按钮上。这里需要注意的就是切换专精后 动作条也会变更,所以需要每一个专精都要安放在相同的位置。好吧~我承认这方法是挺蠢的原始版:BT4版:步骤3分别获取工作组所在动作条按钮的名称:(以下工作组名称只是示例,根据工作组安放的位置不同 名称也会不同)这里需要借助另外一个宏/run local f=GetMouseFocus(); if f then DEFAULT_CHAT_FRAME:AddMessage(f:GetName()) end宏说明:返回当前鼠标所指的窗口名称用法:分别将鼠标指向工作组(就是前面做的宏)所在的位置,然后点上面给的宏用来获取工作组所在的精确位置。原始版:BT4版本:分别获得原始版窗口名称:MultiBarRightButton9,MultiBarRightButton10,MultiBarRightButton11 分别对应专精1,专精2,专精3BT4版本窗口名称:BT4Button99,BT4Button100, BT4Button101 分别对应专精1,专精2,专精3。这里获得的窗口名称并不是都一样的 根据你放的位置不同 获得的名称也不同,只需一一对应你所需要切换的专精即可。这里获得的窗口名称并不是都一样的 根据你放的位置不同 获得的名称也不同,只需一一对应你所需要切换的专精即可。这里获得的窗口名称并不是都一样的 根据你放的位置不同 获得的名称也不同,只需一一对应你所需要切换的专精即可。重要的事情说三遍。步骤4最后,也是最关键的东西来了,切换专精宏:BT4版本:/click [button:1] BT4Button99; [button:2] BT4Button100; [button:3] BT4Button101原始版/click [button:1] MultiBarRightButton9; [button:2] MultiBarRightButton10; [button:3] MultiBarRightButton11宏说明:用鼠标左键点击时 执行动作摁下按键BT4Button99/MultiBarRightButton9(对应专精1);用鼠标右键点击时 执行动作摁下按键BT4Button100/MultiBarRightButton10(对应专精2);用鼠标中键点击时 执行动作摁下按钮BT4Button101/MultiBarRightButton11(对应专精3)。以此来达到判断切换不同的专精结语以上,这个帖子的主要内容就讲完了,下面是一些个性化装那啥用法在工作组添加延时喊话。#show/em 正在切换复仇天赋。。。/in 2 /em 3。。。/in 3 /em 2。。。/in 4 /em 1。。。/in 5 /em 切换成功/equipset [button:1] 复仇/run SetSpecialization(1)
分享给朋友:
魔兽世界7.0宏命令大全相关软件
魔兽世界7.0宏命令大全相关攻略
魔兽世界7.0宏命令大全相关新闻
热门关键字西西软件园多重安全检测下载网站、值得信赖的软件下载站!
→ 魔兽世界宏命令大全2012
4.1.0.14250 官方版
类型:游戏其他大小:31.2M语言:中文 评分:5.4
第 2 页 什么是命令条件语?二、& && &命令条件语1.& && & 什么是命令条件语?命令条件语是插入在宏命令中,使宏根据条件执行不同功能的语句。举个例子,下面这个宏的作用是,如果是友方目标就施放恢复,如果是敌方目标就上痛:/cast [help] 恢复;[harm] 暗言术:痛当这个宏执行时,首先检查[help]条件,判断当前目标是否是一个可以接受治疗/增益法术的目标。如果[help]条件成立,那么就施放恢复并执行下一条命令,否则(即没有目标,或目标不接受有益技能)继续执行下一个子句,也就是分号后[harm]那里,再判断[harm]条件。[harm]条件和[help]条件相反,判断目标是否接受敌对法术。同上,如果条件成立就释放“暗言术:痛”并执行下一条命令。如果条件不成立,由于后面没有其他子句,这条宏命令就算执行完了,但是什么动作都没有做。注:如果没有写[harm]条件,实际运行效果是差不多的。不过,如果你没有目标或者当前目标不接受任何法术,那么屏幕上将会出现错误信息,或者对于某些技能,鼠标将会变成选择施放目标的状态。2.& && & 可以使用条件语的命令只有那些“安全化”命令可以接受命令条件语。其实正是经过安全化的命令才需要条件语。常规命令,比如说聊天、表情之类的,可以通过脚本来实现命令条件语的功能。而且暴雪不想限制大家在聊天时使用分号(;)。如果/s命令可以使用命令条件语的话,那么下面这个命令就会只说hello:/say H I’m a n00b以下是当前客户端中安全化命令的列表:#show1#showtooltip1/assist/cancelaura/cancelform/cast/castrandom/castswquence/changeactionbar/clearfocus/cleartarget/click/dismount/equip2/equipslot2/focus/petagressive/petattack/petautocastoff/petautocaston/petdefensive/petfollow/petpassive/petstay/startattack/stopattack/stopcasting/stopmacro/swapactionbar/target/targetenemy/targetfriend/targetlasttarget/targetparty/targetraid/use/userandom注1:#show和#showtooltip不是真正意义上的安全化命令,但是它和/use以及/cast的内部机制相仿。注2:/equip和/equipslot逻辑上也不算是安全化命令,因为它们的功能是可以通过插件和脚本实现的。当然,如果你希望在常规命令中使用命令条件语,就需要***专门的插件。MacroTalk,这是我的一个作品,通过在非安全化命令前添加/opt,然后在/opt中处理各类条件来实现对不同命令的调用(当然只能是非安全化命令)。最新版的SuperMacro中应该也有类似的功能。3.& && & [target=]条件语该条件语使得宏命令除了可以对条件进行判断外,还可以设置动作的目标。例如,下面这个宏运行时,无论当前目标是谁,玩家只会给自己绑绷带:/use [target=player] 厚灵纹绷带Target条件语在指定动作目标的同时,也指定了进行条件判断的目标。下面这个垃圾宏是一个纯教学例子,看我的说明:/cast [help] [target=targettarget, help][target=player] 快速治疗这个宏运行的时候,首先会检查[help]条件。如果条件为真,那么就开始吟唱快速治疗。否则就跳至第二个条件,[target=targettarget,help]。此时,判断目标和技能目标都被设定为你当前目标的目标,然后进行help条件判断。如果条件成立就对你当前目标的目标施放快速治疗,否则再跳至第三个条件。而第三个条件总是成立的,所做的只是把你自己当作施法目标。4.& && & 语法命令条件语是按什么规则生效的?恐怕要回答这个问题很容易引起混乱。所以,趁还没有正式开始讲,我先用一些现实生活的例子做类比。看不懂不要紧,这只是些概念,技术性的内容后面都还会再提到的。i.条件语语法简介所有的宏命令的基本工作方式是相同的:一个命令,后面带上一个或多个参数(取决于命令的要求,有些甚至不需要任何参数)。看下面这些例子:/cast 猛击\___/ \___/|& & ||&&参数&&|命令/petattack\_______/&&\/& &|& && &|& &|& &参数(为空)& & |&&命令/castsequence reset=target 献祭,腐蚀术, 痛苦诅咒,生命虹吸\_________/&&\_______________________________________/& &&&|& && && && && && && && &|& & 命令& && && && && && &&&参数而命令条件语可以通过对一组条件进行的判断来选择命令的实际参数。首先,可以用分号分隔出若干个“若干组条件+参数”这样的子句,逻辑上,分号就相当于高级语言中的else或是elseif。条件的组数不定,也可以没有,同一组条件用一个方括号括在一起。而每组条件中有可以包含多个条件。就像这样:/命令[一组条件] [另一组条件]参数1; [又一组条件]参数2; ……前面的例子已经说明了,宏命令的解释过程是从左至右的。当一组条件被判定成立时,命令就会采用其对应的条件。如果某一个子句中不包含条件,那么就被无条件判定为成立。像/castXXX这种简单的宏命令就可以理解为一个只有一个子句的宏,而这个子句又不包含条件。而如果一个宏的任何一组条件都不为真,那么它就完全不会执行。ii.条件语法每组条件都是由逗号分隔的一些条件语组成的,各条件不分前后次序。逻辑上,[target=]总是先发生作用,然后其他的条件才进行判定。逗号在这里可以理解为“并且”,也就是说各条件简是逻辑“与”的关系。比如[help,nodead, target=focus]的含义就是:我的焦点是友善的,并且是只活的。注意:条件是对大小写敏感的,如果你把[help]写成了[Help],宏运行时会报错。条件中有组合式的使用方式,比如nodead,同样对于help,你可以用nohelp表示相反的条件。但是nohelp不等于harm:首先,help和harm都要求目标存在才有可能成立;其次,有些目标,比如中立阵营NPC、非战斗宠物或者护送任务NPC等,既不算help,也不算harm。还有些条件可以指定一些特定的参数。比如[stance],姿态,单独使用时表示“在任一姿态中”(显然这对战士来说是废话一句)。如果给它加上参数,就可以指定在某个姿态下,格式是在条件语后写上冒号(:),然后后面写上参数,每个参数间用斜线(/)分隔。综上所述,一个条件语的完整格式如下(&&表示其中的部分是可选的):[&no&condition&:parameter&/parameter&/parameter&…&&&&]下面举个例子,如果在战斗或防御姿态施放盾击,否则转入防御姿态:/cast [stance:1/2] 盾击;防御姿态这个宏用伪代码写的话就是:IF 当前在姿态1或姿态2THEN用盾击ELSE切换防御姿态注意:“no”前缀是对整个条件和所有参数的修饰,即把原来的真变为假,假变为真。比如[nostance:1/2]表示“不在姿态1也不在姿态2中”。iii.完整的EBNF语法对EBNF规范很熟悉的人,以上内容可以概括为:command = &/&, command-verb, [{command-object, &;& } command-object] ]command-verb = ? any secure command word ?command-object = { condition } parametersparameters = ? anything which may be passedto the command word ?condition = &[& condition-phrase{ &,& condition-phrase } &]&condition-phrase = [ &no& ],option-word, [ &:& option-argument { &/& option-argument }]option-argument = ? any one-word option,such as 'shift, 'ctrl', 'target', '1', '2' ?iv.参数为空有些命令是可以没有参数的,这里就存在着一个陷阱。比如:/petattack [target=focus, harm];很多初学者一看,认为这个宏的含义应该就是判断焦点是否为敌对,如果是,就把宠物送上去咬。而实际上呢?让我们分析一下:/petattack [target=focus, harm]&&;\________/ \______________/ V&&V&&V& &|& && && && & |& && &&&|& &|& &|&&命令& && &&&条件语1& & |& &|&&参数2(为空)& && && && && && && && &&&|& &|& && && && && && && && &&&|&&条件语2(为空)& && && && && && && && &&&|& && && && && && && &&&参数1(为空)现在看出来了吧?由于那个分号的存在,这个语句实际上包含两个子句,而一个条件语为空的子句是被当作条件成立处理的,因此即使前面的条件语1不成立,也会执行一个/petattack。v.条件为空有时我们需要在特定条件下对特定目标施放技能,并在条件不成立的情况下按常规施放。这中效果可以通过使用一组空条件来获得。下面例子中的宏在执行时会对你鼠标指向的友方单位施放圣光闪现。如果鼠标没有指向任何单位或者指向的目标不是友善的,那么就会按常规对当前目标施放,或者根据设置(如自动自我施法、自我施法功能键)对自己施放。/cast [target=mouseover, help] [ ] 圣光闪现vi.[target=]条件语与命令参数很多命令的参数是可以直接指定目标的。比如/targetparty1就可以把小队中第一个队友作为你的目标。而用/target [target=party1]的话,虽然看起来别扭,但是效果也是一样的。但是宏的设计者不希望我们根据一个单位的状态而对另一个单位执行动作,因此大多数情况下[target=]条件和命令参数只能有一个发生作用。例如:/target [target=focus, dead] party1客户端会把party1直接忽略掉——因为你已经指定了[target=focus]。不过这种情况也有例外,就是个别命令拥有一个“特殊单位”(其实也就是该命令会影响的单位标志符)。见下表:命令& && && && &&&特殊单位/target& && && & target/focus& && &focus/startattack& && & target/petattack& && && & pettarget当在[target=]中使用的是该命令的“特殊单位”时,命令执行目标不会被设置为该单位,而命令参数中指定的目标也不会被忽略。例如/focus [target=focus, dead] [target=focus,noharm] target由于focus是/focus命令的特殊单位,所以/focus的目标就不会被[target=focus]设置成焦点,而是target,即当前目标。如果没有指定target,/focus就相当于没有参数,同样是把当前目标设为焦点。5.& && &命令条件语下面给出一张条件总表,每一个条件在后面我都会再给出更详细的介绍。i.总表WOW2.0在对宏命令系统的更新中,宗旨就是把玩家从按“一键万能宏”按到手抽筋的状态中“解脱”出来。不过有一些宏的用法是被官方认可了的,它们获得了“玻璃渣祝福”的效果——可以通过使用条件语来重现。下面列出宏命令系统中支持的所有条件语。如果你需要的判断条件没有在此列出,那么就不可能通过该条件来执行安全化命令的动作。这是中央的死龟腚,谁都没办法,不过以后也有可能会再增加一些。l& && &help& && && && && && && && && && && && & 目标可以接受增益法术l& && &harm& && && && && && && && && && &目标可以受到攻击l& && &exists& && && && && && && && && && &目标存在l& && &dead& && && && && && && && && && && && &目标已经挂了l& && &stance:0/1/2../n& && && && && && &玩家在某姿态下l& && &stealth& && && && && && && && && && && &玩家在潜行状态下l& && &modifier:shift/ctrl/alt& && && && &&&某功能键被按下l& && &button:1/…/5/&虚拟按键号&& && && & 宏通过某键点击执行l& && &equipped:&装备类型&& && && && && & 玩家装备了某类型物品,参见《装备类型》l& && &channeling:&法术名称&& && && && & 玩家正在引导某法术l& && &actionbar:1/…./6& && && && && && &&&当前技能栏为某动作栏l& && &pet:&宠物名称或类型&& && && && & 玩家当前宠物为某宠物l& && &combat& && && && && && && && && && & 玩家正在战斗状态l& && &mounted& && && && && && && && && &&&玩家在骑乘状态l& && &swimming& && && && && && && && && &玩家在游泳l& && &flying& && && && && && && && && &&&玩家在飞行状态l& && &flyable& && && && && && && && && && && &玩家正处在一个允许飞行的地界l& && &indoors& && && && && && && && && && &&&玩家在室内l& && &outdoors& && && && && && && && && &&&玩家在户外l& && &party& && && && && && && && && && &目标在玩家的小队中l& && &raid& && && && && && && && && && && && &&&目标在玩家的小队或团队中l& && &group:party/raid& && && && && && && &玩家在某集体中(小队/团队)ii.敌/友(help / harm)没什么好说的,保留空地一块,等待补充。iii.存在(exists)如果目标存在条件为真。比如[exists],如果你没有目标,该条件就不成立。而对于[target=focus,exists],如果你设置了焦点目标,条件就成立。不过很多情况下该条件用不到,因为[help],[harm],[dead],[party]和[raid]条件成立的情况下,[exists]条件是必定成立的。iv.死亡(dead)如果判断对象已经挂了,条件就成立。v.姿态(stance:0/1/2/…/n)姿态是指对技能能否施放有影响的状态,比如战士的姿态,小德、萨满、暗牧的形态,盗贼的潜行状态。而骑士的光环、猎人的守护都算是姿态。单独用[stance]是指在任意一种姿态下,就相当于[stance:1/2/…/n]这样把所有姿态列出来,对战士来说就是永远成立的。而[stance:0]就相当于[nostance]表示不在任何形态下。而[stance:0/3]就表示在形态3下或者不在任何形态下。姿态的编号和面板上的顺序是对应的。下面给出各职业的姿态表:编号&&小德& && &&&战士& && &&&暗牧& && &&&盗贼& && &&&萨满1& &熊形态& & 战斗姿态& &&&暗影形态& &&&潜行& && &&&幽灵狼2& &海豹形态& &&&防御姿态3& &豹形态4& &旅行形态5& &枭兽/树形态6& &飞行形态注意:上面给出的是全表。如果少了某个姿态,其下方的形态就依次上移。我承认,我这话是针对小德说的……下面给出例子:/cancelform [nostance:0/1/3]/cast [stance:1/3] 精灵之火(野性);[nostance]精灵之火如果在熊/猫形态,施放精灵之火(野性);在人形态,施放精灵之火;在其他形态就先退出,然后施放精灵之火(WOW2.3以后可以这样,2.3之前该宏只能退出形态)。vi.潜行(stealth)对于盗贼来说由于[stance]的存在反而显得多余。这个是给暗夜、法师、猫德用的,我的意思是它可以用来判断影遁、隐形和猫的潜行。vii.功能键状态(modifier:shift/ctrl/alt)它是节省技能栏的好帮手,可以让一个宏对不同功能键做不同动作,比如:/cast [modifier, help] [modifier,target=targettarget, help] 快速治疗; [help][target=targettarget] 强效治疗术该宏会依次判断你的目标和目标的目标是否友善,条件成立的话,如果按下了某功能键,施放快速治疗,否则施放强效治疗术。当然也可以指定特定的功能键。[modifier:shift/ctrl]表示Shift或者Ctrl被按下;如果想表示两个键同时按下则可以这样实现:[modifier:shift,modifier:ctrl]。但是要注意这样一种情况,比如你的宏是通过A键执行的,然后根据Shift来做判断。但是你的Shift+A被设置了另外一个动作,那么你按下Shift+A的时候,执行的就是其对应的动作,而不是你的宏。另外,modifier可以被简写做mod以节省空间。viii.功能键变量虽然说mod指定的只能是shift、ctrl或alt,但是还可以通过一些系统变量来间接指定。比如SELFCAST这个系统变量,是指“自我施法功能键”,默认值为alt,可以通过某些插件修改,表示按下该键后执行的动作都是针对玩家自身的。下面看这个例子:/cast [modifier:SELFCAST, target=player][target=mouseover] [ ] 强效治疗术这样的话,不管你系统设置的自我施法键是什么,宏命令都会正常执行。下面给出其他的一些系统变量,括号内为默认值,后面为中文含义:l& && &AUTOLOOTTOGGLE(shift)& && && & 自动拾取键l& && &STICKYCAMERRA(ctrl)& && && & 镜头跟随l& && &SPLITSTACK(shift)& && && && &&&物品堆叠分离l& && &PICKUPACTION(shift)& && && && & 拖动技能栏按钮l& && &COMPAREITEMS(shift)& && && &&&物品比较l& && &OPENALLBAGS(shift)& && && && &&&打开所有背包l& && &QUESTWATCHTOGGLE(shift)& & 任务追踪ix.点击状态(button:1/2/…/5/&虚拟按键号&)与[modifier]类似,[botton]可以根据不同的鼠标点击按钮做不同动作。1为左键,2为右键,3为中键,4和5则对应五键鼠标上另外两个扩展键。如果是通过键盘触发宏,那么也相当于左键点击。比如我的坐骑宏:#show迅捷绿色机械陆行鸟/userandom [nobutton:2, flyable, nomounted]黑色狮鹫; [nomounted] 黑色战豹,迅捷绿色机械陆行鸟/dismount [noflying] [button:2]非右键键点击时,如果没在坐骑上就召唤坐骑;如果右键点击并且不在飞行状态则取消坐骑。而虚拟按键号一般可以忽略,有些动作条插件可以在不同条件下向宏按钮提供不同的虚拟按键号,具体情况请查看插件说明,我们在此不作讨论。x.装备(equipped:&物品类型&)[equipped]条件可以判断指定类型的物品是否被装备。物品类型号可以是装备栏名称,物品类别或者物品子类别。比如我根据盾牌装备状态判断该用盾击还是拳击:#show [equipped:Shields] 盾击;拳击/cast [equipped:Shields,stance:1/2] 盾击;[equipped:Shields] 防御姿态; [stance:3] 拳击;狂暴姿态利用[equipped]这里的#show可以根据装备显示不同的图标。下面的伪代码用来解释上面/cast命令的执行过程:if 装备了盾牌and 在防御姿态 then& &/cast 盾击else if 装备了盾牌then& &/cast 防御姿态else if 在狂暴姿态then& &/cast 拳击else /cast 狂暴姿态下面再给出一个变态的压制宏作例子:/equip [noequipped:Two-Handed Axes] 水晶熔铸战斧/cast [nostance:1] 战斗姿态;[equipped:Two-Handed Axes] 压制xi.引导中(channeling:&技能名称&)在引导法术的状态下,如果施放另外一个法术将会打断施法。这个条件语就是用来防止这一情况的。当然,它还有些其他的用途,比如只打断特定的引导技。只用[channeling]的话表示正在引导任意技能,或者后面可以指定任意个引导技能的名称表示正在引导其中一个。注意:引导和吟唱是两码事,[channeling]条件只对引导技能,如奥书飞弹、吸取生命、精神鞭笞等有用。xii.技能条(actionbar:1/…/6)系统默认的界面中有一个主技能条,可以翻页。而用这个条件就可以根据当前技能页作出不同反应。比如猎人可以拿来把守护做成姿态:/swapactionbar 1 2/cast [actionbar:1] 雄鹰守护;灵猴守护这样就可以切换1号和2号两个技能页,换到1页时施放雄鹰守护,2页时则施放灵猴守护。xiii.宠物(pet:&宠物名称或类型&)对任何有宠职业来说这个条件都很有用,它可以根据你宠物状态来执行动作,可以根据宠物名字,也可以是类型(比如Voidwalker,Boar,Imp,Wolf等),如果只用[pet]的话表示带着任意宠物。比如法师可以根据是否有水宝宝施放不同的霜星:/cast [pet] 冰冻术;冰霜新星xiv.战斗(combat)如果在战斗状态则条件成立。xv.行动方式、室内外状态(mounted, swimming, flying, indoors& outdoors)这些都无庸赘述,要说的就是它们都是对玩家自身状态的判断,而不是目标。xvi.允许飞行 (flyable)用于判断是否处在可以使用飞行坐骑的地区。xvii.小队/团队队友(party/raid)判断目标是否是自己的小队或团队中的队友。xviii.在小队/团队中(group:party/raid)注意和前面的区别。这个用于判断玩家自己是否处在小队或团队中,并且团队包括小队。这对加状态很有用,比如:/cast [group, nomodifier] 奥术光辉;[help] [target=player] 奥术智慧如果在队伍中,施放奥数光辉;如果按下功能键或者不在队伍中则施放奥术智慧。6.& && & 命令条件语的应用在第一部分中提到的很多命令,如果不配合条件语的使用,是没有什么价值的。而上述内容也只给出了一小部分的应用示例。作为本部分的压轴内容,下面两段将会把你带入一个更高的境界。i.设置焦点(focus)focus是一个单位标识符(参见《单位标识符》),就像target、player、raidpet1target一样。你可以将它设定为某一个单位,玩家或者NPC。比较简单的设置方法是通过按键设置。在按键设置中有两个选项:“焦点目标”和“目标焦点”。我不知道这是哪个脑残翻译的,其实际含义分别是“以目标为焦点”和“以焦点为目标”。当你设置了焦点以后,就可以用focus这个标识符了,也可以通过“目标焦点”绑定的按键把你设的focus作为你的当前目标。话说按键绑定也太小儿科了,下面来看看什么是职业玩家的focus用法。作为一个有控制技能的专业DPS,我们最常用的就是控场宏。我们可以预先把你的“被监护人”设为你的焦点,然后用这种宏来调教他——而此过程中并不用切换目标:/cast [target=focus] 变形术而作为一个灰常牛逼灰常娴熟的治疗,你可以把焦点设为你的主坦。另外还可以通过一些头像增强插件,比如FocusFrame来观察你焦点的状态。不过职业玩家一般不用按键绑定设置焦点,而是用/focus和/clearfocus宏命令来设置或清除焦点。/focus直接就可以达到按键绑定的效果了,而通过参数指定/focus的目标更是按键绑定所没有的功能:/focus party3target上面的只不过是教学示例,实际上职业玩家是这样用的:/focus [target=focus, noharm][target=focus, dead] [modifier]/stopmacro [target=focus, noexists]/cast [target=focus] 变形术第一行先判断以下三个条件,如果满足任意一个,就把你的当前目标设为焦点(不要忘记,focus是/focus命令的特殊单位,参见[url=file:///C:/Documents%20and%20Settings/Administrator/%E6%A1%8C%E9%9D%A2/%E6%9C%80%E7%BB%8F%E5%85%B8_%E9%AD%94%E5%85%BD%E4%B8%96%E7%95%8C%E5%AE%8F%E5%91%BD%E4%BB%A4%E5%AE%8C%E5%85%A8%E6%95%99%E7%A8%8B_%B4%E4%BF%AE%E6%AD%A3%E7%89%88.doc#_[target=]修饰语与命令参数][target=]条件语与命令参数[/url]):l& && &你的当前焦点不是敌对目标(如果焦点不存在该条件也成立)l& && &你的焦点已经死了l& && &某个功能键被按下了第二行判断你的焦点是否存在,如果不存在就终止宏的运行。这样控场是不是很方便?我们注意到这里用了/stopmacro命令,而不是在/cast命令中对焦点是否存在进行判断。这样的好处是我们可以在宏的最后加上更多的内容,比如一个小队喊话。下面这个宏也很有用,可以把你的目标和焦点互换:/cleartarget [target=target, dead]/clearfocus [target=focus, dead]/target focus/cleartarget [target=focus, noexists]/targetlasttarget/focus target/targetlasttarget前两行的作用是把死亡的目标和焦点清除掉。第四行的作用是防止你没有当前焦点,导致当前目标不变,以至于在第五行选择了你以前的一个目标。ii.用/click进行分支判定假如你想让一个按键根据不同的功能键施放不同的技能,并且根据左键右键选择不同的施放目标,那么我可以给你这样的一个例子:/cast [modifier:shift, button:1,target=party1] [modifier:shift, button:2, target=player] 强效治疗术;[modifier:ctrl, button:1, target=party1] [modifier:ctrl, button:2,target=player] 快速治疗; [nomodifier, button:1,target=party1] [nomodifier, button:2, target=player] 恢复哦……对不起,不大好看……而且貌似超过255个字符限制了。重新写一下:/cast [modifier:shift, button:1,target=party1] [modifier:shift, target=player] 强效治疗术/cast [modifier:ctrl, button:1,target=party1] [modifier:ctrl, target=player] 快速治疗/cast [button:1, target=party1][target=player] 恢复不过如果我们写一个宏根据不同按键点击分别选择两个不同的宏,而把功能键状态的判断放到这两个宏中的话,条理就会更清晰了:主宏:/click [button:1] MultiBarLeftButton2;MultiBarLeftButton3辅助宏1:/cast [mod:shift, target=party1] 强效治疗术;[mod:ctrl, target=party1] 快速治疗; [target=party1] 恢复辅助宏2:/cast [mod:shift, target=player] 强效治疗术;[mod:ctrl, target=palyer] 快速治疗; [target=player] 恢复
第2页: 什么是命令条件语?
06-0802-1902-1011-1110-2110-2111-1011-0711-0611-05
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载

参考资料

 

随机推荐