Code:
;################################################;
;Name: Badwordhighlight.mrc
;Author: Jordan
;Date: 19/10/2010
;Description: Highlights a Badword in the Badword-
;             list. Channels and Badwords can be
;             set manually.
;
;Notice: To change the color of the Highlight, you
;        have to uncheck the color which was set
;        before.
;
; version a: added version check + auto unload if not 6.17 + - Desolator 26/10/10 \ 10:36 GMT
;
;
;################################################;



;####DIALOG
dialog bwordhighlight {
  title "Badword-Highlight"
  size -1 -1 175 175
  option dbu
  list 1, 15 25 70 65, size
  edit "", 2, 15 90 70 10
  box "List Manager", 4, 10 10 155 105
  button "Add", 9, 22 102 20 10, flat
  button "Del", 10, 57 102 20 10, flat
  box "Controls", 3, 10 115 155 55
  radio "Enable", 5, 20 130 45 10
  radio "Disable", 6, 20 150 50 10
  check "Red", 7, 70 130 25 10
  check "Blue", 8, 70 150 25 10
  check "Green", 11, 95 130 25 10
  check "Yellow", 12, 95 150 25 10
  check "Orange", 13, 125 130 30 10
  text "Highlightcolor", 14, 70 121 40 8
  text "Badwords", 15, 20 17 25 8
  list 16, 90 25 70 65, size
  edit "", 17, 90 90 70 10
  button "Add", 18, 95 102 20 10, flat
  button "Del", 19, 135 102 20 10, flat
  text "Channels", 20, 90 17 25 8
}

on *:DIALOG:bwordhighlight:*:*: {
  if ($devent == init) {
    var %a = 1, %b = 1
    while (%a <= $hget(Badwordlist,0).item) {
      did -a $dname 1 $hget(Badwordlist,%a).item
      inc %a
    }
    while (%b <= $hget(Badwordchan,0).item) {
      did -a $dname 16 $hget(Badwordchan,%b).item
      inc %b
    }
    $iif($bwordhl.status,did -c $dname 5,did -c $dname 6)
    $iif($readini($qt($mircdirbwordhl.ini),BadwordhlSettings,Color) == 04,did -c $dname 7,$iif($readini($qt($mircdirbwordhl.ini),BadwordhlSettings,Color) == 12,did -c $dname 8))
    $iif($readini($qt($mircdirbwordhl.ini),BadwordhlSettings,Color) == 09,did -c $dname 11,$iif($readini($qt($mircdirbwordhl.ini),BadwordhlSettings,Color) == 08,did -c $dname 12))
    $iif($readini($qt($mircdirbwordhl.ini),BadwordhlSettings,Color) == 07,did -c $dname 13) 
  }
  elseif ($devent == close) {
    if ($did(5).state) {
      writeini $qt($mircdirbwordhl.ini) BadwordhlSettings Status On
    }
    else {
      writeini $qt($mircdirbwordhl.ini) BadwordhlSettings Status Off   
    }
  }
  elseif ($devent == sclick) {
    if ($did == 7) {
      writeini $qt($mircdirbwordhl.ini) BadwordhlSettings Color 04
    }
    elseif ($did == 8) {
      writeini $qt($mircdirbwordhl.ini) BadwordhlSettings Color 12
    }
    elseif ($did == 11) {
      writeini $qt($mircdirbwordhl.ini) BadwordhlSettings Color 09
    }
    elseif ($did == 12) {
      writeini $qt($mircdirbwordhl.ini) BadwordhlSettings Color 08
    }
    elseif ($did == 13) {
      writeini $qt($mircdirbwordhl.ini) BadwordhlSettings Color 07
    }
    elseif ($did == 9 && $did(2)) {
      bwordhl.add $did(2)
      var %d = 1
      did -r $dname 1
      while (%d <= $hget(Badwordlist,0).item) {
        did -a $dname 1 $hget(Badwordlist,%d).item
        inc %d
      }
    }
    elseif ($did == 10 && $did(1).sel) {
      bwordhl.del $did(1).seltext
      var %e = 1
      did -r $dname 1
      while (%e <= $hget(Badwordlist,0).item) {
        did -a $dname 1 $hget(Badwordlist,%e).item
        inc %e
      }
    }
    elseif ($did == 18 && $did(17)) {
      bwordhlchan.add $did(17)
      var %f = 1
      did -r $dname 16 
      while (%f <= $hget(Badwordchan,0).item) {
        did -a $dname 16 $hget(Badwordchan,%f).item
        inc %f
      }
    }
    elseif ($did == 19 && $did(16).sel) {
      bwordhlchan.del $did(16).seltext
      var %g = 1
      did -r $dname 16
      while (%g <= $hget(Badworchan,0).item) {
        did -a $dname 16 $hget(Badwordchan,%g).item
        inc %g
      }
    }
  }
}

