店长的面包 发表于 2013-12-13 03:40:53

关于宏的基础(新人向)

这是基础中的基础,我觉得比较聪明的玩家绝对是知道,虽然可能不知道原理。
(其实是偶然一位打WOW的基友自己写了个宏,但怎么都没办法用,所以问我之后才发现这个问题的,可以说是某些人不太注意的一个问题吧~)

宏是用LUA语言编写的(没学过LUA,总觉得怎么样写都可以)【吐槽:到现在还不知道AM可否自己定义函数,能用的API函数总共有多少个,顺便求一个判断DK的符能函数名和战士的怒气函数名,跪谢】

首先我们知道魔兽世界的技能分为有公共CD和没有公共CD的,那么为了让你能丧心病狂的一次性放出很多技能,又只需要按一个键,就产生了宏这种东西。我们可以把没有公共CD的N个技能加上一个有公共CD的技能写到一起,用宏来实现,简单的就是一个爆发宏。
例如:
#show... (这一行我没写完,其实就是显示一个选定技能的图标,没什么意义,所以可以省去,节约字节)
/cast 冰冷血脉
/use 爆发药水
/use 13                  //1号SP的位置为13,2号为14
/cast 寒冰箭

LUA中,同样遵循语言的严谨性,也就是说代码是一排一排跑下来的, 上面那个宏最初会执行第一排/cast 冰冷血脉,然后依次往下面执行,但是前3行的行为都不会触发公共CD,只有寒冰箭最后一行会触发,所以写宏的时候需要注意下自己的技能排位,只要是不触发公共CD的技能或者是物品,前面写100个都没问题,触发公共CD的一定要写在最后一个。
例如:
/cast 冰冷血脉
/cast 寒冰箭
/use 爆发药水
/use 13            
如果宏写成了这样,那么首先会施放冰脉,然后是寒冰箭(当然这几乎是同时进行的),到了寒冰箭这里就会自动停下,因为读条是一个单独的动作,而不会再触发后面的两个“/use”了,之后不管你怎么按这个宏,那么药水和SP都不会触发。

可能也许会有人吐槽,个别拥有CD的技能(比如无敌,盾墙之类)如果我位置排错了,那么我多按一下就可以了,当然这也是可以的,但程序员多少都有点强迫症,至少在写代码上,这个强迫症也是被动养成的。

allenrazor 发表于 2014-9-22 23:20:32

学习了学习了学习了

隔壁老张 发表于 2014-9-22 21:40:12

学习了学习了学习了

阿咪仔 发表于 2014-3-9 23:52:52

已经拜读,非常感谢!

anyoer* 发表于 2013-12-13 09:55:55

不错。科普向文章。

毛了来了 发表于 2013-12-13 12:02:52

大家学习学习

蔡骏 发表于 2013-12-13 13:11:11

希望新手们注意一下吧

★﹏BoX℡ 发表于 2013-12-13 19:16:50

学习受教:)

蓝风一阵 发表于 2014-3-5 18:46:47

好东西啊!谢谢大神!

sunnyou 发表于 2014-3-7 09:21:00

加油 ~:loveliness::loveliness::loveliness:
页: [1] 2
查看完整版本: 关于宏的基础(新人向)