Hey Thermal just a couple of things I spotted:

[*]You had the $ prefix meaning the matchtext section of a definition contains a regular expression, and I didn't see any patterns being checked, I'm not sure if that statement is entirely true as I don't deal with Regex side.

[*]You are checking for http:// and www. but make sure you put the IF statements nested inside the parent if you will.

Example:

Code:
if (*test* iswm this is a test.) {
  inc %test
  if (%test == 2) { echo %test }
  elseif (%test >= 4) { echo %test }
}


If that made any sense I don't know, but this seems to work for me.

Code:
on *:start: {
  hmake flood 100
}

on @*:text:*:#: {
  if ($nick !isop #) {
    if (*http://* iswm $1-) || (*www.* iswm $1-) {
      hinc -mu300 flood $+(flood,$nick)
      if ($hget(flood,$+(flood,$nick)) == 2) {
        msg $chan $nick You Have Been Warned once for Flooding Links, Next Warning Will Result In A Kick
      }
      elseif ($hget(flood,$+(flood,$nick)) >= 3) {
        kick $chan $nick No Advertise Flooding *2nd Warning*
        hdel flood $+(flood,$nick)
      }
    }
  }
}


All the best,

-Andy