2

Существует ли сценарий для автоматического добавления whois для конкретного пользователя каждые 5 минут? Я пытаюсь отслеживать, когда кто-то входит в систему на сервере. Я использую MIRC

3 ответа3

3

Вы должны использовать ИРЦ уведомить команду для этого. Это скажет вам, когда ник присоединяется или покидает сеть.

2

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

Вы можете добавить ник, используя /notify nickname и удалить его, используя /notify -r nickname . Вы также можете получить к нему доступ через диалоговое окно адресной книги (/abook -n или alt+b -> Notify Tab).

Вы также можете использовать событие on notify для настройки уведомления:

on *:notify:{
  echo -s $nick has connected to $network $+ !
}

Если вы действительно хотите, чтобы их кто-то получал каждые 5 минут, вам придется самим все кодировать жестко, вот основная идея, как этого добиться:

;trackee name
alias trackee return foobar

on *:connect:{
  ; start an infinite timer when we connect
  .timerCHECK_ONLINE 0 300 doWhois 
}

alias doWhois {
  ; set a flag and initiate a whois command 
  ; the flag is important to differentiate our whois from the user's
  set %docheck 1
  whois $trackee
}

raw *:*:{
  var %n = $numeric
  if (%docheck) {
    if (%n == 401) {
      echo -s [Monitor] $qt($2) is not online!
      ;clear the flag
      unset %docheck
    } 
    elseif (%n == 311) {
      ;start of whois
      echo -s [Monitor] =~=~=~=~=~=~=~= WHOIS START =~=~=~=~=~=~=~=
      echo -s [Monitor]      Nick: $2 $+([, $4, ])
      echo -s [Monitor] Real Name: $6
    }
    elseif (%n == 318) {
      ;end of whois
      echo -s [Monitor] =~=~=~=~=~=~=~=  WHOIS END  =~=~=~=~=~=~=~=
      ;clear the flag
      unset %docheck
    }
    elseif (%n == 312) {
      ; server
      echo -s [Monitor]    Server: $3 $+([, $4-,])
    }
    elseif (%n == 317) {
      ; idle time
      echo -s [Monitor]      Idle: $duration($calc($ctime - $4)) $&
        $+([, Since:, $chr(32), $asctime($4, hh:nn:ss TT mm/dd/yy), ])
    }
    ;elseif (%n == ...) add more numeric events here
    ;...

    ; stop mIRC's default text
    halt
  }
}

который вернет либо:

[Monitor] "foobar" is not online!

или что-то вроде этого:

[Monitor] =~=~=~=~=~=~=~= WHOIS START =~=~=~=~=~=~=~=
[Monitor]      Nick: foobar [FooNet-343F144.fooISP.net]
[Monitor] Real Name: John Doe
[Monitor]    Server: *.example.com [FooNet network]
[Monitor]      Idle: 6mins 38secs [Since: 05:19:07 PM 06/16/11]
[Monitor] =~=~=~=~=~=~=~=  WHOIS END  =~=~=~=~=~=~=~=
2

Два простых варианта:

Way1:
Я бы использовал опцию «Уведомить», как предложил другой человек.
сделать / помочь / уведомить
узнать больше с помощью mIRC ..
некоторые команды:
добавить: / уведомить + ник
- + означает, что когда пользователь находится в сети, он будет определять его, просто не добавляйте слишком много, иначе сервер отключит вас из-за флуд.
удалить: / notify -r ник

Способ 2:
или вы можете сделать
/ таймер 0 300 никнейм

0 - бесконечные времена
300 секунд между командами
whois nickname - команда для whois.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .