【申精】乌龟服宏突破16位BUFF识别的办法

回复
剥饺子
帖子: 10
被感谢: 2 次
联系:

【申精】乌龟服宏突破16位BUFF识别的办法

帖子 剥饺子 »

首发于B站:https://www.bilibili.com/read/cv34168561/

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

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

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

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

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

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

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

步骤三:进入SuperMacro文件夹
图片

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

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

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

转载请注明出处
上次由 剥饺子 在 周二 4月 30, 2024 4:53 pm,总共编辑 1 次。
头像
每日观察封号乐子人
帖子: 34
已感谢: 1 次
被感谢: 3 次
联系:

Re: 【申精】乌龟服宏突破16位BUFF识别的办法

帖子 每日观察封号乐子人 »

点赞,点赞!
头像
JSure
帖子: 31

Re: 【申精】乌龟服宏突破16位BUFF识别的办法

帖子 JSure »

牛哇zsbd
霍格【旅店老板】休闲养老摆烂公会招人啦!
viewtopic.php?t=494
532846075
帖子: 8
已感谢: 1 次
联系:

Re: 【申精】乌龟服宏突破16位BUFF识别的办法

帖子 532846075 »

第三部文件名写错了。是SuperMacro
冲啊!!为了部落~啊呸!为了联盟!!
剥饺子
帖子: 10
被感谢: 2 次
联系:

Re: 【申精】乌龟服宏突破16位BUFF识别的办法

帖子 剥饺子 »

532846075 写了: 周二 4月 30, 2024 4:40 pm 第三部文件名写错了。是SuperMacro
感谢,已改正
回复