;####ALIASES
alias bwordhl.start {
  if (!$dialog(bwordhighlight)) {
    dialog -ma bwordhighlight bwordhighlight
  }
  else {
    echo -a 4***Dialog Badword Highlight is already open.
  }
}

alias bwordhl.add {
  hadd -m Badwordlist $1 
}

alias bwordhlchan.add {
  hadd -m Badwordchan $1
}

alias bwordhlchan.del {
  hdel Badwordchan $1
}


alias bwordhl.del {
  hdel Badwordlist $1
}

alias bwordhl.status {
  if ($readini($qt($mircdirbwordhl.ini),BadwordhlSettings,Status) == On) {
    return $true
  }
  else {
    return $false
  }
}
;####EVENTS
on ^*:TEXT:*:#: {
  if ($me isop $chan || ($me ishop $chan)) { 
    if ($bwordhl.status) {
      var %c = 1
      while (%c <= $hget(Badwordchan,0).item) {
        if ($hget(Badwordchan,%c).item == $chan) {
          var %x = 1, %cnick = $iif($nick isop $chan,$cnick(1).color,$iif($nick ishop $chan,$cnick(2).color,$iif($nick isvoice $chan,$cnick(3).color,$cnick(4).color)))
          while (%x <= $hget(Badwordlist,0).item) {
            var %badword = $hget(Badwordlist,%x).item
            if (%badword isin $strip($1-)) {
              haltdef
              echo -t $chan $+(<,,%cnick,$nick(#,$nick).pnick,,>) $replace($strip($1-),$v1,$+(,$readini($qt($mircdirbwordhl.ini),BadwordhlSettings,Color),$v1,))
              break
            }
            elseif (%badword iswm $strip($1-)) {
              haltdef
              echo -t $chan $+(<,,%cnick,$nick(#,$nick).pnick,,>) $replace($strip($1-),$v1,$+(,$readini($qt($mircdirbwordhl.ini),BadwordhlSettings,Color),$v1,))
              break          
            }
            inc %x
          }
        }
        inc %c
      }
    }
  }
}

on ^*:ACTION:*:#: {
  if ($me isop $chan || ($me ishop $chan)) { 
    if ($bwordhl.status) {
      var %c = 1
      while (%c <= $hget(Badwordchan,0).item) {
        if ($hget(Badwordchan,%c).item == $chan) {
          var %x = 1, %cnick = $iif($nick isop $chan,$cnick(1).color,$iif($nick ishop $chan,$cnick(2).color,$iif($nick isvoice $chan,$cnick(3).color,$cnick(4).color)))
          while (%x <= $hget(Badwordlist,0).item) {
            var %badword = $hget(Badwordlist,%x).item
            if (%badword isin $strip($1-)) {
              haltdef
              echo -t $chan $+(<,,%cnick,$nick(#,$nick).pnick,,>) $replace($strip($1-),$v1,$+(,$readini($qt($mircdirbwordhl.ini),BadwordhlSettings,Color),$v1,))
              break
            }
            elseif (%badword iswm $strip($1-)) {
              haltdef
              echo -t $chan $+(<,,%cnick,$nick(#,$nick).pnick,,>) $replace($strip($1-),$v1,$+(,$readini($qt($mircdirbwordhl.ini),BadwordhlSettings,Color),$v1,))
              break          
            }
            inc %x
          }
        }
        inc %c
      }
    }
  }
}

on *:START: {
  if ($version > 6.16) { 
    hmake Badwordlist 5
    hmake Badwordchan 5
    if ($exists($qt($mircdirbadwordlist.hsh))) {
      hload Badwordlist $qt($mircdirbadwordlist.hsh)
    }
    elseif ($exists($qt($mircdirbadwordchan.hsh))) {
      hload Badwordchan $qt($mircdirbadwordchan.hsh)
    }
  }
  else { echo -s 4,1 $+ $timestamp [BW Highlight] >> Sorry, this addon requires mirc version 6.17 or higher, download from www.mirc.com then move the new mirc.exe into $mircdir then open the new mirc and reload. | unload -rs $script } 
}
on *:EXIT: {
  hsave Badwordlist $qt($mircdirbadwordlist.hsh)
  hsave Badwordchan $qt($mircdirbadwordchan.hsh)
}

;####POPUP
menu channel,status,menubar {
  Badword-HL-Manager
  .Settings: bwordhl.start
  .Status:
  ..$iif($bwordhl.status,$style(1)) On: writeini $qt($mircdirbwordhl.ini) BadwordhlSettings Status On
  ..$iif(!$bwordhl.status,$style(1)) Off: writeini $qt($mircdirbwordhl.ini) BadwordhlSettings Status Off
  .Add $active to List: bwordhlchan.add $active
  .Add new Badword to List: bwordhl.add $?="Which Word do you want to add?"
}


each time i load it i get this erro

/hmake: table 'Badwordlist' exists (line 220, BWhigha.mrc)