LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 149|回复: 3

[wowbee] 碰到个奇怪问题!!!!

[复制链接]
发表于 2024-3-6 15:55:05 | 显示全部楼层 |阅读模式
下面这段代码,团队里其他成员生命值要是比我高的话,就不生效。要是生命值比我低,就生效。很奇怪,为什么啊?

if GetNumRaidMembers()>0
then grouptype="raid"
else grouptype="party"
end

local RaidDX = BeeGroupMinScript('BeeRange(unit)<=40 and UnitCanAssist("player",unit) and not UnitIsDeadOrGhost(unit)',"BeeUnitHealth(unit)",grouptype)

if BeeRange(RaidDX)<=40 and BeeUnitBuff("坚韧祷言",RaidDX,2,1)<30
then
    BeeRun("坚韧祷言")
    return
end

回复

使用道具 举报

 楼主| 发表于 2024-3-6 18:57:11 | 显示全部楼层
有知道原因的吗?~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2024-3-6 21:38:03 | 显示全部楼层
BeeGroupMinScript返回的应该是满足条件的最后一个人
也就是说如果这个人身上没有耐力的BUFF,肯定会加的,和你血无关
但是你设定的条件是血量最少,这个血量最少可能是动态变化的,不一定落到没有耐力BUFF的人身上
回复 支持 反对

使用道具 举报

发表于 2024-3-7 00:42:25 | 显示全部楼层
这个问题的关键点在于对BeeUnitHealth()这个函数的理解。
原型是BeeUnitHealth(unit,p,q)
如果p,q均无参数的话,那么BeeUnitHealth(unit)返回的是UnitHealth(unit),当前剩余生命值。然后以一个变量的身份传入BeeGroupMinScript()的第二个参数,也就是说它返回的是团队中“当前剩余生命值”最小的那个单位。
讲道理,你这个从大体上来说,感觉没啥问题。只是后面的BeeRun("坚韧祷言")加上个unit会更为贴切一些,也就是BeeRun("坚韧祷言",RaidDX)


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2024-5-11 01:20 AM , Processed in 0.059327 second(s), 21 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表