Formula

CommonFun.ModifyDamageBySpecialNpc

function CommonFun.ModifyDamageBySpecialNpc(srcUser, damage, npcid, params)
  if 0 < damage and CommonFun.SpecialNpcCheck[npcid] ~= nil then
    local data = CommonFun.SpecialNpcCheck[npcid]
    local college = 0.01
    local skillok = false
    local skillID, skillLevel = CommonFun.UnmergeSkillID(params.skillIDAndLevel)
    if data.skill ~= nil and 0 < #data.skill then
      for _, v in pairs(data.skill) do
        if skillID == v then
          skillok = true
          break
        end
      end
    end
    local buffok = true
    if skillok and data.buff ~= nil and 0 < #data.buff then
      buffok = false
      for _, v in pairs(data.buff) do
        if srcUser:HasBuffID(v) then
          buffok = true
          break
        end
      end
    end
    if skillok and buffok then
      college = 1
    end
    return math.floor(damage * college)
  end
  return damage
end