IRCStat

cтатистика IRC каналов


Скрипты в mIRC своими руками (часть 1)

Автор урока: IRCStat
Авторские права: HLClub
Внимание! Перекопированние материалов без согласия автора запрещено и несет за собой уголовную ответственность.


Что такое скрипт?

Скрипт - программа, содержащая набор инструкций для некоторых приложений или утилит. Семантика и синтаксис инструкций в скриптах определяются соответствующими приложениями.


Иначе говоря, для каждого приложения существуют собственные скрипты, алгоритм которых создается разработчиками данных программ. Скрипт может существенно облегчить вашу работу в тех или иных программах. В нашем уроке мы рассмотрим первые шаги к созданию собственных скриптов для популярного IRC клиента mIRC.
(Важно: при создании урока использовался mIRC версии 6.21, более старые версии могут не поддерживать новейшие решения).



Рабочая область

Скрипты для mIRC можно создавать как в блокноте, так и непосредственно в самом клиенте, также существует великое множество редакторов с подсветкой синтаксиса, о которых мы поговорим позже.


Создавать свой первый скрипт мы будет в стандартном редакторе mIRC, так как в него встроен режим проверки ошибок (отладка). Минусов у встроенного редактора много, наверно самый большой из них - это отсутствие подсветки синтаксиса.

Для начала попробуем вызвать редактор скриптов.
Для этого на панели с ярлыками (toolbar) нажмите ярлык, указанный на рисунке:

У вас должно открыться следующее окно:

В данном окне существует 5 вкладок:

Aliases – так называемые алиасы, используются для создания вызова команд. (например, нажатием клавиш или набором команды в чат (например, '/hello'))
Popups – всплывающие меню. В данном разделе находится структура вызываемого меню. (например при нажатии правой клавишей на ник или канал)

Remote – сердце mIRC, данное окно и служит для создания скриптов, используя его отпадает необходимость пользоваться алиасами и всплывающим меню, т.к. все эти функции можно вызывать здесь. Именно о них мы и поговорим далее.

Users – хранилище доступов. Здесь могут находиться пользователи с определенным количеством прав (например, его удобно использовать для привилегированных пользователей в собственном боте).

Variables – другими словами 'мозги', здесь находятся переменные которые хранят их определенное значение.

Важно: также окно редактора скриптов можно вызвать нажатием клавиш ALT+R.

И так мы разобрались в рабочих областях, с которыми нам предстоит работать. Давайте перейдем непосредственно к подготовке создания первого скрипта.


Подготовка к созданию скрипта

Для начала нужно создать пустой лист 'бланк', – в котором и будет создаваться наше первое творения.

Сделать это очень легко. Для этого нужно перейти в меню 'File' и выбрать там 'New' как показано на рисунке:

После чего мы получаем окно 'бланк' с пустыми полями. Теперь можно смело переходить к созданию первого скрипта.



Первый скрипт

Задача: создать скрипт, который отреагирует по команде в канал '!время' и сообщит локальное время на компьютере.


Для обработки сообщений из чата используется следующий обработчик:

on 1:TEXT:<слово>:<*><?><#[,#]>:<команда>

Где:
<слово> - это маска, которая представляет строку, состоящую из следующих допустимых символов:
* - любой текст
& - любое слово
text - только это слово
text* - текст, начинающийся с этого слова
*text - текст, заканчивающийся на это слово
*text* - текст, в котором присутствует это слово

Обработчик который ищет слово '!время' в любом месте текста напечатанный в канал будет выглядеть следующим образом:

on 1:TEXT:*!время*:#:{}

Двойные скобки на концах указывают начало и окончание обработчика, иными словами – если вы хотите чтобы при наборе слова '!время' выполнялись некоторые команды – они должны находится внутри круглых скобок.

# - решетка – означает, что реагировать на данный текст нужно только в том случае если он будет написан в канал. Мы можем с легкостью его заменить на то, что вам подходит больше:

