Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ваше отношение к скриптам ЕРМ?
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды > Скрипты
sergroj
Вот такой опрос
Aleee
И что же было в Disciples?
Хмм..
В Disciples 2 присутствует редактор карт, в который встроен редактор скриптов. В нём всё сделано на основе диалогов. Добавить событие - добавить действие. У некоторых есть поля для параметров. В итоге для Disciples желающие писали РПГ, квесты, кампании.
Для того, чтобы писать скрипты, не нужно было ничего учить, не нужно было и постоянно обращаться за справкой в мануал, которого по скриптам и не было.
FBX
и что, там получалось что-то интересное?
DracoLich
В принципе, были золото-рукие строители, мастерили потрясные карты. $) Но все уходит...
gamecreator
то, что было в дисцайплах я так понимаю уже реализовано http://forum.df2.ru/index.php?showtopic=93...ndpost&p=142010
а где вариант наподобие (что собсно и будет в 3.59 - Lua):
Не пишу, но писал бы, если бы был простой язык их написания, как Pascal, без всяких заморочек.
Efrit
Думается мне, что Сергрой ещё успеет по Луа опрос провести smile.gif

Кстати, надо будет как-нибудь сделать что-типа ERM Scriptera, только для Lua. Если никто меня не опередит - займусь smile.gif
MasterOfPuppets
Да-с. ERM действительно громоздок. Но его возможности не дали мне в нём разочароваться.)
Монца
Испытываю неприязнь к скриптовым языкам( И к erm тоже
major
обязательно
sergroj
Этот опрос нужен Берсу, я только создал. как там с мотороллером было?

Цитата(Хмм.. @ 05 Jan 2009, 22:47)
В Disciples 2 присутствует редактор карт, в который встроен редактор скриптов. В нём всё сделано на основе диалогов. Добавить событие - добавить действие. У некоторых есть поля для параметров.

Как в Heroes 4?

Цитата(gamecreator @ 06 Jan 2009, 00:38)
то, что было в дисцайплах я так понимаю уже реализовано http://forum.df2.ru/index.php?showtopic=93...ndpost&p=142010

Там только попытка сделать такое для наиболее используемых команд.

Цитата(gamecreator @ 06 Jan 2009, 00:38)
а где вариант наподобие (что собсно и будет в 3.59 - Lua):
Не пишу, но писал бы, если бы был простой язык их написания, как Pascal, без всяких заморочек.

А че по нему создавать? Он и так есть. Хотя пункт подобный стоит добавить.

Цитата(Efrit @ 06 Jan 2009, 00:40)
Кстати, надо будет как-нибудь сделать что-типа ERM Scriptera, только для Lua. Если никто меня не опередит - займусь smile.gif

Есть LuaEdit. Бесплатный, с сорсами, только глючный. Если поисправляешь в нем глюки, будет хорошо smile.gif Я с ним застрял на стадии "надо скачать компоненты, которые там используются". Еще надо будет делать для него список автозаполнения с командами ЕРМ и полезно будет немного расширить возможности автозаполнения.
Aleee
Пропихивание своих тем в более популярные разделы, даже если им там не место, привилегия любых модераторов.
WarZealot
Aleee - чего-то ты все ворчишь, кряхтишь))) Хотя, вообще-то да. Есть специальный раздел - "Скрипты" для таких тем.
gamecreator
у меня глюки или эта тема изначально была в скриптах?
GORynytch
Не хватает варианта: Писал бы, если бы был компьютер. А так голосую за 4.
sergroj
Опрос для в первую очередь для тех, кто не пишет скрипты, поэтому решил переместить.
Хмм..
Цитата(sergroj @ 06 Jan 2009, 14:14)
кто не пишет скрипты

Тогда первый вариант ответа - лишний
Efrit
Там же сказано, что "в первую очередь", но не "лишь"...

Думаю, что в заголовке темы стоит написать ERM перед словом "скриптам", потому как уже есть Луа. Далеко не все знают, что же вообще такое - скрипты для Героев.

