Logically you need && instead of || because you want to trigger if user is not op AND is not voice.
You are also using braces to seperate the two commands determining the logical result instead of parenthesis. Braces generally hinder variable, command and backslash substitution.
I'm not entirely sure what putchan means. Perhaps you mean one of the Eggdrop Tcl output commands putserv or putquick.
The argument 'args' has special meaning, do not use it in this context.
Generally I would use return 0 or even simply return at the conclusion of a proc, though there are special circumstances where you may want to deliberately return 1. Refer to 'return values' in tcl-commands.doc. In any case you don't need two such statements as per your code.
Code: Select all
proc procname {nick uhost hand chan text} {
if {(![isvoice $nick $chan]) && (![isop $nick $chan])} {
putserv "PRIVMSG $chan :$nick, blah blah blah"
}
return 0
}