lk47354813
发表于 2023-6-25 11:43:20
你把player和ID位置搞错了吧
vshrd
发表于 2023-6-25 12:47:23
看看学学 发表于 2023-6-24 11:54 AM
那魔蜂函数有没有用ID判断的函数?
方法太多了
官方函数的话
遍历自身buff信息
通过返回值对比id 这是自己做实现过程
魔封的话不知道。太久没用已经忘光了
不过你可以自己做一个spellname转spellid的函数
通过string去解构链接即可得到技能ID。
反之也可以通过id得到name。
这样不管他的参数需要啥你就填啥就行了
当然既然都做到这一步了
那findbuff这个过程一般也是自己做实现了
wxmlovewjx
发表于 2023-6-25 18:01:23
学习学习学习学习学习学习学习学习学习学习1
看看学学
发表于 2023-6-26 12:29:40
lk47354813 发表于 2023-6-25 11:43 AM
你把player和ID位置搞错了吧
没有,我调换一下也不行,不知道咋弄了
看看学学
发表于 2023-6-26 12:31:48
vshrd 发表于 2023-6-25 12:47 PM
方法太多了
官方函数的话
遍历自身buff信息
好的,大佬!我再研究研究,感谢耐心解答
xueying
发表于 2023-9-19 19:22:55
unitbuff后面的那个数字索引指的是你身上的第几个buff,并非buffid
看看学学
发表于 2023-9-19 21:34:53
xueying 发表于 2023-9-19 07:22 PM
unitbuff后面的那个数字索引指的是你身上的第几个buff,并非buffid
额,是这样啊?那这函数没法用啊,buff顺序不是固定的吧
贾维斯117
发表于 2023-9-19 22:51:59
一般的技能同名实际上是加上颜色代码的,你可以试试用/run print(GetSpellInfo(25898)),魔蜂BeeUnitBuffList默认没有返回spellid,但实际是可以返回的,具体看源码里面BeeUnitBuffList的代码,复制换个名,把里面name = c改为name = spellid即可
看看学学
发表于 2023-9-19 23:55:29
贾维斯117 发表于 2023-9-19 10:51 PM
一般的技能同名实际上是加上颜色代码的,你可以试试用/run print(GetSpellInfo(25898)),魔蜂BeeUnitBuffL ...
好的好的,有点懂了!谢谢大佬,抽空试试:lol
懒动行不行
发表于 2023-9-21 09:31:11
本帖最后由 懒动行不行 于 2023-9-21 03:58 PM 编辑
UnitBuff实际上是UnitAura的变形,你看下Woepedia对于这个函数的表述:
name, icon, count, dispelType, duration, expirationTime, source, isStealable, nameplateShowPersonal,
spellId, canApplyAura, isBossDebuff, castByPlayer, nameplateShowAll, timeMod, ...
= UnitAura(unit, index [, filter])
= UnitBuff(unit, index [, filter])
= UnitDebuff(unit, index [, filter])
显然:
1、这个函数第一个值会返回Buff的名称,所以用if not UnitBuff来判断Buff是否存在是可以的
2、注意UnitBuff里面的参数unit和index,并没有提供buff name或者buff ID的参数
所以官方这个函数用起来并不是简单的在UnitBuff中输入buff名称或者ID就能使用,实际应该这样使用
for i=1,40 do
if UnitBuff("payer",i)=="xxx"--注意,XXX是Buff的名称,而非ID
then
do sth
break
end
end
上面是通过for do遍历玩家身上的所有buff槽以发现是否有指定的buff,而不是我们想象中的通过指定buff的名称或者ID来直接判断有无
但是WBE通过对官方函数的重新封装,提供更加便于使用或者符合我们初步认知的方法,比如指定BUFF名称或者ID来判断,但是归根结底,他只是对官方函数的二次加工,说到底还是通过官方的API来达到目的的