Regarding your first command, you're going to have to clarify what you mean by "it calls all the users in the channel"

Aside from that, both of your requests are simple ON TEXT events, and there are many ways of doing this. I'll give you how I would do it.
Code:
on *:text:*:#:  call_notice $1-
on *:action:*:#:  call_notice $1-
on *:notice:*:#:  call_notice $1-
alias -l call_notice {
  tokenize 32 $strip($1-)
  if ($1 == .call) {
    if !$2 {      .notice $nick Usage: .call <text>    }
    else {      .describe 4 $$2-    }
  }
  elseif $1 == .notice {
    if !$2 && $($+(%,notice,$network,$chan),2) {      .notice $nick $v2    }
    elseif ($2 == set) {
      if ($nick isop $chan) {
        if $$3- {          set $+(%,notice,$network,$chan) $$3-        }
        else .notice $nick Usage: .notice set <notice>
      }
      else .notice $nick Sorry, but you have to be an Op on $chan to use this
    }
  }
}

I have included a few extra things in here, but most of what is in the code is easily found in the mIRC help file. The exceptions are the usage of $+(%,notice,$network,$chan) and $($+(%,notice,$network,$chan),2)

The first of these sets a variable which, in this case, is network and channel specific. The second returns the value of that variable. The fact that these are network and channel specific means that it can be used on multiple channels and/or networks simultaneously and the settings/messages are kept separate from that of another channel and/or network.