乌龟服宏突破16位BUFF识别的办法
剥饺子
2024年04月28日 18:10
魔兽世界乌龟服

若你写过乌龟服宏,那你是否注意到FindBuff()、buffed()只能识别到16位BUFF

 一直以来,我都认为这是因为乌龟服本身扩展了玩家BUFF位置到32位,而宏指令没有扩展的原因导致的。

 因此,在我自己写宏时,参考的是B站猫德一键宏作者,摸遍高压线使用的GetTime()的思路。这个思路与猫的猛虎之怒非常契合,但是对于奶德识别回春与愈合BUFF,效果就不尽如人意了。

 后来,我在偶然的测试中发现,使用原生的UnitBuff()可以识别到超过16位的BUFF,但是它只返回BUFF的图标,但是它只返回BUFF的图标,无法进行进一步的使用。既然原生的宏指令可以做到这一点,那么为什么SuperMarco的FindBuff()和buffed()却不行呢?

 为了解决这个问题,我去查看了SuperMarco插件的源码,发现FindBuff指令中的循环只执行到16位!超过16位的部分,它就不再继续了!毕竟这是一个很久以前的插件,当时是为了原始版本的游戏设计的,而不是为乌龟服定制的。竟然如此,我们自己定制一下改成识别32位BUFF,操作非常简单。

 步骤一:右击游戏图标,再点击属性,点击打开文件所在的位置

步骤二:进入Interface文件夹,再进入Addon插件文件夹

步骤三:进入SuperMarco文件夹

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

步骤五:全局搜索“1, 16”,替换成“1, 32”,请注意输入法与空格,共有2处

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

 

转载请注明出处