Why make the fuss over who gives to whom? This sort of code is very, very common.
shaneny, your current snippet won't work because you didn't leave a space between the word "on" and the asterisk symbol "*"
A code like this gets abused easily, because people could flood you by entering the trigger repeatedly.
This is what I would do if I were you:
on *:text:$($strip(!say *)):#: {
if (!%f) { inc -u5 %f | msg # $iif($nick isop #,$2-,Access Denied!) }
}