山坡上的流氓 发表于 2023-7-6 17:20:04

问个治疗打断的问题

想写一个目标血量高于多少的时候就打断正在的读条


local SGS= BeeGroupMinScript('BeeRange(unit)<=40 and BeeIsRun("圣光术",unit) and BeeUnitBuffTime("圣光道标",unit)<=0 and BeeUnitHealth(unit,nil,1)<1000 and UnitHealthMax(unit)<40000 and UnitCanAssist("player",unit) and not UnitIsDeadOrGhost(unit)',"BeeUnitHealth(unit)",grouptype)
if SGS and BeeUnitCastSpellName("player")=="圣光术"
then
    BeeRun("/stopcasting")
    return;
end


这种好像没有反应 问题出在哪里呢
-----解决了

山坡上的流氓 发表于 2023-7-6 18:11:37

好像不太行
是能打断 但是无脑一直打断 具体该怎么去判断

hushuai 发表于 2023-7-7 09:25:05

你的逻辑不清楚。
首先没看清楚变量local SGS 是个啥?
分析认为你是需要一个复杂的判断吧!一般这么写:
local function uHealth()
       if BeeUnitHealth("pet", "%") <= 80 then --自己添加条件
      return true;
    end
end其目的是满足某些条件后返回true,
其次是中断施法的问题。
第一,百思不得其解,满足不了条件,就不会释放“圣光术”,也不存在打断的问题。
第二,对象有“恢复”、“回春”这些buff的时候,你可以再加一个判断!
ifBeeUnitCastSpellName("player")=="圣光术" then
   if UnitBuff("pet", "恢复") then
      if uHealth() then
       释放
      end
   end
.......

shangxin95 发表于 2023-7-7 09:39:33

if SGS and BeeUnitCastSpellName("player")=="圣光术"
then
    BeeRun("/stopcasting")
    return;
end
上面这句是只要识别的到没道标的人血量 满足SGS的条件后 只要你释放圣光术 就打断,这个条件太广,很容易满足,,所以就会无脑打断

懒动行不行 发表于 2023-7-7 09:46:23

把BeeUnitHealth(unit,nil,1)<1000改成>20000试试?

山坡上的流氓 发表于 2023-7-7 10:52:50

懒动行不行 发表于 2023-7-7 09:46 AM
把BeeUnitHealth(unit,nil,1)20000试试?

这个是目标血量损失多少我就是想判断一个血量满了打断

山坡上的流氓 发表于 2023-7-7 11:03:39

hushuai 发表于 2023-7-7 09:25 AM
你的逻辑不清楚。
首先没看清楚变量local SGS 是个啥?
分析认为你是需要一个复杂的判断吧!一般这么写: ...

这个是判断目标血量和距离目标损失血量低于1000就执行打断   这套原本是治疗的只是修改了损失量和执行的

山坡上的流氓 发表于 2023-7-7 11:05:52

shangxin95 发表于 2023-7-7 09:39 AM
if SGS and BeeUnitCastSpellName("player")=="圣光术"
then
    BeeRun("/stopcasting")


对现在问题就在这里怎么细化呢

shangxin95 发表于 2023-7-7 12:31:22

山坡上的流氓 发表于 2023-7-7 11:05 AM
对现在问题就在这里怎么细化呢

我也在测试 成功了发给你

山坡上的流氓 发表于 2023-7-7 13:23:17

shangxin95 发表于 2023-7-7 12:31 PM
我也在测试 成功了发给你

好的,我也在琢磨下这个
页: [1] 2
查看完整版本: 问个治疗打断的问题