ERM Manual, На английском и не только |
Здравствуйте, гость ( Вход | Регистрация )
ERM Manual, На английском и не только |
12 Nov 2004, 14:26
(Сообщение отредактировал Bourn - 15 Jul 2006, 10:24)
Сообщение
#1
|
|
nobody Сообщений: 33 Спасибо сказали: 5 раз |
Эта же статья, но в оригинале от автора (R_Warlock) и с картинками:
http://strategyplanet.com/homm/wog/111/heroes.zip 545,906 байтов (написана до выхода WoG 3.58. Насколько я помню, он её писал для какого-то игрового журнала). Также прекрасная статья, правда на английском "ERM for Dummies!" ("ERM для чайников"): http://www.forumplanet.com/StrategyPlanet/...4317&tid=981049 Кое-что из самых основ ERM освещено в нашем старом FAQ'е по игре: http://heroes.diaspora.ru/hmm3/addon/faq_wog.shtml Вопросы/ответы 23 и 24. Ответ на 24 вопрос с картой примером. Пара статей на нашем английском сайте: http://strategyplanet.com/homm/wog/jack_erm1.shtml http://strategyplanet.com/homm/wog/fnord_erm1.shtml -------------------- |
|
|
17 Nov 2004, 19:51
(Сообщение отредактировал R_Warlock - 17 Nov 2004, 19:55)
Сообщение
#2
|
|
Newbie Сообщений: 7 Спасибо сказали: 0 раз |
-------------------- А вы и ухом не моргнули :)
|
|
|
04 Jan 2005, 12:59
Сообщение
#3
|
|
strange thing Сообщений: 2 586 Спасибо сказали: 94 раза |
Цитата(AlexStar @ 11 Dec 2004, 01:30) Новые артефакты Вы в корне неверно понимаете принципы ВоГифифкации и ЕРМ (или вообще не понимаете). Насчет ЕРМ - могу посоветовать прочитать тему "школа ЕРМ" здесь : http://www.heroesportal.net/tavern/?forumid=18 . Лично я больше ничего сказать не смогу, т.к. писал "школу" я. Из всех перечисленных здесь учебников, ИМХО, "школа" лучше всех поясняет сам принцип ЕРМ. Насчет ВоГификации. новые Артефакты появляются на карте только в процессе ВоГификации - то есть старые арты заменяются на новые. Так что новые арты можно подключить простым увеличением номера. придать cвойства можно с помощью триггера !?AE -------------------- anyway the wind blows...
|
|
|
21 Jan 2005, 02:48
(Сообщение отредактировал Ennin - 21 Jan 2005, 15:14)
Сообщение
#4
|
|
strange thing Сообщений: 2 586 Спасибо сказали: 94 раза |
кому интересно - вот оглавление "ЕРМ для чайников". что ещё нужно добавить - говорите
http://heroes.obninsk.ru/download/ennin/ermbook/ -------------------- anyway the wind blows...
|
|
|
14 Jul 2006, 08:54
Сообщение
#5
|
|
С++ And Inf techer Hater Сообщений: 240 Спасибо сказали: 0 раз |
Вот скачал где-то описание к ERM на русском(не всё а софта по моему ваще нет)
Прикрепленные файлы
-------------------- Новый тестинг бета версии локального сервера героеф В скором времени^^
|
|
|
27 Nov 2006, 18:46
Сообщение
#6
|
|
Curse you all men! Сообщений: 40 Спасибо сказали: 2 раза |
DF2 :: ФОРУМЫ > Игровые форумы > Heroes 3.5 WOG > Скрипты
тема:обучение ерм комментарий темы:ерм для чайников смайлик ПРИМЕЧАНИЕ: здесь ерм для чайников можно приравнять к "ерм для совсем чайников" Еще пригодится вот этот документ: http://www.aquarun.ru/keyf/keyf_book/12/keyf12p9.html смайлик -------------------- Должно быть, кто-то оклеветал господина К, поскольку, не совершив ничего дурного, он попал под арест...
|
|
|
08 Jan 2007, 16:16
Сообщение
#7
|
|
Banished Сообщений: 1 782 Спасибо сказали: 116 раз |
Обновил ERM-помощь. Добавил и исправил кучу чего.
Скачать можно отсюда: http://dracolich.narod.ru/ERM_HELP_RU.rar -------------------- |
|
|
10 Jan 2007, 19:02
Сообщение
#8
|
|
Banished Сообщений: 1 782 Спасибо сказали: 116 раз |
Сама ERM-помощь. К ней и нужно качать обновление. Размер - 971 кб
http://dracolich.narod.ru/erm_help_ru.rar -------------------- |
|
|
21 Jul 2007, 16:16
Сообщение
#9
|
|
Immortal Сообщений: 670 Спасибо сказали: 14 раз |
DL Вещь - супер. Работает под TE и WOG 3.59 Благодарю SnoRT'a за перевод большей части. Код !!DL#:XXXX; Ход диалога #, #>0. Код (Переведено SnoRT'ом) A#1/#2/$ Изменение характеристик пункта диалога. #1 - ID пункта #2 тип $ 3 Текст (string): новый текст пункта 4 Def (номер): новый кадр Def'а 11 Pcx (string): новый рисунок Примечание: Может быть вызвано в триггере !?DL, тем самым позволяет изменять диалог "на лету". Примечание Demiurg'a: Имхо, очень сырая команда. Может вызывать ошибки Код (Переведено Demiurg'ом) C# - Установить определенное возвращаемое действие или изменить текущий курсор. # - тип действия 1 - закрыть диалог с возвращением текущего элемента(Смотрите !!DL:S . Внимание!!! Если вы применяете под TE !!DL:C1, и у вас этот диалог не является первым(открыт в другом диалоге), то данная функция закроет все диалоги - Прим. Demiurg'a) 1000+# - установить текущий курсор как решетка # (смотрите формат PM2) Комментарии: Для этой комманды вам не нужно устанавливать Id диалога в части !?DL . Это действует на активный диалог и любой элемент. Примеры: !!DL:C1; - закрыть диалог !!DL:C1000; - изменить курсор на стрелу (стандартный курсор) !!DL:C1042; - изменить курсор на 'Разбитая лодка' Код (Переведено Demiurg'ом) E#1/#2 Включить элемент диалога. #1 - ID элемента диалога #2 - включить (1) или выключить (0) элемент Комментарии(Прим. Demiurg'a) При выключении кнопки показывается следующий кадр дефа (смотрите Формат шаблонов -> 'B' - кнопка.) Код (Переведено Demiurg'ом) H#1/#2 Установить подсказку для элемента диалога #1 - ID элемента диалога #2 - подсказка для элемента (появляется, когда вы движете мышь через элемент) Комментарии: #2 может быть глобальной или статической z-переменной. Текст анализируется перед отображением (не во время установки). Код (Переведено Demiurg'ом) N# Анализ шаблона диалога # - имя файла шаблона (может быть текстом, глобальной, локальной или статической z-переменной) Комментарии: Текст анализируется перед использованием. Эта команда загружает файл шаблона (если еще не загружен), ищет диалог (используя Id) в файле и анализирует его. Она не показывает диалог. Главная цель этого дать нам шанс настроить загруженный диалог перед его показом. Результат: Флаг 1 = 1 если успешно Флаг 1 = 0 если случились ошибки (не найден шаблон диалога) Формат шаблона описан ниже. Код (Переведено SnoRT'ом) P$ Передать контроль действий функции $ Параметры функции: x1 - действие 0 - мышь сдвинулась на другой квадрат 12 - левая кнопка мыши нажата 13 - левая кнопка мыши отпущена 14 - правая кнопка мыши нажата x2 - x координаты клика на карте x3 - y координаты клика на карте x4 - уровень клика на карте Пример: !?OB8/11/0; !!DL:P12345; !!IF:M^Заклинание выполнено.^; !?FU12345; !!if&x1=0:; мышь сдвинулась !!OBx2/x3/x4:T?y1; получить тип объекта, куда указывает мышь !!if&y1=34:; герой? !!DL:C1042; курсор затопленной лодки !!el:; !!DL:C1000; стандартный курсор !!en:; !!FU:E; !!en:; !!if&x1=13:; левая кнопка мыши нажата !!OBx2/x3/x4:T?y1 C?y2; !!if&y1=34:; герой !!HEy2:K; убиваем героя !!DL:C1000; стандартный курсор !!en:; !!FU:E; !!en:; !!if&x1=14:; нажатие правой кнопки !!DL:C1; !!en:; Код (Переведено Demiurg'ом)S$ Показать диалог $ - возвращенный элемент (активный элемент, когда диалог закрывается) Комментарии: Показывает диалог (с определенным Id) и ждет пока он не закроется. Это означает, что следующий ресивер запускается не сразу, а только когда диалог закрывается любыми средствами. Вы можете не использовать параметр вовсе, это означает, что возвратный код игнорируется. Вы можете показывать один диалог "из другого" и последовательность может быть неограничена но вы можете иметь только ОДИН диалог такого типа на экране одновременно. Это означает, что вы не можете вызвать диалог X из диалога X.[code] [code](Переведено SnoRT'ом) !?DL; Триггер настройки диалогов Вызывается, когда действие мыши или клавиатуры (ещё не поддерживается) перехватывется на любом пункте диалога. Примечания: Когда триггер выполняется, следующие переменные вводятся: v998 = Id Диалога v999 = Id Пункта диалога v1000 = Действие Доступные действия (для v1000): 12 - нажатие левой кнопки мыши 13 - отжатие (не знаю как это правильно обозвать =)) левой кнопки мыши 14 - нажатие правой кнопки мыши Примечание Demiurg'a Триггер срабатывает только при нажатии на включенный элемент диалога (смотрите !!DL:E) Код (Переведено SnoRT'ом) Формат шаблонов. Это стандартный файл текстовой таблицы Героев 3. Первые две строки пропускаются (могут быть заполнены текстом или оставлены пустыми) Самый левый столбик также игнорируется (может быть заполнен текстом или оставлен пустым). Диалог начинается со следующих строк (в порядке столбца): 0: пропускается 1: знак '#' - означает начало нового шаблона диалога 2: xxx номер - уникальный Id диалога 3: номер x позиции - X позиция от верхнего левого угла (-1=центр экрана) 4: номер y позиции - Y позиция от верхнего левого угла (-1=центр экрана) 5: dx номер - горизантальный размер диалога 6: dy номер - вертикальный размер диалога 7: xxx номер - количество пунктов диалога (вы можете использовать меньше, но не больше, чем выбрали) 8: xxx номер - установить цвет рамки диалога под цвет номера игрока (-1 означает текущего игрока) 9: текст - имя PCX файла, который будет фоном 10: XXX номер - Id текстового пункта, который используется как поле с описанием. Следующие строки анализируются как пункты диалога до тех пор, пока не будет знака '#' в первом столбце. Это может быть просто пустая строка с '#', или линия с началом нового диалога. Самый главный элемент - первый символ в первом столбце. Поддерживаемые на данный момент элементы: 'P' - PCX рисунок: 0: пропускается 1: 'P'... 2: xxx номер - уникальный Id пункта 3: номер x позиции - X позиция в диалоге от верхнего левого угла 4: номер y позиции - Y позиция в диалоге от верхнего левого угла 5: dx номер - горизонтальный размер пункта 6: dy номер - вертикальный размер пункта 7: текст - имя PCX файла 8: флаги - специфическое значение (ещё не известно полностью) 'D' - кадр DEF рисунка: 0: пропускается 1: 'D'... 2: xxx номер - уникальный Id пункта 3: номер x позиции - X позиция в диалоге от верхнего левого угла 4: номер y позиции - Y позиция в диалоге от верхнего левого угла 5: dx номер - горизонтальный размер пункта 6: dy номер - вертикальный размер пункта 7: текст - имя DEF файла 8: кадр - изображения внутри DEF'а для вывода 9: флаги - специфическое значение (ещё не известно полностью) 'A' - анимированный DEF рисунок: ещё не поддерживается 'B' - кнопка (особый DEF) 0: пропускается 1: 'B'... 2: xxx номер - уникальный Id пункта 3: номер x позиции - X позиция в диалоге от верхнего левого угла 4: номер y позиции - Y позиция в диалоге от верхнего левого угла 5: dx номер - горизонтальный размер пункта 6: dy номер - вертикальный размер пункта 7: текст - имя DEF файла 8: флаги - специфическое значение (ещё не известно полностью) [Прим. Demiurg'a в DEF'е кнопки должно быть как минимум 2 кадра. При нажатии на кнопку показывается второй кадр. Также при отключении кнопки (переводе элемента диалога в режим выключен) показывается второй кадр. Например если вы сделаете кнопкой деф с заклинаниями, то будет изображено заклинания вызов лодки а при нажатии или выключении вы увидите следующее заклинание - потопить лодку. При нажатии на кнопку (не удерживая) происходит выход из диалога (выход в предыдущий диалог, если диалог был открыт из другого диалога). Конечно кнопка должна быть включена.] 'T' - текст: 0: пропускается 1: 'T'... 2: xxx номер - уникальный Id пункта 3: номер x позиции - X позиция в диалоге от верхнего левого угла 4: номер y позиции - Y позиция в диалоге от верхнего левого угла 5: dx номер - горизонтальный размер пункта 6: dy номер - вертикальный размер пункта 7: текст - текст (может быть пустым и заполняться позже) 8: шрифт - имя файла шрифта 9: цвет - цвет текста 10: bkcol - цвет фона 11: выравнивание - выравнивание текста 12: флаги - специфическое значение (ещё не известно полностью) 'S' - текст в вертикальной прокруткой: 0: пропускается 1: 'S'... 2: xxx номер - уникальный Id пункта 3: номер x позиции - X позиция в диалоге от верхнего левого угла 4: номер y позиции - Y позиция в диалоге от верхнего левого угла 5: dx номер - горизонтальный размер пункта 6: dy номер - вертикальный размер пункта 7: текст - текст (может быть пустым и заполняться позже) 8: шрифт - имя файла шрифта 9: цвет - цвет текста 10: цвет2 - цвет полосы прокрутки 11: выравнивание - выравнивание текста 'E' - отредактированный текст: 0: пропускается 1: 'E'... 2: xxx номер - уникальный Id пункта 3: номер x позиции - X позиция в диалоге от верхнего левого угла 4: номер y позиции - Y позиция в диалоге от верхнего левого угла 5: dx номер - горизонтальный размер пункта 6: dy номер - вертикальный размер пункта 7: текст - текст (может быть пустым и заполняться позже) 8: шрифт - имя файла шрифта 'V' - SMK или BIK видео: 0: пропускается 1: 'V'... 2: xxx номер - уникальный Id пункта 3: номер x позиции - X позиция в диалоге от верхнего левого угла 4: номер y позиции - Y позиция в диалоге от верхнего левого угла Видео выводится поверх любых других пунктов диалога и не имеет поддержки 'hint' описания. Это значит, что вам нужно следить, чтобы видео не вылазило за границы окна диалога, чтобы не получить проблем с перерисовкой. Также вы можете использовать только одно видео за диалог. Примечания: Вы можете хранить больше одного диалога в файле шаблона. Вы не должны использовать одинаковые Id диалогов в различных файлах шаблонов. Каждый диалог должен иметь свой унильный Id. Это также значит, что некоторые Id будут заняты под WoG-диалоги. Пункт с номером 30721 - пункт отмены по умолчанию. Так, если игрок нажимает кнопку ESC когда выведен диалог - он закроется ( диалог, а не игрок =))) ). Примечание Demiurg'a: Для создания шаблона с диалогом необходима специальная программа TextEdit. Смотрите пункт 10.I по этой ссылке -------------------- |
|
|
07 Aug 2007, 18:24
Сообщение
#10
|
|
Banished Сообщений: 1 782 Спасибо сказали: 116 раз |
ERM-help в формате chm, версия 2.0
Скачивать с сайта, прямая ссылка: http://dracolich.narod.ru/ERM-Help.rar Добавлено ([mergetime]1186500271[/mergetime]): В случае любых неполадок с текстом и т.п. сообщите мне. Постараюсь исправить. -------------------- |
|
|
22 Aug 2007, 19:23
Сообщение
#11
|
|
Banished Сообщений: 1 782 Спасибо сказали: 116 раз |
Обновил справку, версия 2.10
Добавлено новое содержание, исправлены некоторые ошибки, добавлено информации. Скачивать с сайта, ссылка та же: http://dracolich.narod.ru/ERM-Help.rar -------------------- |
|
|
09 Jan 2008, 16:58
Сообщение
#12
|
|
Banished Сообщений: 1 782 Спасибо сказали: 116 раз |
Обновлена справка до версии 2,3.
http://dracolich.narod.ru/ERM-Help.rar -------------------- |
|
|
18 May 2008, 18:08
Сообщение
#13
|
|
пират с чёрной меткой Сообщений: 23 645 Спасибо сказали: 12919 раз |
Код Устанавливает специфический отзыв ИЛИ изменяет текущий указатель мыши. # - вид действия 1 - закрыть диалог, вернуть код 1000+# - установить текущий указатель, как # (смотрите формат PM2) Комментарии: Для этой команды вам не нужно, чтобы установить диалог Id в триггерной части DL. Это влияет на активный диалог и любой элемент. Пример: !!DL:C1; - закрыть диалог !!DL:C1000; - изменить указатель мыши на стрелу (стандартный указатель) !!DL:C1042; - изменить указатель мыши на 'Затопить корабль' Добавлено ([mergetime]1211123287[/mergetime]): Не особо литературно, но понятно. Хотя без моей правки тоже не обошлось... Хорошая вешь - 5-я Pragma -------------------- Давший быка на убой не выпросил и печень на жаркое.
|
|
|
18 May 2008, 22:25
Сообщение
#14
|
|
Newbie Сообщений: 37 Спасибо сказали: 1 раз |
Код [b]C#[/b] Установить особое callback-действие[0], или изменить текущий вид курсора. # - тип действия 1 - закрыть диалог и возратить данный код в качестве результата 1000+# - новый вид курсора (см. формат PM2) Комментарии: Вам не нужно указывать идентификатор диалога в событии DL для этой команды, так как она работает с активным диалогом и любым его элементом. Пример: !!DL:C1; - закрыть диалог !!DL:C1000; - изменить курсор мыши на "стрела" (стандартный игровой курсор) !!DL:C1042; - изменить курсор мыши на 'Потопить корабль' [0] - callback-действие (или функция в программировании) - это действие, кторое будет исполнено (вызвано, если речь идёт о функции) по выходу из текущего блока кода (обычно функции). На примерах Славы (ZVS) видно, что при каждом событии диалога (таким, как движение мышью) вызывается определённая ЕРМ-функция, которая и управляет всей остальной логикой. В функции мы выбираем, на какие действия как реагировать, а что игнорировать. Команда DL:C1 была бы обычной функцией, если бы закрывала диалог и тут же выходила из текущего блока кода. Но выполнения кода идёт вплоть до конца события (криво именуемого триггером). Вот вам пример. Код ...
!!DL:P12345; !?FU12345; !!DL:C1; команда закрытия диалога !!IF:M^Выполнение функции идёт до конца. Вы видите это сообщение. Диалог закроется в конце события^; ; здесь ерм наткнётся на конец события и вызовет нашу возратную (callback) C1, которая и закроет диалог. |
|
|
18 May 2008, 22:54
Сообщение
#15
|
|
Newbie Сообщений: 37 Спасибо сказали: 1 раз |
Что такое диалог? Как эта хрень работает?
(размышления пьяного солдата) © Unknown. Обычное положение дел в Героях: 1) Есть окно, которое мы видим и в котором играем. 2) Windows постоянно шлёт этому окну всякие сообщения, класса "юзер двинул мышкой", "юзер снова двинул мышкой", "юзер соизволил нажать левую клавишу", "юзер давит ALT+F4 - выйти, или послать его НА?", "а не пора ли тебе бы, окно, перерисоваться?" 3) сами Герои постоянно получают сообщения от Винды и реагируют на них. Например, реакция на щёлчок по определённой игровой кнопке (утрировано) Код Функция, отвечающая за обработку событий окна Если событие = щелчок_левой_кнопкой_мыши, то: Если мышь.позиция.х>=100 и мышь.позиция.x<=200 и (тоже самое с y), то игрок нажал на кнопку "Настройки" и нужно что-то делать... Если событие=клавиатура и юзер жмёт "ALT+F4", то спросить этого редиску, а "ДЕЙСТВИТЕЛЬНО ЛИ ОН ХОЧЕТ ВЫЙТИ?". Если нет (юзер в здравом уме), то хорошо, иначе шлём окну сообщение о закрытии. Если... Если.... Конец функции, отвечающей за обработку сообщений для окна. Что такое диалог? Диалог - это создание нового окна внутри геройского со своей функцией обработки сообщений. Причём Герои уже в пролёте, сообщений их окно не получит. Диалог может иметь графическое отображение (настраивается через тхт-шаблон), а может использовать отображение окна Героев (как и сделано в примерах). Пример нехорошего диалога: Код ЕРМ-код Создаём диалог. Назначаем функцию 12345 ответственной за обработку сообщений. Функция 12345. Если событие = движение мышкой, то выведи-ка сообщение: "Дорогой чайник! Если ты ещё не понял, ты попал в плен нехорошего скрипта (автор - hippocamus, когда будешь стрелять, напомни, что это я, скрипт, указал на него). Чтобы ты тут не жал, как бы не щёлкал - ничего не будет. Ты даже игру сохранить не можешь. Максимум - жми CTRL+ALT+DEL". Если событие = "ALT+F4", то вывести сообщение: "Парень, ты чего, болен? Хочешь закрыть геройское окно? И это после того, как наигрался в пиратскую версию такой хороший игра? Короче, сиди и не высовывайся. ЕРМ рулит. Когда будешь стрелять в hippocamus-a, не забудь ему припомнить всё, что ты сейчас испытываешь". Конец функции. Каким же должен быть диалог? Диалог (или окно) должен регировать корректно на нужные сообщений и обязательно должен при определённых обстоятельствах закрываться, возвращая управление Героям. |
|
|
23 Jun 2008, 23:00
Сообщение
#16
|
|
Banished Сообщений: 1 782 Спасибо сказали: 116 раз |
ERM-Manual 2.4 с поддержкой команд TE.
Ссылка -------------------- |
|
|
16 Sep 2008, 10:30
Сообщение
#17
|
|
пират с чёрной меткой Сообщений: 23 645 Спасибо сказали: 12919 раз |
Драколич, добавь на досуге вот такую команду для TE:
Цитата есть ещё глобальный запрет построек... (работает для ТЕ)
Цитата: New command CD:B Syntax: B0/town/struct/ENdis - global enable/disable structure... Details: B0/#1/#2/$; Enable/disable #2 structure to build in any towns of #1 type. $ - flag (0=disabled, 1=enabled). Например, !#CD:B0/7/2/0 - запрет гильдий 3 уровня для всех "Крепостей" (с самого старта игры) -------------------- Давший быка на убой не выпросил и печень на жаркое.
|
|
|
18 Sep 2008, 13:50
Сообщение
#18
|
|
Banished Сообщений: 1 782 Спасибо сказали: 116 раз |
Сорри, но у мну нет компа под рукой с исходниками )
Потому справка пока заморожена ) -------------------- |
|
|
18 Sep 2008, 15:30
Сообщение
#19
|
|
пират с чёрной меткой Сообщений: 23 645 Спасибо сказали: 12919 раз |
НУ ладно. на будущее
И ещё UN:C для статистики добавь. C#1/#2/$3; прочитать-записать участок памяти начиная с #1, длиной #2 в/из переменную $3. -------------------- Давший быка на убой не выпросил и печень на жаркое.
|
|
|
23 Sep 2008, 20:26
Сообщение
#20
|
|
пират с чёрной меткой Сообщений: 23 645 Спасибо сказали: 12919 раз |
В списке объектов (таблица типов объектов) нужно добавить:
40 Декоративный объект 217 Жилище существ фиксированного уровня 218 Жилище существ, привязанное к городу -------------------- Давший быка на убой не выпросил и печень на жаркое.
|
|
|
Текстовая версия | Сейчас: 24 April 2024 - 00:51 |
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |