若你写过乌龟服宏,那你是否注意到FindBuff()、buffed()只能识别到16位BUFF。
一直以来,我都认为这是因为乌龟服本身扩展了玩家BUFF位置到32位,而宏指令没有扩展的原因导致的。
因此,在我自己写宏时,参考的是B站猫德一键宏作者,摸遍高压线使用的GetTime()的思路。这个思路与猫的猛虎之怒非常契合,但是对于奶德识别回春与愈合BUFF,效果就不尽如人意了。
后来,我在偶然的测试中发现,使用原生的UnitBuff()可以识别到超过16位的BUFF,但是它只返回BUFF的图标,但是它只返回BUFF的图标,无法进行进一步的使用。既然原生的宏指令可以做到这一点,那么为什么SuperMarco的FindBuff()和buffed()却不行呢?
为了解决这个问题,我去查看了SuperMarco插件的源码,发现FindBuff指令中的循环只执行到16位!超过16位的部分,它就不再继续了!毕竟这是一个很久以前的插件,当时是为了原始版本的游戏设计的,而不是为乌龟服定制的。竟然如此,我们自己定制一下,改成识别32位BUFF,操作非常简单。



步骤四:记事本格式打开SM_Slash.lua


尽管修改幅度极小,它对写宏代码的作者们而言却意义重大。期望大家再也不会为BUFF判断而烦恼。
转载请注明出处