LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 7142|回复: 18

[综合] 关于宏的基础(新人向)

[复制链接]
发表于 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的技能(比如无敌,盾墙之类)如果我位置排错了,那么我多按一下就可以了,当然这也是可以的,但程序员多少都有点强迫症,至少在写代码上,这个强迫症也是被动养成的。
回复

使用道具 举报

发表于 2014-9-22 23:20:32 | 显示全部楼层
学习了学习了学习了
回复 支持 反对

使用道具 举报

发表于 2014-9-22 21:40:12 | 显示全部楼层
学习了学习了学习了
回复 支持 反对

使用道具 举报

发表于 2014-3-9 23:52:52 | 显示全部楼层
已经拜读,非常感谢!
回复 支持 反对

使用道具 举报

发表于 2013-12-13 09:55:55 | 显示全部楼层
不错。科普向文章。
回复 支持 反对

使用道具 举报

发表于 2013-12-13 12:02:52 | 显示全部楼层
大家学习学习
回复 支持 反对

使用道具 举报

发表于 2013-12-13 13:11:11 | 显示全部楼层
希望新手们注意一下吧
回复 支持 反对

使用道具 举报

发表于 2013-12-13 19:16:50 | 显示全部楼层
学习受教
回复 支持 反对

使用道具 举报

发表于 2014-3-5 18:46:47 | 显示全部楼层
好东西啊!谢谢大神!
回复 支持 反对

使用道具 举报

发表于 2014-3-7 09:21:00 | 显示全部楼层
加油 ~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2024-4-26 04:10 PM , Processed in 0.059773 second(s), 34 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表