mirc: Invite script by elimS

Discussion in 'PHP' started by elimS2, 1 Feb 2009.

  1. elimS2

    elimS2 Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    195
    Likes Received:
    159
    Reputations:
    11
    Попросили продолжить тему https://forum.antichat.ru/showthread.php?t=68974, в которой я говорил что выложу позже спам и инвайт скрипты.

    Скрипт рабочий, но доделать можно много чего. Потому и не хотел пока вылаживать. Но раз просят - таки запостю.

    Кросспост: Invite script by elimS

    Итак, что делает скрипт?
    Он собирает по сети все ники, а потом тупо начинает всех инвайтит на канал. при превышении лимита инвайтов - реконект и дальше продолжение инвайтов. канал быстро растет, так как у многих стоит автоджойн при инвайте. Собираем ники таким образом - бегает по всем каналам и берет ники которые на них сидят.

    Для чего можно его использовать?
    Вы фанат ирц и хотите быстро набрать большое количество людей на канале - этот скрипт для Вас.
    Только используйте скрипт осторожно. не собирайте ники с служебных каналов типа хелп и абюз. Поставьте в исключения ники иркопов, не поленитесь. И галочку не ставьте напротив опов и халфопов в блоке "на кого д действует скрипт"

    У Вас есть вражеский канал, на котором сидят люди, которые всю дорогу его рекламируют и тем самым мешают вам жить?
    Что ж и в этом случае скрипт для Вас. Помогите им с рекламой ихнего канала и не забудьте скриптом всех иркопов заинвайтить, а если вы уже всех заинвайтили, но иркопы все равно вас не заметили - начните заново. Гарантирую что скоро и канал дропнут на который шлються инвайты и опов канала накажут и проксю из под которой вы запускали скрипт - в глайн кинут.

    Приступим к установке скрипта:

    копируем код который ниже и заходим в mirc-редактор скриптов (сочетание клавиш alt+r).


    Code:
    ;----- Invite mirc script by elimS ----------------
    menu nicklist {  
      открыть инвайт скрипт: dialog -m invite_options invite_options 
      указать файл ник-листа исключений: %invite_nick_list_iskluchenija = $file="Выберите файл со списком ников:" .txt
      добавить в ник-лист исключений: $iif( %invite_nick_list_iskluchenija == $null, echo $me 4укажите ник-лист исключений! , write %invite_nick_list_iskluchenija $1 )
      обнулить исключения: write -c %invite_nick_list_iskluchenija 
      проверить ник на исключение: %temp = $read(%invite_nick_list_iskluchenija, w, $1 ) | $iif( $readn == 0, echo $me 3 $1 ник не в исключениях! , echo $me 4 $1 ник в исключениях!)
    }
    alias invite_al {  
      if ( $me ison %invite_kanal) {
        inc %invite_nick_list_i 1
        %invite_nick = $read(%invite_nick_list,%invite_nick_list_i)
        %invite_prefix = $mid(%invite_nick,1,1)
        if ( ( ( %invite_prefix != @ ) || (%invite_op == on) ) && ( ( %invite_prefix != % ) || (%invite_hop == on) ) && ( ( %invite_prefix != + ) || (%invite_vop == on) ) ) {
          if ( ( %invite_prefix = @ ) || ( %invite_prefix = % ) || ( %invite_prefix = + ) ) %invite_nick = $mid(%invite_nick,2,$len(%invite_nick))
          if ( %invite_nick !ison %invite_kanal ) {  
            %invite_temp = $read(invite_list.txt, w,  * $+ %invite_nick $+ * ) 
            %invite_temp = $read(%invite_nick_list_iskluchenija, w, * $+ %invite_nick $+ * )
            if ( $readn = 0 ) {
              write $mircdir $+ invite_list.txt %invite_nick
              invite %invite_nick %invite_kanal
            }
            else echo дубликат - %invite_nick    
          }
        }
        if ( %invite_nick_list_i >= $lines( %invite_nick_list ) ) {
          %invite_status = off
          notice $me инвайт закончен, итого было позвано $lines($mircdir $+ invite_list.txt) ) людей. 
          timer_invite off
        }
      }
      else cs invite %invite_kanal
    }
    menu menubar { 
      invite script by elimS: dialog -m invite_options invite_options 
    }
    dialog invite_options {
      title "Скрипт для мас-инвайта. Ver. 2.0"   
      size -1 -1 140 195 
      option dbu  
      tab "Основные",1, 1 1 135 190 
      tab "Дополнительные",100
      button "указать канал",2, 10 20 50 10 , tab 1 
      button "частота инвайта",3, 10 35 50 10 , tab 1
      edit "",4, 60 20 70 10, read autohs , tab 1 
      edit "",5, 60 35 70 10, read autohs , tab 1
      button "Старт!",6, 10 65 120 20 , tab 1
      button "Стоп!",7, 10 90 120 20  , tab 1
      box "на кого будет действовать скрипт",8, 10 110 120 30 , tab 1
      check "+o: опы", 9, 18 118 40 10 , tab 1
      check "+h: халфопы", 10, 60 118 50 10 , tab 1
      check "+v: войсопы", 11, 18 128 40 10 , tab 1
      check "обычные юзеры", 12, 60 128 50 10 , tab 1
      check "реконект при Message target too fast", 13, 18 140 110 10 , tab 1
      button "величина канала",14, 10 50 50 10 , tab 1
      edit "",15, 60 50 70 10, read autohs  , tab 1
      check "удерживать на канале", 16, 10 20 90 10 , tab 100
      button "начать инвайт из указаного ник-листа",17, 10 40 110 10 , tab 100 
      edit "", 18, 10 55 110 10 ,read autohs, tab 100
      box "ник-лист",19, 5 30 120 45 , tab 100
      box "исключения",24, 5 80 120 45 , tab 100
      edit "", 25, 10 105 110 10 ,read autohs, tab 100
      button "выбрать ник-лист исключений",26, 10 90 110 10 , tab 100 
      text "скрипт написал elimS",35 20, 5 153 90 10
      link "http://elims2.blogspot.com", 36, 5 168 90 10
    }
    
    on 1:dialog:invite_options:init:0: {
      did -a invite_options 4 %invite_kanal
      did -a invite_options 5 %invite_time 
      did -a invite_options 15 %invite_users 
      did -a invite_options 18 %invite_nick_list 
      did -a invite_options 25 %invite_nick_list_iskluchenija 
      if (%invite_op == on) did -c invite_options 9
      if (%invite_hop == on) did -c invite_options 10
      if (%invite_vop == on) did -c invite_options 11
      if (%invite_user == on) did -c invite_options 12
      if (%invite_reconnect == on) did -c invite_options 13
      if (%invite_yderzhivat == on) did -c invite_options 16
    
    
    }
    on 1:dialog:invite_options:sclick,edit:*: {
      if ($did == 2) {
        set %invite_kanal $$input(введите канал (вместе с префиксом #) на который хотите инвайтить: , e )  
        did -r invite_options 4
        did -a invite_options 4 %invite_kanal
      }
      if ($did == 3) {
        set %invite_time $$input(введите частоту посылки invite сообщения в милисекундах (1 секунда = 1000 милисекунд), e)
        did -r invite_options 5
        did -a invite_options 5 %invite_time
      }
      if ($did == 14) {
        set %invite_users $$input(введите на каналах с каким количеством людей производить сбор ников (введите количество людей):, e)
        did -r invite_options 15
        did -a invite_options 15 %invite_users
      }
      if ($did == 6) {
        %invite_status = on
        %invite_nick_list = $mircdir $+ chanel_nick_list.txt
        %invite_flag = sbor_kanalov
        remove $mircdir $+ chanel_list.txt
        notice $me сбор каналов...
        list
      }
      if ($did == 7) {
        timer_invite off  
        %invite_status = off
      }
      if ($did == 17) {    
        %invite_nick_list = $file="Выберите файл со списком ников:" .txt
        did -r invite_options 18
        did -a invite_options 18 %invite_nick_list
        timer_invite_chan_list off
        %invite_flag = off
        %invite_lines_nick_list = $lines( %invite_nick_list )
        %invite_nick_list_i = 0
        %invite_status = on
        write -c $mircdir $+ invite_list.txt начало
        notice $me инвайт людей...
        timer_invite -m 0 %invite_time invite_al
      }
      if ($did == 26) {    
        %invite_nick_list_iskluchenija = $file="Выберите файл со списком ников:" .txt
        did -r invite_options 25
        did -a invite_options 25 %invite_nick_list_iskluchenija
      }
      if ($did == 9) $iif(%invite_op == on,%invite_op = off,%invite_op = on)
      if ($did == 10) $iif(%invite_hop == on,%invite_hop = off,%invite_hop = on)
      if ($did == 11) $iif(%invite_vop == on,%invite_vop = off,%invite_vop = on)
      if ($did == 12) $iif(%invite_user == on,%invite_user = off,%invite_user = on)
      if ($did == 13) $iif(%invite_reconnect == on,%invite_reconnect = off,%invite_reconnect = on)
      if ($did == 16) $iif(%invite_yderzhivat == on,%invite_yderzhivat = off,%invite_yderzhivat = on)
      if ($did == 36) run run http://elims2.blogspot.com/2009/02/invite-mirc-script-by-elims.html
    
    }
    ;start--- сбор сбор каналов -----------
    raw 322:*: {  
      if ( %invite_status == on ) && ( %invite_flag == sbor_kanalov ) {
        if ( $len($2) > 1 ) && ( $3 >= %invite_users ) { 
          write chanel_list.txt $2 $3
        }     
      } 
    }
    ;end--- сбор каналов -----------
    ;start--- реконект при ошыбке -----------
    raw 439:*: { 
      if ( %invite_status == on ) {
        if ( %invite_reconnect == on ) && ( Message target change too fast. isin $1- ) server
      }
    }
    ;end---- реконект при ошибке -----------
    ;start--- join каналов -----------
    alias al_chan_list {
      if ( %invite_status == on ) && ( %invite_flag == join_kanalov )  {
        if ( %invite_list_i_chan > $lines($mircdir $+ chanel_list.txt) ) {
          timer_invite_chan_list off
          %invite_flag = off
          %invite_lines_nick_list = $lines( %invite_nick_list )
          %invite_nick_list_i = 0
          write -c $mircdir $+ invite_list.txt начало
          notice $me инвайт людей...
          timer_invite -m 0 %invite_time invite_al
        }
        inc %invite_list_i_chan 1
        %invite_chan_list = $read($mircdir $+ chanel_list.txt,%invite_list_i_chan)
        if ( %invite_chan_list != $null) && ($gettok(%invite_chan_list,1,32) != %invite_kanal) {
          join $gettok(%invite_chan_list,1,32) 
          part $gettok(%invite_chan_list,1,32)
        }
      }
    }
    ;end--- join каналов -----------
    start--- конец листа -----------
    raw 323:*: {    
      if ( %invite_status == on ) && ( %invite_flag == sbor_kanalov )  {    
        remove $mircdir $+ chanel_nick_list.txt   
        %invite_list_i_chan = 0
        %invite_flag = join_kanalov
        notice $me сбор ников по каналам...
        timer_chan_list 0 2 al_chan_list       
      }  
    }
    ;end--- конец листа -----------
    start--- сбор ников -----------
    raw 353:*: {  
      if ( %invite_status == on ) && ( %invite_flag == join_kanalov ) {
        %invite_count_nicks_i = 3
        while ( %invite_count_nicks_i < $0 ) {
          inc %invite_count_nicks_i 1
          if ( $ [ $+ [ %invite_count_nicks_i ] ] != $me ) {
            write chanel_nick_list.txt $ [ $+ [ %invite_count_nicks_i ] ]
          }
        } 
      }  
    }
    ;end--- сбор ников -----------
    on *:join:%invite_kanal: {
      if ( $nick == $me ) && ( %invite_reconnect == on ) && ( %invite_status == on ) timer_invite -m 0 %invite_time invite_al 
    }
    on *:part:%invite_kanal: if ( %invite_yderzhivat == on ) invite $nick $chan 
    
    Если окошко у Вас не пустое и в нем уже есть какой-то скрипт, тогда создавайте новый скрипт как показано ниже на рисунке.

    Вставляйте код и жмите "ок".



    [​IMG]

    Теперь жмем на меню со скриптами.

    У меня оно называется "Смайл Скрипт", у Вас оно будет называться по другому, в зависимости от клиента, но находится это меню всегда в одном и том же месте - между "tools" и "windows".

    Выбираем "invite script by elimS"

    [​IMG]

    Видим следуйщее:

    [​IMG]

    И если перейти на вкладку "дополнительные":

    [​IMG]

    Что какая кнопочка значит:

    Указать канал - указываем канал на который надо приглашать

    Частота инвайта - указывайте с какой частой приглашать людей на канал.
    Цыфра в милисекундах, где 1 секунда = 1000 милисекунд. Если вы укажите например 500 - это значит два человека в секунду. если 3000 это значит один человек за три секунды. На каждом сервере/сети есть свое ограничение на количество приглашений за отрезок времени. Если вы слишком часто приглашаете, то вам сервер будет отвечать "mesage target toofast". Есть два выхода: сделать быстро реконект и дальше продолжать приглашения с той же скоростью или же если реконект делаеться слишком долго, то просто указать цыфру больше, чтоб не так часто приглашать. Советую начинать с 1 человека за 2-3 секунды и там уже ориентируйтесь.

    Величина канала - канал с минимальным количеством людей с которого собирать ники.
    Так как в больших сетях очень много каналов где сидят по 1-10 человек, нету смысла с них собирать ники, лучше собрать с самых крупных.

    Стоп - остановка скрипта.

    На кого будет действовать скрипт - ставим галочки напротив тех, кого стоит приглашать. Советую опов и халфопов не приглашать - тогда на вас не так быстро обратят внимание.

    Реконект при mesage target toofast - отключаеться и подключаеться к серверу, если сервер говорит вам что вы слишком часто приглашаете.

    Удерживать на канале - если приглашенный человек покидает ваш канал, то он автоматом инвайтиться. Довольно часто у людей которые зашли на канал - стоит галочка автоджойн при инвайте, соответственно если они попробуют уйти с канала, они автоматом на него снова забросяться.

    Начать инвайт из указаного ник-листа - может у вас есть выборка людей которых надо быстро проинвайтить.

    Выбрать ник лист исключений - указывает файл с никами которых нельзя приглашать, например ники иркопов и админов сети.

    Так же добавлять ники в исключения вы можете нажав правой кнопкой мышки на нике:

    [​IMG]

    Пользуйтесь на здоровье, и пишите сюда или сюда все баги и пожелания.
     
    #1 elimS2, 1 Feb 2009
    Last edited: 23 Mar 2009
    4 people like this.
  2. CrazyStudentS_Mi}{

    CrazyStudentS_Mi}{ Elder - Старейшина

    Joined:
    4 Jul 2007
    Messages:
    424
    Likes Received:
    296
    Reputations:
    92
    где ж ты был годик назад:)) респект за старания, но проверять негде особо уже
     
  3. dimhee

    dimhee Member

    Joined:
    8 Mar 2007
    Messages:
    129
    Likes Received:
    63
    Reputations:
    6
    спасибо , пригодиться .
     
  4. DigitalDesire

    DigitalDesire Member

    Joined:
    10 Dec 2008
    Messages:
    8
    Likes Received:
    10
    Reputations:
    0
    Респект, отличная статья.
     
    9 people like this.
  5. dimhee

    dimhee Member

    Joined:
    8 Mar 2007
    Messages:
    129
    Likes Received:
    63
    Reputations:
    6
    В дополнение к статье хочу добавить.
    вставляем скрипт указанный ниже:
    on *:JOIN:#channel:/query $nick message
    #channel - заменяем на канал , где много народа , на нём обязательно находиться в момент работы скрипта .
    message - пишем любое сообщение , например : "лучший в мире канал #antichat" .
    И так вставляем скрипт в alt+r , получим скрипт такого вида :
    окей , не забываем , что нужно находиться на каналах указанных в скрипте. Теперь тот кто зайдёт на канал , получит от вашего , я надеюсь , левого аккаунта , сообщение , которое вы ввели в скрипте .
     
    #5 dimhee, 5 Feb 2009
    Last edited: 5 Feb 2009
  6. CrazyStudentS_Mi}{

    CrazyStudentS_Mi}{ Elder - Старейшина

    Joined:
    4 Jul 2007
    Messages:
    424
    Likes Received:
    296
    Reputations:
    92


    если на каналах много людей то тебя выкинет с сервера за флуд
     
  7. dimhee

    dimhee Member

    Joined:
    8 Mar 2007
    Messages:
    129
    Likes Received:
    63
    Reputations:
    6
    меня очень редко выкидывало . тестировал на ~ 6 каналах одновременно в среднем на канале от 200 до 600 человек , irc.quakenet.org , работать мог весь день и в самый час пик , ближе к вечеру могло выкинуть , но у меня автоматический пере заход срабатывал при разрыве соединения в мирке , так что не страшно :]
     
    #7 dimhee, 8 Feb 2009
    Last edited: 8 Feb 2009
  8. bogger

    bogger Elder - Старейшина

    Joined:
    20 Apr 2008
    Messages:
    54
    Likes Received:
    19
    Reputations:
    0
    И так далее... quakenet.org 6006 сервер . не работает скрипт =(
     
  9. elimS2

    elimS2 Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    195
    Likes Received:
    159
    Reputations:
    11
    там другая версия irc сервера. другие команды. сегодня вечером гляну, может поправлю, может команды chanserver есть
     
    #9 elimS2, 20 May 2009
    Last edited: 20 May 2009
  10. bogger

    bogger Elder - Старейшина

    Joined:
    20 Apr 2008
    Messages:
    54
    Likes Received:
    19
    Reputations:
    0
    quakenet.org там все команды есть офф сайт