1、
/script local i,a,_;for i=1,GetNumShapeshiftForms() do _,_,a=GetShapeshiftFormInfo(i);if a then CastShapeshiftForm(i);break;end;end;
/script CastSpellByName ("愈合")
这个是任何状态变人并且释放愈合
--------------------------------------------------------------------------------
2、
/script x=1;found=0;while(UnitDebuff("target",x)) do if(string.find(UnitDebuff ("target",x),"Spell_Nature_FaerieFire"))then found=1;end;x=x+1;end;
/script if(found==1)then CastSpellByName("扫击");else CastSpellByName("精灵之火(野性)")end
对方没精灵之火就上火,有精灵之火就扫击
--------------------------------------------------------------------------------
3、
/script if (UnitMana("player")<10) and (GetActionCooldown(38)==0) then CastSpellByName("精灵之火(野性)");end
/script if (UnitMana("player")>10) then CastSpellByName("槌击");end
如果怒气少于10就用精灵之火,大于10就槌击..这里有个数字38,是要你把精灵之火放在右边动作条-2,就是右边两个动作条的左边那一个的第二格(听说精灵之火可以增加仇恨..当然..只是听说)
--------------------------------------------------------------------------------
4、
/script C=CastSpellByName;
/script x=1;found=0;while(UnitBuff("player",x)) do if(string.find(UnitBuff ("player",x),"Ambush"))then found=1;end;x=x+1;end;
/script if (found==1) then C("毁灭");elseif (GetActionCooldown(39)==0) then C("畏缩");else C("撕碎");end
这个是最经典的..刚好252个字符..修改重组的时候生怕字符超过255个..这个是潜行状态就用毁灭,毁灭不能用就看畏缩是否可以用,都不能用就用撕碎,副本输出利器~
自从wow被发现有宏命令以来,“我对XXX使用了恢复术,将在y秒后治疗xxx-xxxHP”这样的宏已经烂遍了大街,成为raid之中众人深痛恶之的垃圾信息供应商。这一类简单的宏除了令人厌恶的持久重复之外并没有带来太多的可能性,以至于不管是忧伤的暗影箭,还是气势磅礴的烈焰冲击,都只能在令人窒息的安静中进行。
是时候改变这一切了,稍微复杂些的宏编写,将让我们拥有全新的空间展示角色个性,同时又可以避免重复为队友带来困扰。现在就开始,拥有自己的台词,结束在wow跑龙套的生涯。
————例1 不会打扰队友的随机发言————
*所有【】符号框起来的都是注释内容,勿写入宏里面。
【1】 /script ayj1="夜幕之下,没有怜悯的影子";ayj2="谁又能逃得掉,那股暗淡的哀伤";suiji=random(10)
【2】 /script if suiji==1 then SendChatMessage(ayj1) else if suiji==2 then SendChatMessage(ayj2)else end;end
【3】 /施放 暗影箭(等级 9)
这是一个在网上可以找到的例子。关于第【1】行,我们要理解【=】等号的含义。编程中的等号与“等于”这个概念完全不相干,你可以理解【=】是一个装罐机,【ayj1=”夜幕之下,没有怜悯的影子”】就是把后面一段引号之间的内容,装进了一个标签为ayj1的罐头里(如你所想,ayj1正是暗影箭1的缩写),这个罐头我们将在稍后使用。中间的三个【;】属于必要格式,用来分隔三个相对独立的语句。
同时我们使用了一个random命令,【suiji=random(10)】就意味着我们让系统产生一个1~10之间的随机数,并把这个数装进标为【suiji】的罐头里。
第【2】行,【If XXX then YYY else ZZZ】的句式,是用来判断XXX是否成立,如果成立则执行YYY动作,如果不成立则执行ZZZ动作。这个【==】是连续两个等号,代表真正的“等于”的意义。
【if suiji==1 then SendChatMessage(ayj1)】翻译成中文就是,让系统察看suiji这个罐头里面的东西是不是“等于1”,如果是,就SendChatMessage——让人物说出——ayj1这个罐头里面的内容。SendChatMessage命令请注意严格按此大小写拼写。
当然,由于suiji罐头里面有可能装1~10之间的任何一个数,所以suiji很可能不会==1,于是执行下一步【else if suiji==2 then SendChatMessage(ayj2)else end;end】,这里再次判断suiji是否“等于2”,如果等于2,人物将说出ayj2里面的内容。如果不“等于2”就结束这个语句。
至于最后的end,必须和if配对出现,就像括号的左边和右边一样锁定中间的内容,说来话长,只需稍微试验几次就可以理解。
至于最后的【3】行,记得同时打开宏编辑窗口和技能书,让光标停留在编辑宏状态,再按住shift点击技能书上的技能图标,系统会自动帮你写上这一行。
这个三行的宏工作原理就是这样的:每运行一次,将把一个新的随机数装进suiji罐头,如果那个随机数是3~10,就没什么特别的事情,只是发出一个暗影箭,如果随机数恰好等于1,则人物会说出一句话,等于2说出另外一句话。
把这个宏拉进技能栏,代替以前的暗影箭吧。一团团暗影箭在放出,人物在大部分时间里会保持安静,只是偶尔——各10%的情况下,会说出“夜幕之下,没有怜悯的影子”,或者“谁又能逃得掉,那股暗淡的哀伤”这样的句子来。
想象一下在决斗中,当你以一发夜幕状态的瞬发暗影箭,或是气定神闲之后的炎爆决定胜负,再幽幽地给补上这么一句,全场是否会为之安静片刻呢?
在raid中,你还可以调整第【1】行中【suiji=random(10)】那个数字10到30、40,这将更适合长时间大型raid环境。
例1只是一个简单应用,用来让大家理解这一系列宏会用到的主要命令,实际上一旦你开始写自己的语录,你就会遇到这样几个问题:
1、经试验发现,一个语句中的汉字太多,也会固定造成出错,这对创造力来说是无法容忍的限制。
2、宏栏设定了256个字符的上限,换算成中文不过128个字还含标点,当你准备的发言字数稍微一多,加上语句编写的必要字符,就非常不够用了,让创作激情大打折扣。
3、你可能会希望给一个技能准备2句以上的发言,当你准备的发言超过3句之后,例1中的第【2】行将变得非常晦涩绵长,而且要把能够运行的4句发言宏扩充到5句更是几乎不可能写正确。
我们将得到一个没有边界的创作空间,你可以为一个技能准备20句发言,只要你能够写得够精彩。或者你不满足于随机数的不确定性,希望精确地每隔若干次技能说一句话,或者按照一定顺序说出你准备的发言等等都可以实现。并且我们将看到在发言中引入对方ID、职业,让发言更具表现力的方法。
请用今天的例子小试牛刀,再积蓄起你的创造力,从下一周开始,每个人将因为那些台词而无法忘记你!
上面我们接触了台词宏的初步知识以及关键的编写思路。同时面临了三个问题,1、单句允许含有的汉字太少;2、每个宏允许的字符数太少;3、需要找到更简洁的编写方法。
本期我们将首先解决字数限制问题。曾经有一些方法可以扩展宏字数,但1.7版之后似已不可用了。目前仅有某些大型插件可以提供超级长的宏,可惜不是每个人都愿意为了吹吹风在家里装台涡轮风扇发动机配八叶对转螺旋桨。
实际上经多次试验我们发现,宏世界的罐头们保鲜能力是很强的。只要不退出wow,罐头里的内容将永远保存在内存里供随时调用。因此对字数限制,就有了这样的解决方法,以作者实际使用的宏为例:
————例2 解决字数限制与引入ID————
【新建第一个宏命名为 储存】
【1】 /script zh1="大阿图因宙半人马阿尔法星系中枢位面TS32行星泰坦世界风狼座投影面坐标3467,2853 ID=%t 目标锁定完毕 召唤系统预热开始…";
【2】 /script zh2="跨行星传送系统标定目标ID=%t erro31!目标性别无法判定… 切换至人妖类通道适配器 预计927毫秒后准备就绪…";
【3】 /script zh3="跨行星传送系统标定目标ID=%t erro45!目标智力水平未达到行星团联合会教科文组织要求标准… 无法传送…请智力超标单位协助…正在盗取客户端参数修改权限…"
【新建第二个宏命名为 召唤】
【1】 /script z=random(3)
【2】 /script if z==1 then SendChatMessage(zh1) end
【3】 /script if z==2 then SendChatMessage(zh2) end
【4】 /script if z==3 then SendChatMessage(zh3, ”party”) end
【5】 /施放 召唤仪式
显然用例1的方法我们无法做出这么多字数的台词,但现在我们制作了两个宏,一个专门用来储存发言内容,一个是执行语句,于是台词字数得到了无限扩展——虽然每一个限制了256字符,但只要需要,你可以写若干个储存宏。
每次出家旅行杀人越货之前,登录wow之后,只需要把所有的储存宏执行一次,就可以完美保障你全天的台词需求:D
例2的【储存】宏每一行都出现了一个【%t】,这个标识在任何情况下,都会被替代成为你选中目标的ID。
比起例1,例2【召唤】宏显得更加简单明快并且很容易扩展,对五、六句台词的随机判断都可以很容易地写出来。得益于【储存】宏已经将三句话分别装在了zh1、zh2、zh3三个罐头。【召唤】宏只需要将z牌罐头装进1~3的随机数,再加上简单的判断,我们准备好的3段台词就会分别出现。
假设你选定了一位叫做李渔村的玩家,而正好Z随机到了“2”——人物将会说出的台词就是【跨行星传送系统标定目标ID=李渔村 erro31!目标性别无法判定… 切换至人妖类通道适配器 预计927毫秒后准备就绪…】
另外,【召唤】宏第【4】行与其他行有所不同,多出来的【,”party”】意味着这段话将对小队说出,【,”raid”】向全团,【,”guild”】自然是工会。你可以试着在所有SendChatMessage命令后面都加上这个参数看看效果。
————例3 如何引入职业————
【新建宏 储存2】
【1】 /script ayj1="夜幕之下,没有怜悯的影子";
【2】 /script ayj2="谁又能逃得掉,那股暗淡的哀伤";
【3】 /script ayj3="我放出一团流星雨落在你的头上,你会看见,前途黑茫茫";
【4】 /script cr1="失去与得到,那是宇宙的规则。";cr2="比死亡更恐怖的……是缠绕";cr3="要知道你的处境!";
【5】 / script jsqA=0;jsqB=0
【新建宏 缠绕】
【1】 /script ZY=UnitClass("target");z=random(3)
【2】 /script if z==1 then SendChatMessage(cr1) end
【3】 /script if z==2 then SendChatMessage(cr2) end
【4】 /script if z==3 then SendChatMessage(cr3..ZY) end
/施放 死亡缠绕(等级 3)
【储存2】里面的【1、2、3】行列和【4】行,展示了两种效果完全相同的储存方式,只是【4】行更节省字数一些。【5】行暂时放在那里,我们将在例4例5用到。
关键在【缠绕】宏的【1】行,【ZY=UnitClass("target")】我们先用一个UnitClass命令,求得职业名称。求得谁的职业名称呢?是【("target")】——你正选定的目标。求得的这个名称将成为字符,被装进标为【ZY】的罐头里面。
然后是【缠绕】宏的第【4】行,注意【SendChatMessage(cr3..ZY)】就巧妙在中间的那两个英文句号,其意义是让人物先说出【cr3】罐头的内容,然后紧接着——关键就是紧接着,没有换行、没有空格——说出【ZY】罐头里面的字符。
于是当你选定一个盗贼,发出死亡缠绕——或者你愿意的任何一个技能——的瞬间,人物会说出“要知道你的处境!盗贼”这样惊人的语句来。如果你像黑夜一样长期混迹于BWL,你就会知道这是奥巴桑的台词,如果你像作者一样抵制大型副本,你就会觉得这句台词特别有见义勇为的气魄……
再次提醒,Raid期间务必将【z=random(3)】的3改到20以上以免打扰队友。
然后,还记得我们提到过的法师的唠叨吗?
————例4按照顺序发言以及适度沉默————
【1】 /script if jsqA==10 then jsqA=1 else jsqA=jsqA+1 end;
【2】 /script if jsqA==1 then SendChatMessage(zmb1) end;if jsqA==2 then SendChatMessage(zmb2) end;if jsqA==3 then SendChatMessage(zmb3) end
【3】 /施放 造食术
首先我们已经在【储存2】里面让jsqA(也就是计数器A)存了一个数字0在里面。所以前几次运行的时候,实际上执行了 【jsqA=jsqA+1】,这个语句意味着先把【jsqA】罐头的数字取出,加上1,再存回【jsqA】。
就像图书馆的图书,每次回到图书馆都会增加一笔借阅记录一样,第【1】行每运行一次,【jsqA】都会累加1依次成为【2、3、4……】。直到它成为10的那一次,【if jsqA==10 then jsqA=1】就会发挥作用,让它再次变回1,实现了【jsqA】在1~10之间依序循环,而不像先前例子那样出随机数。
第【2】行就好理解了,实际上只是把例2、例3中分行写的语句用英文分号分开,代替分行而已。可以用来节省宝贵的字数。
例4的运行结果是,头3次做面包,会连续说出3句话,然后沉默7次,周而复始。你可以调整【if jsqA==10 then jsqA=1】当中的10改变沉默与说话的频率。如果设定为3就会每次都发言了。
当然别忘了在储存宏里面定义【zmb1、2、3】的内容,可以参考这样:zmb1=”我真傻,真的,我单知道玩家没有食吃,会找法师要;我却不知道会有那么多”;zmb2=”我一大早起来出了门只见玩家满地都是,唯独没有法师了。大家都说,完了,怕是改弱了”;zmb3=”现在看果然是改弱了,%t,可怜我还在这里做面包呢……”
——如此反复,你能想象在旁边等你做面包的人是什么表情吗?
最后是一个综合了我们这两期宏知识的完美例子。
—例5 随机并顺序着——
【1】 /script sj=random(10);if jsqB==3 then jsqB=1 else if sj==1 then jsqB=jsqB+1 end;end
【2】 /script if jsqB==1 and sj==1 then SendChatMessage(ayj1) end;if jsqB==2 and sj==1 then SendChatMessage(ayj2) end;if jsqB==3 and sj==1 then SendChatMessage(ayj3) end
【3】 /施放 暗影箭
其中【2】行的【if AAA and BBB then CCC】意味着AAA与BBB要同时成立,才会执行CCC——任中一个不成立都不执行CCC。
因此这里实现了用1~10的随机数【sj】来控制所有语句,【if sj==1 then jsqB=jsqB+1】决定了 【jsqB】只有10%的概率累加。【if jsqB==3 and sj==1 then SendChatMessage(ayj3)】决定了人物只有10%的概率说话。因此不但由随机数决定是否发言,而且能保证每次发言按照一定的顺序不重复地进行。
最后的最后,这么费力编写出来的宏可千万别丢了,记得时常备份才是。
“通用宏”保存在:
World of WarcraftWTFAccount你的帐号 macros-cache.txt
“某角色专用宏”保存在:
World of WarcraftWTFAccount你的帐号你的服务器某角色ID macros-cache.txt
一些注意事项:
1、把宏的图标拖到动作栏上即可使用,最好在按键设置里设置快捷键。
2、储存功能的宏必须先于执行功能的宏运行,否则尽管执行宏编些毫无错误,系统也会毫不犹豫地报错。出错之后首先检查运行顺序和两种宏当中罐头名称的一致。
3、务必确保所有命令的大小写正确,以及在语句中使用英文标点。中文标点会被看作中文字处理,只能在引号之间作为字符内容使用。
4、CWOW只支持中文法术名称。系统不会对错误的法术名称报错,只是不执行。Shift+鼠标点击技能标签,将自动输入正确的施法语句。自1.7版本之后,不提供技能等级系统将自动施放最高等级的技能。
5、每一段【/】之后的语句应当写在同一行中,注意不要有多余的回车。有时候太长的语句会被自动换行,上一行露出一段空白,那只是显示问题。最好在txt文件中编辑完成后粘贴入wow调试。
6、一个宏执行多个动作几近邪道,1.10版之后似乎便不可行。
——————附送一些异常简单又异常实用的宏——
/施放 真言术 盾
/script TargetUnit("player")
选定友方目标则给目标盾,选定敌方或不选定目标则给自己盾,因为不需手动切换,在决斗中非常有用。
/script UseContainerItem(1,1)
/script TargetUnit("player")
这是根据同样原理,给友方或自己绷带,需要将绷带放在1号包1号位置,请试验之。
/script TargetUnit("player");CastPetAction(4);TargetLastEnemy();
术士地狱犬不必改变目标就可以对自己吞噬魔法的宏。
/script UseInventoryItem(17)
使用副手装备栏物品的宏,其意义在于通过宏可以对副手物品的使用动作设置快捷键。把17改为13、14即为两个饰品栏物品。
————————————————————
希望可以帮到你
温馨提示:内容为网友见解,仅供参考
求教WOW猎人宏的使用问题!
我的建议是,只使用一个抽筋宏就可以了,也就是稳固自动射击的宏,后面的大可不必用,你提示说技能没准备好可能是宏错误或者是网络问题,还有你注意一下,你使用宏的时候,他提示没有准备好,但是你是不是在放技能,如果人没动,那就是宏错误,人在放技能,这个属于正常!你一直按,但是你宏内的技...
WOW宏的问题(急急急)
打开宏设置界面,先选一个图标,在下面编辑栏里输入:\/施放 (空格加你要施放的法术名称或链接)\/Y (空格加你要喊的话)
wow中的宏问题
\/cast [nomod] 凶猛撕咬(猎豹形态)\/cast [modifier:alt] 割碎(猎豹形态)把宏换成这个 我说一种常见情况 比如你Q alt+Q都设置过快捷键(如果没设置,也有可能是系统默认的快捷键),然后你把宏放在了Q上,那如果你不去掉alt+Q这个快捷键,这个宏永远都不会运行第二行。其他宏问题可...
WOW,魔兽世界宏问题,特来求教
\/cast [mod:shift,target=focus,help]净化灵魂;[mod:shift,target=focus,harm]净化术;[help]净化灵魂;[harm]净化术 我对你有一点问题,你焦点施法键设置的是SHIFT,那我的宏里在用shift按键就有一点多次一举了,可以试着把焦点按键改了试试看!
WOW 战士宏问题 求达人解决
给你吧。。\/equipslot 16 主手武器名称 \/equipslot 17 副手武器名称 这个宏就是你切换回 战斗 狂暴后 用的 你之所以没有换上 是因为你没有把主手和副手位置写近宏 这个16代表的是主手 17是副手 这么做就可以了 \/cast 战斗姿态 \/equipslot 16 风暴使者 \/equipslot 17 托儿贝恩 \/cast 狂暴...
WOW 宏的问题
\/Target 这是一个自动选择目标的命令,你可以在宏里输入\/Target (xxx),那么当你按下这个宏时,你将自动选定这个叫xxx的目标。宏命令在战斗中的用途:对WOW有所了解的人都知道,在WOW中的组队战斗中非常讲究配合。其中,战士要充当一个肉盾角色,牢牢的吸引住怪物,法师盗贼等进攻型角色则要在尽量...
关于WOW中宏的问题
2.0的新宏\/castsequence是顺序施放,你的情况就可以写成 \/castsequence 风之优雅图腾,法力图腾 注意间隔是英文的","号 想继续放其他图腾的话就是 \/castsequence 风之优雅图腾,法力图腾,XX图腾,XX图腾 按完一遍后会自动循环,但是很多情况下不会按这么准确的循环,可以限制一个时间 \/castsequence reset=10 ...
WOW猎人宏问题
宏1 showtooltip \/startattack \/castsequence [modifier:alt]稳固射击;reset=8\/combat 宁神射击,稳固射击 宏2 showtooltip \/startattack \/castsequence [modifier:alt]摔绊;reset=8\/combat 反击,摔绊 下面教你下这个宏命令是什么意思,你以后就可以自己编写类似的宏了。showtooltip \/\/宏技能图标显示,如果...
WOW战士宏问题!跪求高人指教办法!
需要做3个宏 showtooltip 防御姿态 \/cast 防御姿态 \/equip18 盾名字 \/equip17 单手武器名字 showtooltip 战斗姿态 \/cast 战斗姿态 \/equip18 副手双武名字 \/equip17 主手双武名字 showtooltip 狂暴姿态 \/cast 狂暴姿态 \/equip18 副手双武名字 \/equip17 主手双武名字 换完武器会有1秒的公共CD 另外2把...
魔兽世界宏指令的问题?
宏Macro 相信很多人都知道WOW中的斜杠"\/"和表情命令.宏可以将这些命令按照自己对条件的设置串联起来,比如:\/Kneel是让你跪下来的动作而\/say就是最基础的对话动作 我们现在用一个宏把他们串起来: 第一行内容:“\/Kneel” 第二行内容:“\/say 如果你不嫁给我,那么我就一辈子不起来…”” 这样你的人物就会先下跪...