假若你写过乌龟服的宏,那你是否注意到FindBuff()、buffed()只能识别到16位BUFF。
一直以来,我都认为这是因为乌龟服本身扩展了玩家BUFF位置到32位,而宏指令没有扩展的原因导致的。
因此,在我自己写宏时,参考的是B站猫德一键宏作者,摸遍高压线使用的GetTime()的思路。这个思路与猫的猛虎之怒非常契合,但是对于奶德识别回春与愈合BUFF,效果就不尽如人意了。
后来,我在偶然的测试中发现,使用原生的UnitBuff()可以识别到超过16位的BUFF,但是它只返回BUFF的图标,但是它只返回BUFF的图标,无法进行进一步的使用。既然原生的宏指令可以做到这一点,那么为什么SuperMacro的FindBuff()和buffed()却不行呢?
为了解决这个问题,我去查看了SuperMacro插件的源码,发现FindBuff指令中的循环只执行到16位!超过16位的部分,它就不再继续了!毕竟这是一个很久以前的插件,当时是为了原始版本的游戏设计的,而不是为乌龟服定制的。竟然如此,我们自己定制一下,改成识别32位BUFF,操作非常简单。
步骤一:右击游戏图标,再点击属性,点击打开文件所在的位置
![图片](https://s21.ax1x.com/2024/04/28/pki2DeJ.jpg)
步骤二:进入Interface文件夹,再进入Addon插件文件夹
![图片](https://s21.ax1x.com/2024/04/28/pki2oTA.jpg)
步骤三:进入SuperMacro文件夹
![图片](https://s21.ax1x.com/2024/04/28/pki2soR.jpg)
步骤四:记事本格式打开SM_Slash.lua
![图片](https://s21.ax1x.com/2024/04/28/pki20L4.jpg)
步骤五:全局搜索“1, 16”,替换成“1, 32”,请注意输入法与空格,共有2处
![图片](https://s21.ax1x.com/2024/04/28/pki2rw9.jpg)
尽管修改幅度极小,它对写宏代码的作者们而言却意义重大。期望大家再也不会为BUFF判断而烦恼。
转载请注明出处