PS. Сам же я их, естественно, пишу smile.gif
Docent Picolan
вообще тема действительно была намного более уместна в скриптах.
Tamerlan
Проголосовал за 2 вар. Хотя на самом деле писать скрипты пытаюсь...
Light mage
Я за 3 проголосовал. Я скрипты в 3 Героях не писал и не пишу. Мне например в 5 героях писать легче.
Efrit
А разве в пятёрке нет Луа?
sergroj
Она самая.
Efrit
Тогда Light mage следует проголосовать за пункт 4...
SAG19330184
Проголосовал что "пишу". Для меня важнее чтобы добавили возможностей ERM, а не внешняя красота и удобство. Пока куда не сунься везде глюки, и ограничения. Для примера: OW некорректно ставит фокус на героя, не получилось запустить функцию в виде инструкции, невозможно сделать шаблон диалога который на экране только во время клика (вроде в Эре можно, но как??), нет возможности расширить список стартовых героев на этапе генерации карты, не работает установка типа героя HE:B2, невозможно запихнуть героя в гарнизон с экрана карты и т.д.
sergroj
Цитата(SAG19330184 @ 07 Jan 2009, 20:17)
не получилось запустить функцию в виде инструкции

надо, чтобы определение функции шло до использования. Или используй !?PI

Цитата(SAG19330184 @ 07 Jan 2009, 20:17)
невозможно сделать шаблон диалога который на экране только во время клика (вроде в Эре можно, но как??)

С помощью UN:C и вызова функций геройского ехешика. Че-то ты в аське не появляешься.
SAG19330184
Цитата(sergroj @ 07 Jan 2009, 20:49)
Цитата(SAG19330184 @ 07 Jan 2009, 20:17)
не получилось запустить функцию в виде инструкции

надо, чтобы определение функции шло до использования. Или используй !?PI

ну вот очередной недокументированный нюанс (или это я что то недочитал в мануале?). Насчет !?PI - не пойдет, т.к. оно выполняется после триггера !?HL, а мне нужно до.
Цитата(sergroj @ 07 Jan 2009, 20:49)
Цитата(SAG19330184 @ 07 Jan 2009, 20:17)
невозможно сделать шаблон диалога который на экране только во время клика (вроде в Эре можно, но как??)

С помощью UN:C и вызова функций геройского ехешика. Че-то ты в аське не появляешься.

Уже теплее но все равно недостаточно информации smile.gif В аське еще недели две не появлюсь - я вне дома.
MasterOfPuppets
Цитата
или это я что то недочитал в мануале?

Да, написано:

> Если вы вызываете функцию инструкцией, функция должна быть описана до инструкции.
sergroj
Цитата(SAG19330184 @ 08 Jan 2009, 04:03)
Уже теплее но все равно недостаточно информации smile.gif

Ну конечно, это только общие слова smile.gif
Wic
Пишу, но редко и мало. Основная причина - отсутствие внятно и последовательно изложенной теории ЕРМ. Информация обрывочная, неструктурированная, требует много личного времени и усилий на формирование собственного представления.
Ganymed
Цитата(Wic @ 08 Jan 2009, 21:13)
Пишу, но редко и мало. Основная причина - отсутствие внятно и последовательно изложенной теории ЕРМ. Информация обрывочная, неструктурированная, требует много личного времени и усилий на формирование собственного представления.


