if I use all I write above code can look like:
```
def ValidNodeID
  return true if Cluster.memberaddr.empty?

  ids = []
  Cluster.memberaddr.each do |value|
    id = value[:nodeid].to_i
    if id <= 0
      Popup.Error(_("Node ID '%s' has to be fulfilled with a positive integer") % value[:nodeid])
      UI.ChangeWidget(:memberaddr, :CurrentItem, ids.size)
      return false
    end
  
    if ids.include?(id)
      Popup.Message(_("Node ID '%i' must be unique") % id)
      UI.ChangeWidget(:memberaddr, :CurrentItem, ids.size)
      return false
    end
    ids << id
  end
  true
end
```