? – если текс поступает в приват
# - текст в канал
#half-life – текст в определенный канал. Например, #half-life.
* - текст поступает в приват или канал

Теперь создадим команду.
При наборе в канал текста '!время' мы будем отвечать следующим образом

Уважаемый Василий на моих часах сейчас 12:41:18

Для того чтобы мы отвечали подобным образом в канал нам нужно создать команду. Воспользуемся командой '/msg' – данная команда отсылает сообщение в приват или канал и вызывается следующим образом:

/MSG ник/канал сообщение

Далее нам потребуется вызывать текущее время на нашем компьютере. Данный запрос выполняет следующая функция:

$time – возвращает текущее время в формате часы:минуты:секунды.

Каким образом мы можем подставить ник напечатавшего команду '!время' в канал?
Очень просто:

$nick – (в данном случае возвращает, ник из обработчика).

Теперь нам потребуется последняя функция, если вы вспомните, то команде '/msg' требуется указать место назначения вашего сообщения, будь это канал или ник.
Следственно нам нужно узнать название канала в который была набрана команда '!время'.
Делает это следующая функция:

$chan - возвращает название канала.

Теперь наша команда готова! Выглядит она следующим образом:

/msg $chan Уважаемый $nick на моих часах сейчас $time

Осталось все объединить (вспомните, что команда должна быть внутри круглых скобок обработчика). И получить следующий скрипт:

on 1:TEXT:*!время*:#:{
/msg $chan Уважаемый $nick на моих часах сейчас $time
}

Ваш первый скрипт готов! Вот так должен выглядеть окончательный вариант:



Осталось сохранить его, нажав клавишу 'OK'. И попросить вашего друга набрать в канал '!время'.

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



Ответы на ваши вопросы

Вопрос 1: "Где я могу найти другие функции кроме $chan, $time, $nick?"
Ответ: Набрав команду '/help' в вашем клиенте вашему вниманию представится справка, в которой более миллиона разных обработчиков.


Вопрос 2: "Я хочу, чтобы слово 'Уважаемый' писалось красным цветом – как мне это сделать?"
Ответ: Все очень просто, вы когда-нибудь писали в чате цветами? В скриптах все делается точно также. Перед словом 'Уважаемый' – нажмите CTRL+K и выберете цифру с цветом, а также не забудьте закончить выделение цветом на жатием в конце слова CTRL+K.
Также будьте внимательнее – если перед знаком $ (или после функции) поставить символ цвета (CTRL+K) – то функция работать не будет. Для этого вам нужно поставить символ цвета после предыдущего слова, а если его нету, то использовать функцию 'сжатия пробела' ($+). Например, если вы хотите, чтобы ник писался в круглых скобках, то код будет выглядеть следующим образом:

/msg $chan Уважаемый ( $+ $nick $+ ) на моих часах сейчас $time


Вопрос 3: "Что делать если я хочу добавить к текущему скрипту – скрипт, который будет отвечать на команду '!времечко' – мне нужно создавать новый файл?"
Ответ: Совершенно не нужно! Вы можете создать новый обработчик и ваш скрипт будет выглядеть следующим образом:

on 1:TEXT:*!время*:#:{
/msg $chan Уважаемый $nick на моих часах сейчас $time
}
on 1:TEXT:*!времечко*:#:{
/msg $chan Уважаемый $nick на моих часах сейчас $time
}

и так вы можете делать до бесконечности. В следующих уроках мы обсудим о том, как помещать два и более слов в один обработчик.


Вопрос 4: "Как данный скрипт можно сделать иначе? Я не понимаю!"
Ответ: Например вот так:

on 1:TEXT:*!время*:#:{
/msg $chan Эй - $nick $+ ! на моих часах сейчас $time $+ , а я вижу тебя в $chan и несмотря на то, что сейчас $time – я не пойду гулять.
}

Если у вас есть вопрос – задайте его.
Наилучших пожеланий вам в ваших начинаниях! С любовью к вам HLClub.