i am assuming that $3- is the reason..
Code:
 
on OP:TEXT:KILL *:?:{
  set %kill $true
  set %kill.reason $3-
  timer 1 2 set %kill $false
  ;You can UNSET too if you dont wanna make it $false
  userhost $2
  kline $2 %kill.reason
  kill $2 [ $+ $nick $+ ] %kill.reason
  .timerUNKLINE 1 3600 unkline $2 
}
on OP:TEXT:ROOMBAN *:?:{ 
  set %roomban $true
  timer 1 2 set %roomban $false
  ;You can UNSET too if you dont wanna make it $false
  set $+(%,rb.nick,$$3) $3
  set $+(%,rb.chan,$3) $$2
  set $+(%,rb.reason,$3) $4-
  userhost $3
  .timerROOMBAN-NOTICE 1 2 .notice $3  $+ $3  $+ - you have been removed from $2 by  $+ $nick  $+ for being of - $4-
  wallops $nick ROOMBAN $2 $3 for 1 hour for being of - $4- 
}
raw 302:*:{
  if (%kill) { .timerKILL 1 3 kill $gettok($2,2,64) %kill.reason } 
  elseif (%roomban) {
    var %n = $($+(%,rb.nick,$gettok($2,1,61)),2),%c = $($+(%,rb.chan,%n),2)
    if ($gettok($2,1,61) == %n) { mode %c +b $+(*!*@,$gettok($2,2,64))
      kick %c %n $($+(%,rb.reason,%n),2)
      unset %rb.*
      .timer-b 1 3600 mode %c -b $+(*!*@,$gettok($2,2,64)) 
    }
  }
}