Описание программы "ERM Script Editor" Содержание: 1. введение 2. интерфейс 2.1 основное меню 2.2 панель кнопок 2.3 секция синтаксиса 2.4 секция редактирования 2.5 информационная панель 2.6 окно настроек 3. технические подробности 3.1 Синтаксис ERM 3.2 типы поддерживаемых файлов 4. заключение 1. введение. Программа "ERM Script Editor" предназначена для создания скиптовых сценариев на языке ERM . этот язык используется в неофициальном аддоне игры "Heroes Of Might And Magic III" - "In the wake of gods" проекта "New Live Of Heroes", подробности см. на сайте проекта http://www.h3nl.narod.ru. 2.интерфейс. 2.1 основное меню - меню "Файл": - пункт "Open" - позволяет открыть для редактирования один из поддерживаемых типов файлов (*.ERM, *.ERML). - файлы типа *.ERM содержат скрипты на языке ERM. Существует настройка формата этих файлов в диалоге Settings (см. "окно настроек"); - файлы типа *.ERML содержат пользовательские библиотеки скриптов. - пункт "Save" - позволяет сохранить созданный документ в одном из поддерживаемых форматов. - пункт "Print" - вызывает диалог для вывода на печать текста скрипта. - пункт "Reopen" - содержит список последних 10 файлов, с которыми велась работа, и позволяет их открывать. - пункт "Exit" - выход из программы. - меню "Settings": - пункт "ReLoad ERM syntax" - позволяет перезагрузить файл с настройками синтаксиса ERM "ERM.CFG". Подробности о файле "ERM.CFG" см. в разделе "Технические подробности". - пункт "ReLoad Library" - позволяет перезагрузить список файлов, содержащих пользовательские библиотеки скриптов. Это файлы типа "*.ERML". Подробности см. в разделах "Панель синтаксиса" и "Технические подробности". - пункт "Common Settings" - вызывает окно настроек редактора. См. ниже. - меню "Tools" - позволяет запускать необходимые для создания сценариев программы, путь до которых настраивается в диалоге "Settings" (меню "Settings", пункт "Common Settings"). 2.2 Панель кнопок - кнопка "New Scrypt" - позволяет создать пустой ERM документ. - кнопка "New Library Item" - позволяет создать пустой ERML документ. - кнопка "Copy Scrypt To Clipboard" - позволяет скопировать в буффер обмена все содержимое секции редактирования или в обычном текстовом формате, или в формате ERM-скрипта. - кнопки "Undo/Redo" - позволяют отменять/повторять изменения текста в секции редактирования. Количество возможных отмен/повторов настраивается в диалоге "Settings". - кнопка "Check Syntax" - позволяет проверить текст в секции редактирования на правильность ERM-синтаксиса. Горячая клавиша для этой кнопки - F6. - кнопка "Fined Non-filled arguments" - позволяет найти в тексте незаполненные места для вставки - $, #, @, XXXX. Горячая клавиша для этой кнопки - F5. - кнопка "Search Text" - вызывает диалог поиска произвольного фрагмента текста. Горячая клавиша для этой кнопки - F3. - кнопка "Go To Point #" - позволяет перейти к символу, номер которого указан в соседнем поле, в секции редактирования, номер текущего символа всегда отображается в нижнем левом углу окна редактора. - кнопка "Get information about selected text" - позволяет получить справку о выделенном слове (операторе) в поле редактирования. Горячая клавиша для этой кнопки - F1. - кнопка "Create bookmarks" - позволяет ставить и удалять закладки в редактируемом тексте. Закладки предназначены для быстрого перехода к выбранному ранее участку текста. Закладки появляются в нижней части секции редактирования. Название закладки формируется из текущей позиции курсора и выбранного фрагмента текста, до 40 символов. 2.3 секция синтаксиса - страница "Script" содержит страницы: "Triggers", "Receivers", "Instructions", соответствующие основным синтаксическим конструкциям языка ERM. Каждая из этих страниц содержит или один раздел со списком операторов, или еще и второй раздел со списком опций операторов. Все списки и операторов и их опций загружаются из файла "ERM.CFG". количество операторов и опций каждого может быть неограниченным. Подробнее см. в разделе "Технические подробности". - страница "Formats" - эта страница содержит списки всех форматов переменных и объектов языка ERM. Количество типов форматов ограничено тридцатью, количество переменных в каждом формате может быть неограниченным. Подробнее см. в разделе "Технические подробности". - страница "Library" - эта страница содержит список пользовательских библиотек. На этой странице также расположены кнопки облегчающие менеджмент списком библиотек. Это кнопки: "Browse Mode" - вызывает окно просмотра файла библиотеки; "ReLoad Library" - позволяет перезагрузить список пользовательских библиотек; "Delete Current Library Item" - удаляет библиотеку из списка и удаляет файл библиотеки. - работа с секцией синтаксиса - выбор любого элемента списка позволяет прочитать описание этого элемента в нижней части окна - информационной панели. - двойной щелчок левой кнопкой мыши по любому элементу списка вставляет синтаксическую конструкцию, соответствующую данному элементу в раздел редактирования скрипта в позицию каретки. Страница "Script", страницы "Triggers", "Receivers", "Instructions" в разделах операторов: если данный оператор может содержать флаги (информация об этом содержится в файле "ERM.CFG"), то сначала будет автоматически вызван диалог настройки флагов. Автоматический вызов диалога настройки флага можно отключить в диалоге "Settings", этот диалог может также вызываться кликом по правой кнопке мыши. 2.4 секция редактирования секция редактирования содержит текст самого ERM скрипта. При старте редактора открывается или ранее редактируемый документ (в том случае, если выбрана соответствующая настройка в диалоге "Settings" и данный файл скрипта существует), или пустой документ - скрипт (при соответствующей настройке в диалоге "Settings" пустой скрипт или начинается с ключевого слова начала скрипта, или не содержит ничего) или библиотеку. Для секции редактирования можно настроить шрифт в диалоге "Settings". Для секции редактирования существует также в диалоге "Settings" настройка "Smart Caret" - эта настройка включает или выключает функцию автовыделения мест для вставки параметров (#,$,@,XXXX). 2.5 информационная панель Информационная панель расположена в нижней части редактора. При загрузке синтаксиса ERM (при запуске редактора и при ручной перезагрузке синтаксиса ERM) в информационной панели отображается лог загрузки файла "ERM.CFG" или лог проверки синтаксиса скрипта, в остальных случаях эта панель служит для вывода справки об выбранных элементах синтаксиса ERM (секция "Syntax"). В левой части информационной панели расположены кнопки: - "Go to mentioned formats". Она предназначена для быстрого перехода на страницу форматов и к тем форматам, которые упоминаются в данный момент в тексте справки о выбранном элементе синтаксиса ERM. Подробнее см. в п. 3.1. - "Next Image". Эта кнопка предназначена для перехода к следующей иллюстрации, сопровождающей описание выбранной лексической единицы (описание может сопровождаться одной или несколькими иллюстрациями, подробнее о подключении иллюстраций к файлам описания синтаксиса ERM см. в п. 3.1). - "Previous Image". Эта кнопка предназначена для перехода к предыдущей иллюстрации, сопровождающей описание выбранной лексической единицы. - "Stop Search". Эта кнопка предназначена для остановки процесса поиска информации, запущенного нажатием кнопки "Get information about selected text". 2.6 окно настроек - страница "Options" на этой странице можно осуществить следующие настройки: - "Undo/Redo levels count" - позволяет настроить количество уровней Undo/Redo (минимально - 10); - "Setup font" позволяет настроить шрифт для секции редактирования; - "Smart caret ON" позволяет включить/выключить соответствующую функцию для секции редактирования (см. раздел "Секция редактирования"); - "Show dialogue (def. all unchecked)" - включает/выключает автопоказ соответствующего диалога (см. Раздел "Секция синтаксиса"); - "Delete symbols "\r", "\t" at copying in the clipboard" - позволяет включить/выключить функцию автоматического удаления при копировании в буффер обмена символов перевода каретки (\r) и табуляции (\t), табуляция заменяется пробелом; - "Assotiate ERM Script Editor with "*.ERM" files" - позволяет включить/выключить ассоциацию файлов типа "*.ERM" с ERM Script Editor'ом; - "Assotiate ERML Script Editor with "*.ERML" files" - позволяет включить/выключить ассоциацию файлов типа "*.ERML" с ERM Script Editor'ом; - "Open last script at start" - позволяет включить/выключить функцию автооткрытия последнего редактируемого документа при старте редактора; - "To save in file as old ERM format ("\t"=" ", "\n"=" ", in end +"\n")" - позволяет включить/выключить функцию автозамены символов табуляции (\t) на пробел, символов конца строки (\n) на пробелы и добавления в конец скрипта символа конца строки при сохранении скрипта в файл; - "Automatical inserting "Beginning of ERM-script" instruction" - позволяет включить/выключить функцию вставки слова начала ERM скрипта в пустой скрипт при старте редактора и при создании нового скрипта; - "Quick loading at start" - позволяет включить/выключить возможность быстрой загрузки редактора при следующих запусках. Подробнее см. в разделе "Технические подробности". - страница Pathes на этой странице поизводится настройка путей до игры (при правильной инсталляции игры устанавливается автоматически), до редактора карт (при правильной инсталляции игры устанавливается автоматически) и до каталога с библиотеками. 3. Технические подробности. 3.1 Синтаксис ERM. Для настройки синтаксиса ERM используются: файл "ERM.CFG" и файлы "*.DAT". Все эти файлы должны располагаться в директории "SYNTAX" в корневом каталоге редактора. - Синтаксис файла "ERM.CFG" - Информационные параметры: Параметр "Version" - содержит значения версии ERM. Параметр "DateOfRelease" - содержит дату редактирования "ERM.CFG". Параметр "Comment" - содержит комментарий к файлу "ERM.CFG". Параметр "Language" - содержит информацию о языке файла "ERM.CFG". Параметр "BegWord" - содержит названия параметра, содержащего ключевое слово для начала скрипта в ERM синтаксисе (значение по умолчанию "ZVSE"). - Параметры настроек синтаксиса. - Секции Триггеров (Triggers), Приемников (Receivers),инструкций (Instructions): Параметр [Trigger, Receiver, Instruction]_Caption - содержит название для списка операторов в секции синтаксиса (см. п. 2.3). Параметр [Trigger, Receiver, Instruction]_NumFlags - настраивает количество флагов для данного оператора (в окне установки флагов). Значение по умолчанию - 10. Параметр [Trigger, Receiver, Instruction]_1stItemForFlags - настраивает порядковый номер для списка операторов, начиная с которого становится доступным установка флагов (в окне установки флагов). Значение по умолчанию - 0. Параметр [Trigger, Receiver, Instruction]_IsOptions=[YES/NO] - включает/выключает панель опций на странице Триггеров, Приемников или Инструкций в секции Синтаксиса. Значение по умолчанию - Yes. Параметр [Trigger, Receiver, Instruction]_CommonOption_Caption - содержит название для списка общих опций для всех операторов в секции синтаксиса (см. п. 2.3). Параметр [Trigger, Receiver, Instruction]_1stItemForCommonOptions - настраивает оператор (по порядковому номеру), начиная с которого становятся доступными для операторов общие опции операторов данного типа. Значение по умолчанию - 0. Параметр [Trigger, Receiver, Instruction]_HintList - содержит имя файла ("*.DAT"), содержащего список заголовков операторов данного типа. Параметр [Trigger, Receiver, Instruction]_CommonOption_HintList - содержит имя файла ("*.DAT"), содержащего список заголовков для общих опций операторов данного типа. Параметр [Trigger, Receiver, Instruction]_CommonOption# - содержит слово синтаксиса ERM, являющееся общей опцией для операторов данного типа, где # - порядковый номер опции (начиная с 0 до последней без пропусков). Параметр [Trigger, Receiver, Instruction]_CommonOption#_Description - содержит описание для вышеупоминавшейся опции. Параметр [Trigger, Receiver, Instruction]# - содержит слово синтаксиса ERM, являющееся оператором данного типа, где # - порядковый номер оператора (начиная с 0 до последней без пропусков). Параметр [Trigger, Receiver, Instruction]#_Description - содержит название параметра, который описывает данный оператор. Данный параметр может содержать несколько названий параметров с описанием, перечисленных через ";" без пробелов. Параметр [Trigger, Receiver, Instruction]#_Comment - содержит произвольный комментарий к данному оператору, выводится после значений параметров, указанных в описании предыдущего параметра. Параметр [Trigger, Receiver, Instruction]#_Option_Caption - содержит заголовок списка опций данного оператора в секции синтаксиса. Параметр [Trigger, Receiver, Instruction]#_Option_HintList - содержит имя файла ("*.DAT"), содержащего список заголовков для опций данного оператора. Параметр [Trigger, Receiver, Instruction]#_Option## - содержит слово синтаксиса ERM, являющееся опцией №## оператора №#. Параметр [Trigger, Receiver, Instruction]#_Option##_Description - содержит название параметра (XXXX- см. ниже сл. параметр) , который описывает вышеупоминавшуюся опцию. Данный параметр может содержать несколько названий параметров с описанием, перечисленных через ";" без пробелов. Параметр XXXX_LinkFormats - содержит список форматов (перечисляются параметры типа Format#_Name - см. ниже, через ";" без пробелов) к описанию которых можно будет перейти при помощи кнопки "Go to mentioned formats", см. п. 2.5. Параметр XXXX_LinkImages - содержит список иллюстраций к описанию данной лексической единицы. Перечисляются названия файлов типа "*.bmp" через ";" без пробелов, возможны два варианта записи: 1) просто имя файла - тогда данный файл должен располагаться в каталоге "Syntax"; 2) относительно каталога, в который установлена игра HoMM3,5 ([HEROESDIR]\...) - тогда данный файл должен располагаться в указанном месте в каталоге с игрой. Замечание для варианта 2: информация о расположении каталога с игрой берется из реестра, ключ: "HKEY_LOCAL_MACHINE\SOFTWARE\New Life of Heroes\Heroes of Might and Magic III\3.5", параметр "AppPath". Параметр [Trigger, Receiver, Instruction]#_Option##_Comment - содержит произвольный комментарий к данной опции, выводится после значений параметров, указанных в описании предыдущего параметра. Параметр Format#_Name - содержит название формата №#, оно будет отображаться в названии страницы для данного формата в секции синтаксиса. Также это значение может быть использовано будучи заключенное в квадратные скобки ("[", "]") в описании (Параметр ХХХХ_Description) любого элемента синтаксиса ERM - тогда к странице этого формата можно будет перейти с помощью кнопки "Go to mentioned formats", см. п. 2.5. Параметр Format#_Caption - содержит заголовок списка значений элементов данного формата. Параметр Format#_HintList - содержит имя файла ("*.DAT"), содержащего список заголовков элементов формата №#. Параметр Format#_## - содержит значения элемента №## формата №#. Параметр Format#_##_Description - содержит название параметра, который описывает элемент №## формата №#. Данный параметр может содержать несколько названий параметров с описанием, перечисленных через ";" без пробелов. Параметр Format#_##_Comment - содержит произвольный комментарий к элементу №## формата №#, выводится после значений параметров, указанных в описании предыдущего параметра. Значения всех параметров могут содержать спецсимвол "\\" - перевод строки. - Синтаксис файлов "*.DAT" Эти файлы представляют собой список строк. Этот список не должен содержать пустых строк, включая последнюю. 3.2 типы поддерживаемых файлов - "*.ERM" - редактор может как открывать эти файлы, так и сохранять в данном формате. Этот тип файлов предназначен для хранения скриптов ERM. Данный формат представляет собой текстовый документ, из которого исключены символы возврата каретки ("\r", 0x0D) и символы табуляции ("\t", 0x09), последним символом в документе всегда является символ возврата каретки. - "*.ERML" - редактор может как открывать эти файлы, так и сохранять в данном формате. Этот файл предназначен для хранения пользовательских библиотек скриптов. Данный формат представляет собой текстовый документ, состоящий из трех строк вида "Параметр=Значение". Первый параметр "Title" - содержит название библиотеки, значение этого параметра будет отображаться в списке библиотек (страница "library", секция синтаксиса). Второй параметр "Description" - содержит справочную информацию для данной библиотеки. Третий параметр "Script" - содержит сам скрипт. Значения параметров "Description" и "Script" могут содержать спецсимвол "\\" - перевод строки. - "*.TXT" - редактор может сохранять скрипт в текстовом формате.