В KVirc'е очень удобно реализовано написание скриптов. За него отвечает Script Center, который подразделяется на: Aliases, Events, Raw, Popups, Toolbar, Variables, Objects, Tester, Help Browser; наибольший интерес, безусловно, вызывает Events.



Events состоит из всевозможных явлений, при которых должно происходить какое-либо действие (например, при заходе на канал определенного человека, будет написано приветствие ему)
Чтобы понять систему написания здесь скриптов, я буду приводить свои примеры (прошу обратить внимание, что это статья рассчитана на написание скриптов в сервисных irc-сетях, таких как WOMnet и DALnet.RU). Начнем с защиты:

  OnMeBan ('если меня забанили'):
  msg chanserv deop $1 $2
  msg chanserv unban $1
  notice $1 don't ban me, please
  Теперь при событии OnMeBan (когда тебя забанят) будет выполняться /msg chanserv deop $chan $nick (деоп через chanserv того, кто тебя забанил на канале, где тебя забанили), /msg chanserv unban $chan (снятие бана на канале через chanserv), /notice $nick don't ban me please (нотис тому, кто тебя забанил). (здесь и во всех примерах $nick - тот, кто совершил действие против тебя, $chan - канал, на котором это произошло).

  OnMeDeop ('если меня деопнули'):
  if ("$2" != "ChanServ") {
  msg chanserv op $1 $me
  notice $2 don't deop me, please
  msg chanserv deop $1 $2
  }
  Теперь при событии OnMeDeop, если $nick не будет ChanServ, произойдет оп через chanserv, нотис $nick и деоп через chanserv провинившегося.

  OnMeKick ('если меня кикнули')
  if ("$1" != "FriendNICK") {
  msg chanserv deop $1 $2
  msg chanserv unban $1
  join $1
  notice $2 don't kick me, please
  mode $1 +b *\!*@$4
  kick $1 $2 protect kick
  }
  При событии OnMeKick, если $nick не твой друг (FriendNICK), то deop $nick, unban (многие любят использовать kick+ban, поэтому лучше перестраховаться), приход на $chan, нотис $nick, ban *!*@host_of_$nick, kick $nick.

 Теперь, защитившись, можно и просто приукрасить различные происшествия:
  OnChannelMessage ('при появлении определенного текста на канале')
  if ("$3" == "http://nixp.ru") {
  msg $1 yes, i have been there. it's cool site about *nix-systems
  }
  Если на канале появляется текст http://nixp.ru, пишется приватное сообщение $nick об этом сайте.

  OnJoin ('когда кто-то заходит')
  if ("$2" == "FriendNICK") {
  msg $1 hi, my friend!
  }
 
Когда заходит твой друг (FriendNICK), на $chan пишется приветствие.

  OnMeOp ('когда меня опают')
  if ("$2" == "FriendNICK") {
  msg $1 $2, thanks
  }
  Если $nick является твоим другом (FriendNICK), то в канал пишется сообщение ему.

  OnTopic ('когда изменеятся топик канала')
  if ("$2" != "ChanServ") {
  msg $1 $4 - rulez new topic *<:)
  }
  Если топик изменит не chanserv,то в канал будет написано, что новый топик клевый :).


  Рассмотрим Aliases:
Здесь все просто: New -> имя алиаса, а потом его значение. Например алиас выхода:
  alias - bye
  значение - ame прощается со всеми!
  значение - quit
  Теперь при вызове команды "/bye", на всех каналах будет написано, что ты со всеми прощаешься, а потом произойдет выход из irc.

 Raw - преобразователь raw-комманд.
 Popups - создание различных менюшек для более удобной работы.
 Toolbar - создание кнопочек на statusbar'е, которые выполняют какие-либо команды.
 Variables - придавать каким-либо переменным значения для их дальнейшего использования в своих скриптах.
 Objects - изменение значений встроенных алиасов и команд.
 Tester - тестирование алиасов и переменных.
 
Help Browser - помощь.