Очень здравый комментарий относительно учебника по ERM.
Мне кажется, что удобнее всего было бы исходить, при подаче материала в учебнике по скриптовому языку (не важно, ERM или Lua), прежде всего из потребностей скриптописца и давать материал СТРУКТУРИРОВАННО, т.е. разместить его по тематическим разделам, либо "от простого к сложному", либо по операциям (с героями, с объектами, с монстрами и т.д.).
А самым идеальным вариантом было бы сделать опционарий по типу: "Что нужно?" - "Что есть".
Tamerlan
ПЕРЕГОЛОСОВАЛ ЧТО ПИШУ.ХОТЬ Я И НОВИЧОК, сори забыл выключить Сарs Lоск. Так вот- перенесите тему в скрипты. Там ей самое место.
SAG19330184
А по мне - нормально структурировано и учебник есть (по крайней мере на англ). Кое что конечно можно дополнить, особенно примеров накидать побольше. Может просто кто то юзает не ту справку? smile.gif
Efrit
Да учебник и на русском есть - зайди по ссылке в подписи Драколича...
Tamerlan
ДЕЙСТВИТЕЛЬНО В ПОДПИСИ ДРАКОНЛИЦА ХОРОШИЙ УЧЕБНИК. нО ОПЯТЬ ЖЕ ПРИМЕРОВ МАЛО. Черт! опять забыл выключить Сарs Lоск! У меня уже привычка
MasterOfPuppets
Справки-то одинаковые все по структуре. Нигде не видел какую-то необычную, не так сделанную справку.
А Драколичу - вечный респект.
gamecreator
Цитата(Tamerlan @ 09 Jan 2009, 14:13)
Черт! опять забыл выключить Сарs Lоск!

а зачем включал?
sergroj
Цитата(Ganymed @ 09 Jan 2009, 07:45)
разместить его по тематическим разделам, либо "от простого к сложному", либо по операциям (с героями, с объектами, с монстрами и т.д.).

Ну по операциям и сделано. Мне вполне удобно. Иногда, конечно, попадается информация, оторванная от того места, в котором она должна быть.
Tamerlan
Цитата
а зачем включал?

скрипты писал.
Efrit
А куда это пост Корвина пропал?

Да и переместили тему назад зря. Сергрой же писал:

Цитата
Опрос для в первую очередь для тех, кто не пишет скрипты, поэтому решил переместить.
Wic
Где-то классе в 9-м (вроде) взял с собой на дачу книжку по Ассемблеру. В тот момент познания в программировании ограничивались школьным курсом Турбо-Паскаля.

Суммарно часов за 30 чтения данной книжки получил полное представление об этом языке, о принципах функционирования CPU, MSDOS и много чего еще. Компа под рукой не было, вгружал в мозг голую теорию. По возвращению в город сел и начал свободно писать, лишь изредка заглядывая в справочник по командам.

Потому что книжка была хорошо написана, вопросов почти не возникало. По ЕРМ-у же они на каждом шагу возникают, и где искать ответы в общем случае непонятно.

Мануал Драколича скачал, на днях почитаю. Впрочем, уже первые фразы грусть навевают ...


Триггеры:обучение

Введение

Когда игрок активирует триггер, вызываются некие действия одного или более ресейверов. Триггером может быть событие, объект или герой, который посещает другого героя, или это может быть ERM-функцией, вызываемой из другого ERM-кода или события, установленного на определенное время или интервал. Ресейвером может быть событие, герой, объект на карте или другие вещи. Поскольку многие вещи в игре могут быть использоваться как триггеры или ресейверы, важно не перепутать, что куда относится.


Всё страшно понятно и структурированно smile.gif. А-ля "тугрик это то, что не пуфик, а пуфик это то, что не тугрик". В то время как правильный стиль подачи примерно такой:

Тугрик это <дальше определение тугрика>. Пуфик это <дальше определение пуфика, мэй би с использованием определения тугрика>. И так далее.

Курс матанализа в институте хороший пример структурированной и упорядоченной подачи инфы.
MasterOfPuppets
Цитата(Wic @ 09 Jan 2009, 23:45)
книжка была хорошо написана

Wic, а не мог бы ты дать ссылку на электронный вариант это книжки? Или хотя бы указать название и автора? Буду благодарен просто... ну выше крыши.

Добавлено ([mergetime]1231534499[/mergetime]):
Кстати, Драколич не виноват в плохой структуре подачи материала - его делом было лишь перевести.
Wic
Автора и название, увы, не помню. Слишком давно всё это было - еще во времена, когда инет был редкостью. Не факт, что сия книжка существует в электронном варианте.

Теперь по поводу триггеров. Как бы это описал я (в меру своего текущего понимания):

