Введение

Язык сценариев, встроенный в mIRC

Язык сценариев mIRC (часто неофициально сокращаемый до "mSL") — это язык сценариев, встроенный в mIRC и Adiirc, IRC-клиенты для Windows, которые также работают под WiNE в Linux.

Основные виды использования

Легкий канал и личная защита от множества видов атак (флуд, спам, захват и т.п.). В mIRC можно создавать диалоговые окна для лучшей совместимости с пользователями, вместо использования только всплывающих меню. Популярные расширения для диалогов mIRC включают MDX (mIRC Dialog Extension) и DCX (Dialog Control Extension). Существуют также модифицированные IRC-хакерами версии mdx.dll и dcx.dll. Боты, обеспечивающие автоматическое управление IRC-каналами, викторины или другие игры, а также другие полезные функции для пользователей чата. Команды, экономящие время на вводе или упрощающие работу в IRC (например, автоматическая идентификация владельца никнейма). Прокси-серверы CONNECT (www.mslscript.com) и Bounce-серверы (https://en.wikipedia.org/wiki/ZNC) для замены части mSL-скриптов более быстрым кодом и удобными функциями.

Хранение сценариев

Скрипты хранятся либо как обычные текстовые файлы, обычно с расширением mrc, либо как INI-файлы. Однако они могут храниться с любым расширением. Можно загружать несколько файлов скриптов одновременно, хотя в некоторых случаях один скрипт может конфликтовать с другим, из-за чего один или оба скрипта могут перестать работать корректно. Порядок загрузки файлов скриптов может влиять на их правильную работу. Для работы больших скриптов необходимо использовать скрипт загрузки и выгрузки.

Языковые особенности

Язык сценариев mIRC использует собственную номенклатуру для обозначения языковых конструкций. (Однако, хотя это может сбивать с толку новичков, это не влияет на функциональность mSL.) Встроенные функции называются командами или, если они возвращают значение, идентификаторами. Пользовательские скриптованные функции называются псевдонимами. Псевдонимы, возвращающие значение, называются пользовательскими идентификаторами. И те, и другие вызываются из командной строки или других частей скрипта так же, как встроенные команды и идентификаторы (и могут даже переопределять их). Всплывающие меню – это элементы контекстного меню, реализованные с помощью скриптов. Всплывающие меню вызываются при выборе пользователем. Изначально термин относился к меню, которые появляются при нажатии правой кнопки мыши. В руководстве он до сих пор используется в этом значении. Удалённые скрипты – это скрипты обработки событий. Удалённые скрипты вызываются при возникновении события, которое они обрабатывают. Все переменные имеют динамическую типизацию. Для хранения больших объёмов данных доступны хэш-таблицы, массивы – нет. Скрипты mIRC используют сигилы. Идентификаторы (как пользовательские, так и встроенные) предваряются символом $, двоичные переменные – символом &, а другие переменные (локальные или глобальные) – символом %. Команды и псевдонимы не предваряются каким-либо специальным символом (хотя при вводе из командной строки окна они должны предваряться командным префиксом, обычно /).

Ограничения

Скриптовый анализатор поддерживает максимум 8292 (950 до mIRC 6.32) символов в строке (не считая символов новой строки или отступов). Строки не заключаются в синтаксические ограничители, что создает неоднозначность в коде, когда символы, предназначенные для представления строковых литералов, интерпретируются как часть синтаксиса языка. Каждая строка кода разбивается на набор токенов, разделенных пробелами. Поскольку парсер mIRC не поддерживает пустые токены, а в языке отсутствует синтаксис для четкого разграничения строковых литералов и кода, до версии mIRC 6.2 было невозможно передать несколько последовательных пробелов какой-либо команде или псевдониму. Однако это было исправлено с появлением команды returnex, которая позволяет сохранять пробелы.