AttrEffect = class("AttrEffect") -- AttrEffect=1 魔法傷害免疫 1 << 0 -- AttrEffect=2 物理傷害免疫 1 << 1 -- AttrEffect=3 血量無法恢復 1 << 2 -- AttrEffect=4 魔法無法恢復 1 << 3 -- AttrEffect=5 吟唱不會中斷 1 << 4 -- AttrEffect=6 無視種族傷害 1 << 5 -- AttrEffect=7 無視體型傷害 1 << 6 -- AttrEffect=8 無視屬性傷害 1 << 7 -- AttrEffect=9 無視近戰普攻傷害 1 << 8 -- AttrEffect=10 必定命中且暴擊 1 << 9 -- AttrEffect=17 隱匿狀態 1 << 16 -- AttrEffect=20 無敵狀態 1 << 19 -- AttrEffect=27 致盲狀態 1 << 26 function AttrEffect:ctor() self:Set(0) end function AttrEffect:Set(num) self.behaviour = num end function AttrEffect:Get(flag) return BitUtil.bandOneZero(self.behaviour,flag) end --魔法傷害免疫 function AttrEffect:MagicDamageInvincible() return self:Get(0) >0 end --物理傷害免疫 function AttrEffect:PhysicDamageInvincible() return self:Get(1) >0 end --血量無法恢復 function AttrEffect:HpDisableRecover() return self:Get(2) >0 end --魔法無法恢復 function AttrEffect:MpDisableRecover() return self:Get(3) >0 end --吟唱不會中斷 function AttrEffect:SingDisableInterrupt() return self:Get(4) >0 end --無視種族傷害 function AttrEffect:IgnoreRaceDamage() return self:Get(5) >0 end --無視體型傷害 function AttrEffect:IgnoreShapeDamage() return self:Get(6) >0 end --無視屬性傷害 function AttrEffect:IgnoreAttrDamage() return self:Get(7) >0 end --無視近戰普攻傷害 function AttrEffect:IgnoreJinzhanDamage() return self:Get(8) >0 end --必定命中且暴擊 function AttrEffect:DefiniteHitAndCritical() return self:Get(9) >0 end --無敵狀態 function AttrEffect:InvincibleState() return self:Get(19) >0 end --致盲狀態 function AttrEffect:BlindnessState() return self:Get(26) >0 end AttrEffectB = class("AttrEffectB") -- AttrEffectB=2 下個區域型技能範圍擴大至x 1 << 1 -- AttrEffectB=8 下一次讀條類技能順發 1 << 7 -- AttrEffectB=16 無法被敵方作為技能目標 1 << 14 -- AttrEffectB=20 處於魔導機械變身狀態 1 << 19 function AttrEffectB:ctor() self:Reset() end function AttrEffectB:Reset() self.value = 0 end function AttrEffectB:Set(value) self.value = value end function AttrEffectB:NextPointTargetSkillLargeLaunchRange() return self.value & 2 > 0 end function AttrEffectB:NextSkillNoReady() return self.value & 128 > 0 end function AttrEffectB:CanNotBeSkillTargetByEnemy() return self.value & 32768 > 0 end function AttrEffectB:IsInMagicMachine() return BitUtil.bandOneZero(self.value,19) > 0 end