ЕРМ-триггеры для Героев это аналог прерываний (interrupt) для процессора. То есть исходный код Героев модифицирован таким образом, что на многие события повешен внешний обработчик - при возникновении события срабатывает его триггер, передающий управление инструкциям, указанным пользователем (в тексте скрипта). А после отработки этих инструкций управление возвращается обратно коду Героев.
Хмм..
Автор поста: Berserker.

Я как-то начинал курс подачи материала с нуля для SCVS, но бросил на третьей статье, которую случайно стёр, а переписывать было в лом. Тогда только Ганимед заинтересовался.

Действительно, подобный стиль изложения для новичка ужасен.
Нужно гораздо проще. unsure.gif

Цитата
В игре время от времени возникают события, вроде щелчка мышью, посещения объекта или просто наступления нового дня. Я выбираю термин событие вместо буржуйского триггер.


Сам язык ЕРМ строится по шаблону:

Цитата
!?Событие
!!команда1
!!команда2
!!команда3


Команды, не привязанные к какому-либо событию, выполняющиеся только на этапе старта новой игры, называют инструкциями. Хотя логичнее было бы:

Событие: Старт Игры
!!команда1
!!команда2
!!команда3

И не нужно нового синтаксиса.

Как ЕРМ-парсер различает события от команд?

Цитата
!? - идёт перед событием
!! - перед командой
!# - перед инструкцией
!$ - перед "послесобытием" (событие: до посещения и после буквенно одно и то же OB)


Структура команды довольно проста. После двухбуквенного имени команды (зачастую, сокращённое от английского, например CM = Click Mouse = Щелчок мышью) идёт раздел условий, затем символ двоеточия и тело команды.

Код
[b]!![/b][имя команды][параметры][секция условия]:тело команды;


В секции условия может быть две подсекции: ЕСЛИ и ИЛИ. Чтобы условие было истиным, нужно, чтобы выполнились все ЕСЛИ или хотя бы один ИЛИ.

Подсекции условия определяются по первому символу: & - ЕСЛИ, | - ИЛИ, а сами условия отделяются друг от друга обратной косой чертой.

Код
[b]!![/b][color=green]VR[/color]v1[b]&[/b]v2=3[b]/[/b]v4=6:S777;


Присвоить переменной v1 значение 777, если переменная v2 равна трём, а v4 - шести.

Цитата
!!VRv1&v2=3/v4=6|v6=12:S777;


Присвоить переменной v1 значение 777, если переменная v2 равна трём, а v4 - шести или если v6 равно 12, независимо от предыдущих условий.

Мы пропустили параметры. Параметры конкретизируют команду. Привожу ясный пример:

Код
!!HE1/1/0:...;


Здесь мы указываем команду Герой и указываем его координаты. Иначе нам в теле команды пришлось бы всегда дублировать координаты, что, согласитесь, неудобно.

Обычно в параметрах указывается номер героя, координаты города и т.д. - в справочниках всё описано.

Тело команды состоит из однобуквенных подкоманд.

Например: HE:N - работа с номером героя (N = number = номер). В теле команды может быть сколько угодно подкоманд.

Код
HE...:N...C0/...P...;


И т.д...
Имхо, составителям хэлпа нужно было писать подобные туториалы.
hippocamus
Берс, спасибо, действительно такая иструкция нужна.
Если бы ты взялся так расписать самые обычные операции,
работу с переменными, функциями, массивами и памятью -
было бы просто здорово, а Драколич бы добавил это в свой хелп.
У него там есть несколько статей, а если их объединить и привести в такой вид, чтобы новичку было понятно - будет супер.
Tamerlan
и ещё примеров побольше накидать. тогда всё супер
sergroj
Цитата(Efrit @ 09 Jan 2009, 20:03)
Да и переместили тему назад зря.

В принцыпе, сейчас в ней появляется все больше того, что относится к Скриптам. А еще Tamerlan написал забавную жалобу smile.gif

Но переместили, конечно, неправильно, надо было меня спрашивать.
MasterOfPuppets
А можно удалить клон темы? А то как-то неэстетично...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.