Code:
on [color:red]@[/color]*:TEXT:*:#: {  
  if ($nick !isop #) {    
    var %i = 0    
    while (%i < $numtok(%swear.words,32)) {      
      inc %i     
      var %current.word = $gettok(%swear.words,%i,32) {        
        if ($istok($strip($1-),%current.word,32) == $true) {
          set -u3600 %rl. [ $+ [ $address($nick,2) ] ] $calc( %rl. [ $+ [ $address($nick,2) ] ] + 1)
          if (%rl. [ $+ [ $address($nick,2) ] ] == 1) { 
            notice $nick Please don't! - this is your first warning! 
          }
          if (%rl. [ $+ [ $address($nick,2) ] ] == 2) { 
            notice $nick Please don't! - this is your second warning next time you will be banned! 
          }        
          if (%rl. [ $+ [ $address($nick,2) ] ] >= 3)  { 
            ban -k $chan $nick 2
          }  
        }  
      }  
    }  
  }  
}


You could not see the warns because of the " . " prefix before the command. From the help file under Command Prefixes

If you want to force a command to perform quietly ie. without printing out any information, then you can prefix it with a "." fullstop.

Edit: Added @ prefix.