Скрипты в 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.