diff --git a/src/adv/AdvPassive.lua b/src/adv/AdvPassive.lua index e821556..2e4df95 100644 --- a/src/adv/AdvPassive.lua +++ b/src/adv/AdvPassive.lua @@ -304,7 +304,8 @@ function Passive:canEffect(effType, effValue) end --禁用被动技 local count = self.owner:getDisablePassiveCount() - if count and (count == 0 or self.owner:getPassiveIdx(self) <= count) then + local idx = self.owner:getPassiveIdx(self) + if count and idx and (count == 0 or idx <= count) then return end return true diff --git a/src/adv/AdvPlayer.lua b/src/adv/AdvPlayer.lua index af31ae2..7fed721 100644 --- a/src/adv/AdvPlayer.lua +++ b/src/adv/AdvPlayer.lua @@ -115,10 +115,13 @@ end function BaseObject:getPassiveIdx(passive) for idx, passive_ in ipairs(self.passives) do if passive_ == passive then - return idx + if passive.passiveData.dispel ~= 1 then + return idx + end + return end end - return 999 + return end function BaseObject:getDisablePassiveCount() -- libgit2 0.21.2