1. На проекте открылась регистрация только для продавцов. Для обычных пользователей будет открыта позже. Подробнее.
    P.S. Не надо скидывать ссылки на форумы, где у вас ноль сообщений. Подобные заявки будут отклонятся.
Скрыть объявление
Привет, Незнакомец! У тебя есть возможность Оставить комментарий в теме

Скриптинг Одеваем голЫй mIRC

Тема в разделе "PR0GRAMM1NG", создана пользователем ddd, 14 июл 2007.

  1. ddd (•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

    ddd
    TS
    Команда форума WebOwner WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    2.893
    Симпатии:
    191
    ICQ:
    943084
    Не хочешь скачивать готовЫе скриптЫ? Хочешь сделать все сам? Тогда скачивай голЫй mIRC (локал) (мир)
    Сначало сделаем удобное общение, чтобЫ при щелчке по нику в списке ников, он вставляся в строку ввода. Жмем Alt+O, лезем в меню мЫшь, в списке ников пиши:
    Код:
     [COLOR=SeaGreen]/sayto $1[/COLOR]
    в приватЫ, уведомления, сообщения пиши:
    Код:
     [COLOR=SeaGreen]/whois $$1 $1[/COLOR]
    теперь жми Alt+R, и жми вкладку алиасЫ, и там пеши это:
    Код:
     [COLOR=SeaGreen]sayto {
      if ( %sayto-option == nick ) {
        if ( $editbox($chan) == $null ) { editbox -pf $1 $+ %sayto }
        else { editbox -f | query $1 }
      }
      else { query $1 }
    }[/COLOR]
    а в кладке переменЫе пиши ето:
    Код:
     [COLOR=SeaGreen]%sayto :
    %sayto-option nick[/COLOR]
    Все теперь по двойному щелчку по нику, он вставится в строку ввода, если еще раз щелкнуть по нику, то откроется приват с этим человеком.

    Общаться стало удобней, теперь расскажу как сделать чтобЫ можно бЫло показЫвать что тЫ в даннЫй момент слушаешь :)
    Для этого нам понадобится библиотека amplink.dll, сохраняем её в корневой папке mIRC-а. Потом открЫваем мирк, жмем Alt+R, вЫбираем вкладку Менюшки(Popups) потом жми Вид -> Канал и там пишем:
    Код:
    Mp3:{
      if ( $chan == #help ) { echo -a ***На канале #help запрещенЫ плугинЫ | halt }
      if ( $dll(amplink.dll,track,) != $null ) { describe $chan 14,1сейчас мой магнитафон жует12,1 :::=>10,1 $remove($dll(amplink.dll,track,), - Winamp) $+([,$asctime($dll(amplink.dll,leng,a),nn:ss),/,$dll(amplink.dll,bit,a),Kbps,]) }
      else { describe $chan 14,1слушает утюг епть =) }
    }
    Все сохраняем, и потом шелкаем в окне канала правой кнопкой мЫши, и вЫбираем mp3.

    ЗЫ: попожа напешу как сделать чтоб показЫвать системную инфу.
     
  2. M03r IPv6

    M03r
    WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    128
    Симпатии:
    1
    ICQ:
    3232421
    зачетно, ddd! давно хотел себе такие скрипты нарыть, а тут ты сам все сделал за меня! спс! ;)
     
  3. ddd (•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

    ddd
    TS
    Команда форума WebOwner WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    2.893
    Симпатии:
    191
    ICQ:
    943084
    Сейчас, как и обещал расскажу как сделать показ системной инфЫ :)

    Для этого нам понадобиться библиотека moo.dll и немного терпения. Сохраняем её в корневую папку mIRC-a, после чего открЫваем мирк, жмем зоветную комбинацию клавиш Alt+R и в сриптах сохраняем:

    Код:
     ;####################################Системная Инфа#################################
    alias stat {
      set %rb_size 10
      rambar
      say 12На моем компе стоит 4[ $+ $dll(moo.dll,osinfo,_) $+ ]  12Комп уже работает 4[ $+ $uptime(system,1) $+ ]  12Камень 4[ $+ $dll(moo.dll,cpuinfo,_) $+ ] 12Оперативки 4[ $+ $dll(moo.dll,meminfo,_) $+ $result $+ ]
    }
    
    alias connstat { say 12ЙА_онлайн 4[ $+ $dll(moo.dll,connection,_) $+ ] }
    alias connstatself { echo -a *** 12ЙА_онлайн 4[ $+ $dll(moo.dll,connection,_) $+ ] }
    alias screenstat { say 12ЙА_пялюсь в монег 4[ $+ $dll(moo.dll,screeninfo,_) $+ ] }
    alias screenstatself { echo -a *** 12ЙА_пялюсь в монитор 4[ $+ $dll(moo.dll,screeninfo,_) $+ ] }
    
    alias statself {
      set %rb_size 10
      rambar
      echo -a *** 12На моем компе стоит 4[ $+ $dll(moo.dll,osinfo,_) $+ ]  12Комп уже работает 4[ $+ $uptime(system,1) $+ ]  12Камень 4[ $+ $dll(moo.dll,cpuinfo,_) $+ ] 12Оперативки [ $+ $dll(moo.dll,meminfo,_) $+ $result $+ ]
    }
    alias uptime say 12ЙА_сижу под4 :: $+ $dll(moo.dll,osinfo,_) 12И мой комп не вЫрубаетцо4 - $uptime(system,1)
    alias uptimeself echo -a *** 12ЙА_сижу под4 :: $+ $dll(moo.dll,osinfo,_) 12И мой комп не вЫрубаетцо4 - $uptime(system,1)
    
    alias rambar {
      if ( %rb_size == 0 ) { return }
      set %rb_used $round($calc($dll(moo.dll,rambar,_) / 100 * %rb_size),0)
      set %rb_unused $round($calc(%rb_size - %rb_used),0)
      set %rb_usedstr $str(|,%rb_used)
      set %rb_unusedstr $str(-,%rb_unused)
      return  [ $+ %rb_usedstr $+ %rb_unusedstr $+ ]
    }
    alias gfx {
      if ($dll(moo.dll,gfxinfo,_) == -1) {
        moodll.error Could not find GFX card info in registry
      }
      else {
        say 12Видяхо 4[ $+ $dll(moo.dll,gfxinfo,_) $+ ]
      }
    }
    alias ni {
      say 12СетевЫе подключения 4[ $+ $dll(moo.dll,interfaceinfo,_) $+ ]
    }
    alias niself {
      echo -a *** 12СетевЫе подключения 4[ $+ $dll(moo.dll,interfaceinfo,_) $+ ]
    }
    alias hdd {
      :count
      inc %hdd.num
      if ( %hdd.num == $disk(0) )  { say 12Жоский диск: $replace(%hdd.total,GB,$+(GB,4,|,)) Total: $bytes(%hdd.total.size) $+ / $+ $bytes(%hdd.total.free).suf | unset %hdd.total | unset %hdd.total.size | unset %hdd.total.free | unset %hdd.num | halt }
      elseif ( $disk(%hdd.num).type != fixed ) { goto count | halt }
      else { set %hdd.total %hdd.total $+ $remove($disk(%hdd.num).path,\) $+ $bytes($disk(%hdd.num).size) $+ / $+ $bytes($disk(%hdd.num).free).suf  | set %hdd.total.free $calc(%hdd.total.free + $disk(%hdd.num).free ) | set %hdd.total.size $calc(%hdd.total.size + $disk(%hdd.num).size ) | goto count }
    }
    
    alias hddself {
      unset %hdd.*
      :count
      inc %hdd.num
      if ( %hdd.num == $disk(0) )  { echo -a 12Жоский диск: $replace(%hdd.total,GB,$+(GB,4,|,)) Total: $bytes(%hdd.total.size) $+ / $+ $bytes(%hdd.total.free).suf | unset %hdd.* | halt }
      elseif ( $disk(%hdd.num).type != fixed ) { goto count | halt }
      else { set %hdd.total %hdd.total $+ $remove($disk(%hdd.num).path,\) $+ $bytes($disk(%hdd.num).size) $+ / $+ $bytes($disk(%hdd.num).free).suf  | set %hdd.total.free $calc(%hdd.total.free + $disk(%hdd.num).free ) | set %hdd.total.size $calc(%hdd.total.size + $disk(%hdd.num).size ) | goto count }
    }
    
    
    alias gfxself {
      if ($dll(moo.dll,gfxinfo,_) == -1) {
        moodll.error Could not find GFX card info in registry
      }
      else {
        echo -a *** 12Видяхо [ $+ $dll(moo.dll,gfxinfo,_) $+ ]
      }
    }
    
    Потом лезем во вкладку Менюшки, жмем Вид-Канал и там пишем:
    Код:
     Систем.инфа
    .Сказать всем
    ..OS,CPU,MEM:stat
    ..Онлайн стат:connstat
    ..Монитор:screenstat
    ..ОС аптайм:uptime
    ..Видяха:gfx
    ..Подключения:ni
    ..Жоский:hdd
    .Сказать себе
    ..OS,CPU,MEM:statself
    ..Онлайн стат:connstatself
    ..Монитор:screenstatself
    ..ОС аптайм:uptimeself
    ..Видяха:gfxself
    ..Подключения:niself
    ..Жоский:hddself
    Все это дело сохраняем. После чего по каналу щелкаем правой кнопкой мЫшки и вЫбираем Систем.инфа и там щелкаем по тому что хочем показать :)
     
  4. ddd (•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

    ddd
    TS
    Команда форума WebOwner WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    2.893
    Симпатии:
    191
    ICQ:
    943084
    Скрипт подсчета. Нужен для того чтобЫ узнать скоко осталось времени до определенной датЫ, например до Нового Года :)

    Код:
    menu menubar {
      Подсчет времени:/calctime
    }
    alias calctime { dialog -m calctime calctime | cl.add }
    dialog calctime {
      title ".: Подсчет времени :."
      size -1 -1 388 204
      option pixels
      box "Настройка:", 1, 5 5 375 52,
      combo 2, 15 25 105 164,  drop size
      combo 3, 130 25 75 164,  drop size
      combo 4, 215 25 55 164,  drop size
      edit "00", 5, 280 25 25 20,
      edit "00", 6, 312 25 25 20,
      edit "00", 7, 345 25 25 20,
      text ":", 8, 307 27 5 14,
      text ":", 9, 340 27 5 14,
      box "Статус:", 10, 5 60 375 90,
      edit "", 11, 15 80 355 60,  read multi autovs vsbar
      button "П О Д С Ч Е Т   В Р Е М Е Н И", 12, 5 155 375 22,
      text "Copyright © 2007 by ToMMu", 13, 235 185 145 14,
    }
    alias r.inf1 { return $did(calctime,2).text }
    alias r.inf2 { return $did(calctime,3).text }
    alias r.inf3 { return $did(calctime,4).text }
    alias t.a { return $did(calctime,5).text }
    alias t.b { return $did(calctime,6).text }
    alias t.c { return $did(calctime,7).text }
    alias repcl return $replace($$1,wks, нед.,wk, нед.,days, дн.,day, дн.,hrs, ч.,hr, ч.,mins, мин.,min, мин.,secs, сек.,sec, сек.)
    alias cl.add {
      %i = 1
      while (%i <= 31) { didtok calctime 3 C %i | inc %i }
      %i = 2007
      while (%i <= 2020) { didtok calctime 4 C %i | inc %i }
      didtok calctime 2 C Январь
      didtok calctime 2 C Февраль
      didtok calctime 2 C Март
      didtok calctime 2 C Апрель
      didtok calctime 2 C Май
      didtok calctime 2 C Июнь
      didtok calctime 2 C Июль
      didtok calctime 2 C Август
      didtok calctime 2 C Сентябрь
      didtok calctime 2 C Октябрь
      didtok calctime 2 C Ноябрь
      didtok calctime 2 C Декабрь
      did -c calctime 2,3,4 1
    }
    on *:DIALOG:calctime:sclick:12:{
      if ($r.inf1 == Январь) { %cl.year = 1 }
      if ($r.inf1 == Февраль) { %cl.year = 2 }
      if ($r.inf1 == Март) { %cl.year = 3 }
      if ($r.inf1 == Апрель) { %cl.year = 4 }
      if ($r.inf1 == Май) { %cl.year = 5 }
      if ($r.inf1 == Июнь) { %cl.year = 6 }
      if ($r.inf1 == Июль) { %cl.year = 7 }
      if ($r.inf1 == Август) { %cl.year = 8 }
      if ($r.inf1 == Сентябрь) { %cl.year = 9 }
      if ($r.inf1 == Октябрь) { %cl.year = 10 }
      if ($r.inf1 == Ноябрь) { %cl.year = 11 }
      if ($r.inf1 == Декабрь) { %cl.year = 12 }
      did -ri calctime 11 1 До $r.inf2 $r.inf1 $r.inf3 осталось:
      did -i calctime 11 2 $repcl($duration($calc($ctime($r.inf2 $+ / $+ %cl.year $+ / $+ $r.inf3 $t.a $+ : $+ $t.b $+ : $+ $t.c) - $ctime)))
    }
    
    До 1 Январь 2008 осталось:
    1нед. 1дн. 3ч. 53мин. 45сек.
     
  5. ddd (•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

    ddd
    TS
    Команда форума WebOwner WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    2.893
    Симпатии:
    191
    ICQ:
    943084
    Счетчик приватов:
    Код:
    on *:OPEN:?:*:{
    if (!%query.count) { set %query.count 0 }
    inc %query.count
    msg $nick 10Здраствуй, здраствуй3 $nick 10мордастЫй
    msg $nick 10Не надо мне писать 3"Привет как дела" 10и т.п., обращайся только по делу.
    msg $nick 10Твой приват у меня по счету4 $query(0)
    msg $nick 10тЫ уже4 %query.count 10кто лезет сюда.
    } 
    
    Жмем Alt+R и кидаем в скриптЫ :)
     
  6. ddd (•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

    ddd
    TS
    Команда форума WebOwner WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    2.893
    Симпатии:
    191
    ICQ:
    943084
    Того кто подключается через разнЫе серваки к сети, порой не устраивает встроенное автовЫполнение в мирке. Поэтому сделаем свое, с добавлением серваков и т.п.

    Пихаем этот код в блокнот либо сразу в скриптах создаете новЫй, кому как удобнее:
    Код:
    dialog avto {
      title "АвтовЫполнение"
      size -1 -1 86 110
      option dbu
      check "Включить", 6, 2 6 35 10
      text "Сервер:", 3, 2 20 21 7
      combo 2, 24 18 60 52, sort size hsbar drop
      button "New", 1, 39 4 18 12
      button "Delete", 7, 60 4 23 12
      edit "", 4, 2 32 82 60, disable multi return autohs autovs vsbar
      button "Сохранить", 8, 3 95 38 12
      button "Готово", 5, 44 95 39 12, ok
    }
    
    alias -l oc.path { return aircavto.ini }
    on *:connect: {
      if (%con.com) {
        var %i 1,%serv $server,%line $ini($oc.path, $+ %serv,0)
        if (%line == 0 || %line == $null) { var %serv other, %line $ini($oc.path, $+ %serv,0) }
        while (%i <= %line) {  $readini $oc.path %serv %i |  inc %i 1  }
      }
    }
    
    alias -l oc.did {
      var %i 1,%l $ini($oc.path,$iif($did($1,2) == ...ОстальнЫе,other,$did($1,2)),0)
      while (%i <= %l) { did -i $dname 4 $did($1,4).lines $readini $oc.path $iif($did($1,2) ==  ...ОстальнЫе,other,$did($1,2)) %i  |  inc %i 1 }
    }
    on *:dialog:avto:*:*: {
      if ($devent == init) {
        if (!$exists($oc.path)) { write $oc.path $chr(91) $+ other $+ $chr(93) }
        if (!%con.com) { /did -b $dname 1,2,4,7,8 } | else {   did -b $dname 4,7,8 | did -c $dname 6 }
        var %i 1,%t $ini($oc.path,0) |  while (%i <= %t) { /did -i $dname 2 $calc($did(2).lines + 1)  $iif($ini($oc.path, $+ %i) == other,...ОстальнЫе,$ini($oc.path, $+ %i)) | inc %i 1 }
      }
      if ($devent == sclick) {
        if ($did == 2) {
          /did -e $dname 4,7 | /did -r $dname 4 |  $oc.did($dname)
          $iif($did(2) == ...ОстальнЫе,/did -b $dname 7,/did -e $dname 7)
        }
        var %serv $iif($did(2) == ...ОстальнЫе,other,$did(2))
        if ($did == 6) { if (%con.com) { unset %con.com | did -b $dname 1,2,4,7 } | else { set %con.com on | did -e  $dname 1,2,4,7  }
        }
        if ($did == 1) {
          var %ns $$?="Введите адрес сервера."
          :next
          if (%ns == $null) { halt } | if ($chr(32) isin %ns) {  var %ns $$?="Недопустимое значение." | goto next  }
          if ($ini($oc.path,$+ %ns)) {  var %ns $$?="Такой сервер есть в списке." | goto next }
          /did -i $dname 2 $did(2).lines %ns | /write $oc.path $chr(91) $+ %ns $+ $chr(93)
          /did -c $dname 2 $calc($did(2).lines - 1) | did -r $dname 4
        }
        if ($did == 7) { remini $oc.path %serv| did -d $dname 2 $did(2).sel | did -r $dname 4 | did -c $dname 2  $did(2).lines | $oc.did($dname) }
        if ($did == 8) {
          var %i 1,%l $did(4).lines  |   remini $oc.path %serv
        while (%i <= %l) {  if ($did(4,%i)) {  /writeini $oc.path %serv %i  $did(4,%i)   } | inc %i 1 }  | did -b  $dname 8 }
      }
      if ($devent == edit) { if ($did == 4) { /did -e $dname 8 } }
    }
    
    menu channel,menubar,status {
      АвтовЫполнение:/dialog -m avto avto
    }
    
    Сохраняете как avto.mrc в папке с мирк.exe, а потом пишите в клиенте:
    /load -rs avto.mrc
    После чего лезим КомандЫ - АвтовЫполнение. В появившемся окне жмем на кнопку New добавляем сервер, после чего список команд и жмем Сохранить, галочку напротив Включить, а потом Готово.
    Все должно работать )
     
  7. ddd (•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

    ddd
    TS
    Команда форума WebOwner WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    2.893
    Симпатии:
    191
    ICQ:
    943084
    Часто приходится видеть у себя в привате сообщения рекламного характера, аля посетите наш канал и т.п. Вот решил накатать скрипт аля Анти-Спам как у ICQ клиентов. Этот скрипт позволит предотвратить получение сообщений, содержащих спам. Бот будет спрашивать у пользователя указаннЫй вами простой вопрос, ожидая правильного ответа. И только после правильного ответа, пользователь сможет с вами общаться. Это касается только пользователей не из вашего списка контактов.

    ОткрЫваем блокнот и копируем в него:
    Код:
    on ^1:OPEN:?:*: {
      if (!%query.count) { set %query.count 0 }
      inc %query.count
      if ($nick == $read(asc.txt, w, $nick)) query $nick
      if ($nick == $read(asc.txt, w, $nick)) { .echo $nick $time < $+ $nick $+ > $1 } | { /timerOPENQUERY 1 1 /splay -cwmpq openquery.mp3 }
      if ($nick == $read(asc.txt, w, $nick)) halt
      if ($1- === $read(asc.txt, 2)) .msg $nick 14Ответ правильнЫй:3 $read(asc.txt, 2) $+ 14. Спасибо, приват открЫт! Можешь говорить :)
      if ($1- === $read(asc.txt, 2)) .timerSTATS 1 1 ./msg $nick 14Статистика: открЫто приватов3 $query(0) $+ 14, приватов за все время3 %query.count $+ 14.
      if ($1- === $read(asc.txt, 2)) .timerASC 1 3 /query $nick
      if ($1- === $read(asc.txt, 2)) halt
      .msg $nick 14:: 3Anti-Spam Control 14[30.114] :: Здраствуйте, у меня стоит защита от рассЫлки спама в приват. А так как вЫ не в моем списке контактов, пройдите пожалуйста проверку, ответив на вопрос.
      .timerQUESTION 1 2 ./msg $nick 3Вопрос:15 $read(asc.txt, 1) $+ . 3Если вЫ не спам бот, напишите:15 $read(asc.txt, 2) $+ 14. НеправельнЫе ответЫ игнорируются!
      halt
    }
    
    Сохраняем все как asc.mrc в папке с mirc.exe, после чего загружаем /load -rs asc.mrc
    Кидаем в папку какуе-нить мелодию, в моем случае это openquery.mp3, чтоб она проигрЫвалась, когда кто-то обойдет антиспам, и напишет вам в приват.
    Там же в папке с миркой создаем файл asc.txt со следующим содержанием:
    Так теперь автоматизируем добавление ников. Жмем Alt+R вЫбираем вкладку Менюшки -> Вид -> Приват и в самЫй низ добавляем:
    Код:
    Anti-Spam
    .Добавить пользователя:/write asc.txt $1-
    .Добавить нового:/write asc.txt $?="Напишите ник"
    
    Теперь чтобЫ добавить человека с которЫм общаешься в список, достаточно щелкнуть правой кнопкой по окну привата, вЫбрать Anti-Spam -> Добавить пользователя.

    Все, радуемся :)
     
  8. SrDEN IPv6

    SrDEN
    Команда форума WebVoice
    Регистрация:
    14 мар 2007
    Сообщения:
    620
    Симпатии:
    23
    ICQ:
    162224
    Скрипт для любителей команд /amsg, /ame и т.п.

    Возможности:
    1. Писать и делать действия во все каналЫ
    2. Писать во все открЫтЫе приватЫ
    3. Писать в избраннЫе каналЫ
    4. Делать действия в избраннЫе каналЫ
    5. Добавлять удалять избраннЫе каналЫ

    Как ставить:
    1. ОткрЫваем мирку, жмем Alt+R
    2. ОткрЫваем вкладку контекстнЫе меню
    3. Вид -> Канал
    4. И в самЫй низ пишем:
    Код:
    Write All
    .Сказать:/amsg $?="Сказать на всех каналах где вЫ сидите:"
    .Действие:/ame $?="Сделать действие на всех каналах где вЫ сидите:"
    .Во все приватЫ:/qmsg $?="Написать во все ваши приватЫ:"
    Elected Write
    .Сказать в избраннЫе:{
      set %izbchan $chan(0)
      set %izbtext $?
      :next
      if ((%izbchan > 0) && ($chr(49) $+ $right($chan(%izbchan),$calc($len($chan(%izbchan)) - 1)) == $read(izb.txt, w, $chr(49) $+ $right($chan(%izbchan),$calc($len($chan(%izbchan)) - 1))))) msg $chan(%izbchan) %izbtext
      if %izbchan == 0 goto done
      dec %izbchan
      goto next
      :done
      unset %izb*
    }
    .Сделать действие в избраннЫе:{
      set %izbchan $chan(0)
      set %izbtext $?
      :next
      if ((%izbchan > 0) && ($chr(49) $+ $right($chan(%izbchan),$calc($len($chan(%izbchan)) - 1)) == $read(izb.txt, w, $chr(49) $+ $right($chan(%izbchan),$calc($len($chan(%izbchan)) - 1))))) describe $chan(%izbchan) %izbtext
      if %izbchan == 0 goto done
      dec %izbchan
      goto next
      :done
      unset %izb*
    }
    .Добавить вЫделеннЫй канал:if ($replace($left($chan,1),$chr(35),$chr(49)) $+ $right($chan,$calc($len($chan)-1)) != $read(izb.txt, w, $replace($left($chan,1),$chr(35),$chr(49)) $+ $right($chan,$calc($len($chan)-1)))) /write izb.txt $replace($left($chan,1),$chr(35),$chr(49)) $+ $right($chan,$calc($len($chan)-1))
    .Удалить
    ..Удалить последний добавленЫй:/write -d izb.txt
    ..Удалить все избраннЫе:/write -c izb.txt
    
    
    Скрипт писался на скорую руку, можно много чего надбавлять, и чего-то по упрощать, но время пока что нету :)
     
    Последнее редактирование: 20 авг 2010
  9. ddd (•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

    ddd
    TS
    Команда форума WebOwner WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    2.893
    Симпатии:
    191
    ICQ:
    943084
    Усовершенствовал скрипт из этого поста: http://www.webcriminal.ru/forum/showpost.php?p=18989&postcount=7

    Теперь он не только от спама защищает, но и от флуда в приват, нотисами и инвайтами. Проверялся на 1000 ботах.

    Жмем Alt+R и открываем вкладку скрипты, и заменяем старый этим:
    Код:
    on ^1:OPEN:?:*: {
      if (!%query.count) { set %query.count 0 }
      inc %query.count
      if ($var(%queryn*) >= 20) .timerAXTYNGP 1 3 echo 4Вас пытаются зафлудить в приват! Стучится $var(%queryn*) ботов!
      if ($1- !=  $eval($+(%, randreply, $nick),2)) { inc -u180 $+(%, queryn., $nick) 1 }
      if ($eval($+(%, queryn., $nick),2) >= 30) { ignore -pniu180 $site | unset $+(%, queryn., $nick) }
      if (($var(%queryn*) >= 20) && ($eval($+(%, queryn., $nick),2) >= 3)) { ignore -pniu180 $site | unset $+(%, queryn., $nick) }
      if (($var(%queryn*) >= 20) && ($eval($+(%, queryn., $nick),2) >= 3) && ($network == Dogm-Network)) { /shun $+(+, $remove($address,*!*)) 600 :PrivetFlood }
      if ($1- !=  $eval($+(%, randreply, $nick),2) && ($eval($+(%, queryn., $nick),2) == 1)) { set -u80 $+(%, randreply, $nick) $rand(100,999) }
      if ($nick == $read(asc.txt, w, $nick)) query $nick
      if ($nick == $read(asc.txt, w, $nick)) { .echo $nick $time < $+ $nick $+ > $1- }
      if ($nick == $read(asc.txt, w, $nick)) halt
      if ($1- == $eval($+(%, randreply, $nick),2)) .msg $nick 14Ответ правильный:3 $eval($+(%, randreply, $nick),2) 14. Спасибо, приват открыт! Можешь говорить :)
      if ($1- == $eval($+(%, randreply, $nick),2)) .timerSTATS 1 1 .msg $nick 14Статистика: открыто приватов3 $query(0) $+ 14, приватов за все время3 %query.count $+ 14.
      if ($1- == $eval($+(%, randreply, $nick),2)) query $nick
      if ($1- == $eval($+(%, randreply, $nick),2)) halt
      if ($eval($+(%, queryn., $nick),2) == 1) .timerQUESTION1 1 2 .msg $nick 14:: 3Anti-Spam\Flood Control 14[31.214] :: Здраствуйте, у меня стоит защита от спама\флуда в приват. А так как вы не в моем списке контактов, пройдите пожалуйста проверку. написав заданное число. Напишите:1,15 $+(%, randreply, $nick) 14. Неправельные ответы игнорируются!
      if (($var(%queryn*) >= 20) && ($eval($+(%, queryn., $nick),2) == 1)) .timerQUESTION2 1 6 .msg $nick 3В данный момент меня флудят, если ответите 3 раза неправильно, то попадете в игнор на 3 минуты.
      halt
    }
    
    on ^1:NOTICE:*:?: {
      if (services isin $address) goto nextnotice
      inc -u80 %asnotice 1
      inc -u80 $+(%, noticen., $nick) 1
      :nextnotice
      if ($var(%noticen.*) >= 20) .timerAXTYNGN 1 3 echo 4Вас пытаются зафлудить нотисами! Стучится $var(%noticen.*) ботов!
      if (($eval($+(%, noticen., $nick),2) >= 3) && (%asnotice >= 10)) { ignore -nu300 $site | dec -u80 %asnotice 1 }
      if (($eval($+(%, noticen., $nick),2) >= 3) && (%asnotice >= 10) && ($network == Dogm-Network)) { /shun $+(+, $remove($address,*!*)) 600 :NoticeFlood }
      if ((%asnotice >= 15) && ($eval($+(%, noticen., $nick),2) >= 2)) halt
      if ((%asnotice >= 10) && ($eval($+(%, noticen., $nick),2) == 1)) notice $nick 3С вами говорит автоответчик, в данный момент меня флудят, все попросы через приват.
    }
    
    on ^1:INVITE:#: {
      inc -u80 %asinvite 1
      inc -u80 $+(%, inviten., $nick) 1
      if (%asinvite >= 20) .timerAXTYNGN 1 3 echo 4Вас пытаются зафлудить инвайтами! Уже %asinvite приглашений!
      if ($eval($+(%, inviten., $nick),2) >= 10) { ignore -iu600 $site | dec %asinvite 1 }
      if (($eval($+(%, inviten., $nick),2) >= 10) && ($network == Dogm-Network)) { /shun $+(+, $remove($address,*!*)) 600 :InviteFlood }
      if (%asinvite >= 10) halt
    }
    
    Если до этого у вас не было подобного скрипта, то создаете там новый Файл - Создать и вставляете в новое окно данный скрипт и сохраняете.

    Так теперь автоматизируем добавление ников. Жмем Alt+R выбираем вкладку Менюшки - Вид - Приват и в самый низ добавляем:

    Код:
    Anti-S\F
    .Добавить пользователя:/write asc.txt $1-
    .Добавить нового:/write asc.txt $?="Напишите ник"
    
    Теперь чтобы добавить человека с которым общаешься в список, достаточно щелкнуть правой кнопкой по окну привата, выбрать Anti-S\F - Добавить пользователя.


    Функции скрипта:
    1. Если пользователя нету в списке доверенных пользователей, то при попытке что-нибудь написать Вам в приват получит сообщение с кодом которое ему надо ввести. Если в данный момент вас флудят то его оповестит о том, что если он ошибется 3 раза, его добавит в список игнорируемых.
    2. Если вы получите в течении минуты больше 15 нотисов, то включается защита, и любой пользователь отправивший больше 3 нотисов попадет в игнор.
    3. Если в течении минуты вас приглашает 1 пользователь более чем на 10 каналов, то он попадает в игнор.
     
  10. ddd (•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

    ddd
    TS
    Команда форума WebOwner WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    2.893
    Симпатии:
    191
    ICQ:
    943084
    Че то я про сервисы и забыл :)
    Верхний пост обновил, теперь за нотисы сервисы игнорить не будет.

    Ах да добавил для ирцопов еще и шан, теперь флудботы еще и в шане сидеть будут )
    Для работы команды замените $network == Dogm-Network на сеть где у вас есть права.
     
  11. ddd (•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

    ddd
    TS
    Команда форума WebOwner WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    2.893
    Симпатии:
    191
    ICQ:
    943084
    Для тех кто сидит в разных сетях с одного IRC клиента, и использует разные пароли к своему нику.

    Жмем Alr+R в скриптах создаем новый файл и в него вставляем:
    Код:
    ;begin---------СерверКонектор-скрипт ddd-------------------------
    dialog servcon {
      title "ServConnector v.0.1 © webcriminal.ru"
      size -1 -1 172 60
      option dbu
      edit "", 1, 11 14 79 10, %serv1
      edit "", 2, 11 25 79 10, %serv2
      edit "", 3, 11 36 79 10, %serv3
      edit "", 4, 11 47 79 10, %serv4
      check "Выбрать", 5, 138 14 34 10
      check "Выбрать", 6, 138 25 34 10
      check "Выбрать", 7, 138 36 34 10
      check "Выбрать", 8, 138 47 34 10
      text "Сервер порт пароль", 9, 13 5 53 8
      text "№1", 10, 1 15 10 8
      text "№2", 11, 1 25 10 8
      text "№3", 12, 1 36 10 8
      text "№4", 13, 1 47 10 8
      button "ОК", 15, 142 2 25 10, ok
      edit "", 17, 91 14 44 10, %pass1
      edit "", 18, 91 25 44 10, %pass2
      edit "", 19, 91 36 44 10, %pass3
      edit "", 20, 91 47 44 10, %pass4
      text "Пароль от ника", 21, 92 5 45 8
    }
    
    on *:dialog:servcon:*:*: {
      if ($devent == init) {
        if (!%servcon1) { /did -b $dname 1,17 } | else { did -b $dname 1,17 | did -c $dname 5 } 
        if (!%servcon2) { /did -b $dname 2,18 } | else { did -b $dname 2,18 | did -c $dname 6 } 
        if (!%servcon3) { /did -b $dname 3,19 } | else { did -b $dname 3,19 | did -c $dname 7 } 
        if (!%servcon4) { /did -b $dname 4,20 } | else { did -b $dname 4,20 | did -c $dname 8 }
      }
      if ($devent == sclick) {
        if ($did == 5) { if (%servcon1) { unset %servcon1 | did -b $dname 1,17 } | else { set %servcon1 on | did -e  $dname 1,17  } }
        if ($did == 6) { if (%servcon2) { unset %servcon2 | did -b $dname 2,18 } | else { set %servcon2 on | did -e  $dname 2,18  } }
        if ($did == 7) { if (%servcon3) { unset %servcon3 | did -b $dname 3,19 } | else { set %servcon3 on | did -e  $dname 3,19  } }
        if ($did == 8) { if (%servcon4) { unset %servcon4 | did -b $dname 4,20 } | else { set %servcon4 on | did -e  $dname 4,20  } }
        if ($did == 15) { 
          set %serv1 $did(servcon,1,text)
          set %serv2 $did(servcon,2,text)
          set %serv3 $did(servcon,3,text) 
          set %serv4 $did(servcon,4,text)
          set %pass1 $did(servcon,17,text)
          set %pass2 $did(servcon,18,text)
          set %pass3 $did(servcon,19,text)
          set %pass4 $did(servcon,20,text)
        }
      }
    }
    
    on 1:start: { 
      if (%servcon1 == on) { timerSERV1 1 2 server -m %serv1 }
      if (%servcon2 == on) { timerSERV2 1 4 server -m %serv2 }
      if (%servcon3 == on) { timerSERV3 1 6 server -m %serv3 }
      if (%servcon4 == on) { timerSERV4 1 8 8server -m %serv4 }
    }
    
    on 1:notice:*IDENTIFY*:?: { 
      if ((%servcon1 == on) && ($nick == nickserv) && ($server == %serv1)) /identify %pass1 
      if ((%servcon2 == on) && ($nick == nickserv) && ($server == %serv2)) /identify %pass2 
      if ((%servcon3 == on) && ($nick == nickserv) && ($server == %serv3)) /identify %pass3 
      if ((%servcon4 == on) && ($nick == nickserv) && ($server == %serv4)) /identify %pass4 
    }
    
    menu menubar,channel,status {
      ServConnector:$iif($dialog(servcon),/dialog -v servcon,/dialog -m servcon servcon) 
    }
    ;end---------СерверКонектор-скрипт ddd-------------------------
    
    Сохраняем, после чего щелкаем правой кнопкой в окне статуса и выбираем ServConnector. И далее заполняем формы, выбираем сколько надо серверов. Пишем адрес сервера порт если надо и пароль если надо, примеры:
    1. irc.dogm.net
    2. irc.prioz.ru 6667
    3. irc.myserv.ru 6667 serverpass
    В поле пароль, пароль от ника на этом сервере.
    После чего жмем Ok. Перезапускаем mIRC и забываем что надо вводить сервера и идентифицироваться:)

    PS: скрипт писал на скорую руку, так что возможно много косяков, но он работает :)