Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ERM: Вопросы и ответы
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды > Скрипты
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52
igrik
1. в основном - да, они запрограммированы с помощью ERM
2. смотри скрипт №10 (в эре: №68 вроде)
Michel Strogoff
igrik, хочу напомнить, что я не использую Эру. И позволь интимный вопрос: куда или где смотреть?
igrik
"Data\s\script10.erm". Там он очень короткий.
Описания от него: вроде папка "Rus\script10.ert". Не помню уже структуру каталогов WoG 3.58
Michel Strogoff
У меня возникли проблемы со Снеговиками (это жилище Санта-Гремлинов), когда я первых раз посещаю их, ко мне нанимается один С-Гремлин, а через неделю, ко мне нанимаются аж 224 С-Гремлина. Вогофикацию я не проводил. Можно ли как-то это исправить, уменьшить эту невероятную численность?
feanor
!!DW:M же
Michel Strogoff
Короче, с этими Сантами какие-то проблемы. Снеговики работают так: первый раз можно нанять 1 Гремлина, а во все последующие разы 28 почему-то. На своей карте я "поселил" Сант в город Башня и, похоже, этот скрипт негативно воздействует на Снеговиков, из-за чего Гремлины нанимаются бесплатно и не по 28, а по 224. Словом, нельзя ли это как-то исправить? Чтобы Снеговики производили нужное мне количество Гремлинов. Мне очень нужно. А команда !!DW:M действует лишь одну неделю.
feanor
Цитата
А команда !!DW:M действует лишь одну неделю.

Таймер же.

Впрочем, приду домой, посмотрю, как сделан двеллинг Снеговиков - в Воге фичи ради сделали им подневный прирост насельников вместо понедельного.
DrSlash
Несколько вопросов накопилось...
1) Не работает скрипт
Код
ZVSE
!#HE71:R3/0;
!#HE144:R3/0;

Теоретически он должен запрещать Галтрана и Маллича, но в окне выбора героя в ГСК они присутствуют (точнее, присутствует из них только Галтран, но Маллич у мне всё равно попадался как стартовый)...

2) Не нашёл триггера, чтобы скрипт работал только на случайных картах.

3) Как применить команду !!CA ко всем замкам на карте?
igrik
на первое не подскажу.
Код
// на второе
; © feanor
!!UN:C6919480/4/?y10;         получить адрес ссылки на указатель
!!VRy11:Sy10 +128980;         получить адрес начала имени папки с картой
!!UN:Cy11/1/?y11;             получить первый символ
!!FU&y11<>114:E;              если не 'r' (random_maps), то выйти; 109 - maps; 104 - h2sw )

// на третье
!!UN:U98/-1/?y1;              [узнать кол-во всех замков]
!!DO8368/1/y1/1&y1>0:Py1;     [циклическая функция с проходом по всем замкам]
!?FU8368;
!!VRy1:Sx1 -x16 +1;           [математические вычисления текущего в цикле замка]
!!UN:U98/-1/y1/1;             [узнать координаты текущего в цикле замка]
!!CA1:B6/14 B6/15;            [построить в текущем в цикле замке рынок и хранилище ресурсов]
hippocamus
Цитата(DrSlash @ 13 Feb 2016, 22:07) *
Несколько вопросов накопилось...
1) Не работает скрипт
Код
ZVSE
!#HE71:R3/0;
!#HE144:R3/0;

Теоретически он должен запрещать Галтрана и Маллича, но в окне выбора героя в ГСК они присутствуют (точнее, присутствует из них только Галтран, но Маллич у мне всё равно попадался как стартовый)...
Ну так... ERM начинает работу при старте карты, чего ж ты хотел в меню? С другой стороны, некоторые инструкции и команды не прекращают своей работы при новом рестарте, так что, возможно, при следующем рестарте (или - в следующей карте) они как раз будут запрещены. Особенно если запрет прописывается через UN:C.
Для этого случая используются бинарники. Вот, например, бинарник из Эры, адаптированный мной под ХД - который как раз делает наоборот - разрешает всех героев на случайной карте. Если разберёшься - сможешь сделать наоборот.
shrooman
Подскажите, работает ли ERM с флагами и переменными из внешних данных? Если я правильно понимаю, ERM работает с каждой картой отдельно. При работе с компаниями герой последовательно передвигается из карты в карту. Сможет ли ERM сохранить данные по завершении одной карты, а затем прочитать эти данные в следующей карте?
hippocamus
ERM - нет.
Era - может. Что угодно и куда угодно сохранить и, соответственно прочитать. Хоть свой ini-файл создай для кампании. Но вот не знаю насчёт того, возможно ли это сделать высокоуровнево, без написания собственной dll. Но, насколько помню, что-то подобное там было.
Berserker
Для Эры сохранить данные в ini-файле можно было бы.

Код
!!SN:L^era.dll^/?y1 Ay1/^WriteStrToIni^/?y2 Ey2/0/^key^/^value^/^section^/^Data\myfile.ini^;
!!SN:Ay1/^SaveIni^/?y2 Ey2/0/^Data\myfile.ini^;
Аскал
По ходу игры появилась пара вопросов. Первый - какой файл отвечает за связь двойных двусторонних монолитов между собой? У меня бывают такие баги, что связаны не 2 монолита, а 4. Из одного монолита можно переместиться в 3 другие точки, а не одну. Хочу поправить.
Второе - какой файл отвечает за количество нейтральных замков на карте? Их слишком много в моей версии вога, никакого удовольствия от макроменеджемента с каждым новым замком.. Хочу уменьшить количество нейтральных замков раза в два.
Algor
Аскал, и какой из этих вопросов относится к ERM?
Навскидку, обе твои проблемы решатся, когда ты выберешь другой шаблон для генерации случайных карт.
TiTanK911
Народ нужна помощь,сам не шарю.Есть Script 44 (Изумрудная башня). В нём есть таймер посещения, хотелось бы понять как отключить таймер
или что сделать что бы эту башню можно было посещать постоянно? Просто на данный момент башню можно посетить 1 раз за игру.


Собственно часть скрипта , Если же тут нет нужного могу предоставить весь скрипт.
________________________________________________________________________________
_________
[Таймер сбрасывает статус не посещенных изумрудных башен каждую неделю]

!?TM38;
!!UN:P44/?y-1; [[проверить, включен ли скрипт: y-1]
!!FU&y-1<>1:E; [выход, если скрипт не включен]

!!UN:U63/65/?v1; [количество изумрудных башен: v1]
!!VRv1:S-1; [Инициализац v1 to -1 чтобы работать с новыми быстрее UN:U syntax]
!!DO10910/1/v1/1&v1>0:P; [цикл по всем Изумрудной башни]

-----------------------------------------------------------------------

[Сброс статуса не посещенных для каждой Изумрудной башни]

!?FU10910;

!!UN:U63/65/-1/1; [координаты следующей башни в v1/v2/v3]
!!POv1/v2/v3:N0; [установите PO:N в 0 чтобы сбросить текст подсказки]

-----------------------------------------------------------------------

[Башня с башенками триггер]

!?OB63/65;
!!UN:P44/?y-1; [проверить, включен ли скрипт: y-1]
!!FU&y-1<>1:E; [выход, если скрипт не включен]

[Инициализировать флаг 5 до False]
!!IF:V5/0;

[Сохранение текущего игрока в v2 и преобразование в номер бита игрока]
!!OW:C?v2;
!!VRv2:+550;
!!VRv2:Svv2;

[Проверьте, если текущий игрок AI уже получил улучшенное существо]
[v3=v2 если AI уже получил улучшенное существо]
!!VRv3:Sv1271 &v2;

!!VRv1270:S0; [инициализировать переменную бонуса до 0 ]
!!PO998:N?v1; [Проверьте, посещалась ли башня на этой неделе: v1=1 Если посещалась]

!!IF&v1=1/1000:M1/z144002;

[Выйти из триггера, если башня уже была посещена]
[неделя или AI уже получили улучшенное существо]
!!FU|v1=1/v2=v3:E;
Аскал
Привет всем. В каком файле лежит информация о навыках, в каком - об артефактах?
Хочу некромантию порезать, бонусы непосредственно от навыка, от артефактов и от строения в городе.
igrik
Цитата(Аскал @ 07 Dec 2018, 07:14) *
Привет всем. В каком файле лежит информация о навыках, в каком - об артефактах?
Хочу некромантию порезать, бонусы непосредственно от навыка, от артефактов и от строения в городе.
Лежит в exe. Без навыков программирования ничего не сделаешь.
tolich
Может, он имеет в виду ERM Help?
igrik
Цитата(tolich @ 07 Dec 2018, 10:14) *
Может, он имеет в виду ERM Help?
Скорее всего да, но в хелпе этого нет.
На ERM некромантию подправить можно только через UN:C, но для этого нужно копаться в коде и найти нужные адреса
Richter
Появился вопрос. Можно ли с помощью ERM добавить опыт вызванному на поле боя стеку монстров?
hippocamus
Код
!!EA#:E$1/$2/$3/$4
Можно использовать только в бою
Установить опыт для стека в битве
         $1 – очки опыта
         $2 – модификатор (как для модификатора 6 в HE:C)
         $3 – тип существа
         $4 – количество существ
Вы можете использовать параметр d в $3 и $4, чтобы не изменять тип существа (будет автоматически установлена на корректный тип).
Пример:
!!EA-2:E1000/2/d/d;
Установить (2) очки опыта (1000) для существа в стеке № 1 на поле битвы.
Вы можете использовать эту команду ТОЛЬКО для стека на поле битвы (только отрицательные значения #).
Richter
Где то видел функцию или скрипт "получить вторичные навыки" при получении героем нового уровня (левый правый), а сейчас понадобилось и найти не могу, тоже с отключением экрана повышения уровня. Может кто знает где это найти?
igrik
Цитата(Richter @ 12 Jan 2019, 15:27) *
Где то видел функцию или скрипт "получить вторичные навыки" при получении героем нового уровня (левый правый), а сейчас понадобилось и найти не могу, тоже с отключением экрана повышения уровня. Может кто знает где это найти?
Ищи в моде New_Level_Up_Screen у меня в подписи.

upd: забыл, что там хук я делал плагином, а реализацию мода на ERM.
Вот код хука для ERM.
Код
!?PI; &GM0
!!SN:L^EraPlugins\erm_hooker.era^/?y1;   [проверили плагин]
!!FU&y1=0:E;                             [выход, если его НЕТ]
!!SN:Ay1/^SetHook^/?y2;                  [получить адрес функции SetHook]
!!SN:Ey2/1/5090948/31873;                [хук на диалог повышалки с выбором 2=х втор.навыков]

!?FU31873;
!!SN:X?y3/0;                             [второй аргумент хука — выполнять ли затёртые команды, говорим НЕТ]
; EDI (0), ESI (4), EBP (8), ESP (12), EBX (16), EDX (20), ECX (24), EAX (28)
; RetAddr (32)
!!VRy4:Sy3 +32;                          [y2 указывает на адрес возврата, подменяем его]
!!UN:Cy4/4/5090961;                      [адрес команды следующей за вызовом функции (диалог с 2мя навыками)
Godriov
Здравствуйте, я тут не давно занялся небольшим улучшением героев вог . Написал вроде рабочий скрипт для фьера, чтобы он каждый раз ,как колдует, призывал энергетических элементалей на поле боя, но скрипт получился громоздким, может кто помочь мне оптимизировать его
Код
!?BG0;
!!BG:H?v100;  [Узнаем номер героя]
!!FU&v100<>134:E;  [Если не Фьер то выход  ]
!!BG:A?v101;        [Узнаем тип действия]
!!BG:Q?v111;        [Узнаем сторону на которой наш Фьер]
!!FU&v101<>1:E;     [Если это не каст заклинания то выход ]
!!HE134:F?v18/?v19/?v20/?v21/1;    [Узнаем первичные характеристики Фьера]
!!VRv22:C0/0;                     [Задаю 2 переменным значение 0 иначе глючит, да и правильно видимо не смог все в одну переменную запихать]
!!VRv22:+v18+v19+v20+v21;         [Скаладываем первичные навыки]
!!VRv23:+v22;                     [Передаю их в другую переменную]
!!VRv23*3;                        [Умножаю первичные навыки на 3]
!!BU:O03/?v102;          [Проверяю на свободу клетку на поле боя под номером N]
!!BU:E03/?v103;           [Проверяю нет ли живого юнита на этой же клетке N]
!!VRv102&v103<>-1:+1;      [Если есть юнит присваиваю значению клетки  что она занята]
!!BU&v102=0:S129/v23/03/v111/-1/1;   [Если клетка свободна, вызываю энергетических элементалей в количестве суммы первичных навыков умноженных на 3, в эту клетку на стороне Фьера]
!!FU&v102=0:E;                       [Выход если Элементали вызваны]  [если клетка занята то все тоже самое для следующей клетки, и так много раз]
!!BU:O04/?v102;
!!BU:E04/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/04/v111/-1/1;
!!FU&v102=0:E;
!!BU:O20/?v102;
!!BU:E20/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/20/v111/-1/1;
!!FU&v102=0:E;
!!BU:O21/?v102;
!!BU:E21/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/21/v111/-1/1;
!!FU&v102=0:E;
!!BU:O37/?v102;
!!BU:E37/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/37/v111/-1/1;
!!FU&v102=0:E;
!!BU:O38/?v102;
!!BU:E38/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/38/v111/-1/1;
!!FU&v102=0:E;
!!BU:O54/?v102;
!!BU:E54/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/54/v111/-1/1;
!!FU&v102=0:E;
!!BU:O55/?v102;
!!BU:E55/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/55/v111/-1/1;
!!FU&v102=0:E;
!!BU:O71/?v102;
!!BU:E71/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/71/v111/-1/1;
!!FU&v102=0:E;
!!BU:O72/?v102;
!!BU:E72/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/72/v111/-1/1;
!!FU&v102=0:E;
!!BU:O88/?v102;
!!BU:E88/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/88/v111/-1/1;
!!FU&v102=0:E;
!!BU:O89/?v102;
!!BU:E89/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/89/v111/-1/1;
!!FU&v102=0:E;
!!BU:O105/?v102;
!!BU:E105/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/105/v111/-1/1;
!!FU&v102=0:E;
!!BU:O106/?v102;
!!BU:E106/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/106/v111/-1/1;
!!FU&v102=0:E;
!!BU:O122/?v102;
!!BU:E122/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/122/v111/-1/1;
!!FU&v102=0:E;
!!BU:O123/?v102;
!!BU:E123/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/123/v111/-1/1;
!!FU&v102=0:E;
!!BU:O139/?v102;
!!BU:E139/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/139/v111/-1/1;
!!FU&v102=0:E;
!!BU:O140/?v102;
!!BU:E140/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/140/v111/-1/1;
!!FU&v102=0:E;
!!BU:O156/?v102;
!!BU:E156/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/156/v111/-1/1;
!!FU&v102=0:E;
!!BU:O157/?v102;
!!BU:E157/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/157/v111/-1/1;
!!FU&v102=0:E;
!!BU:O173/?v102;
!!BU:E173/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/173/v111/-1/1;
!!FU&v102=0:E;
!!BU:O174/?v102;
!!BU:E174/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/174/v111/-1/1;
!!FU&v102=0:E;


И еще вопрос можно ли юниту дать после того как он атакует еще одно действие, Просто у меня задумка сделать юнита который сначала стреляет в независимости от того есть ли рядом враг, а после этого идет бить в рукапашную, заранее спасибо.
hippocamus
Цитата(Godriov @ 10 Mar 2019, 02:11) *
Здравствуйте, я тут не давно занялся небольшим улучшением героев вог . Написал вроде рабочий скрипт для фьера, чтобы он каждый раз ,как колдует, призывал энергетических элементалей на поле боя, но скрипт получился громоздким, может кто помочь мне оптимизировать его
Не вникая в суть кода, могу сказать сразу, что подобные части кода надо оформить как функцию.
Код
!!BU:O71/?v102;
!!BU:E71/?v103;
!!VRv102&v103<>-1:+1;
!!BU&v102=0:S129/v23/71/v111/-1/1;
!!FU&v102=0:E;
Гры2
Здравствуйте!
Подскажите, пожалуйста, ERM-скрипты действуют только в ВОГ? Есть возможность встроить или установить ERM на ХОТЕ?
feanor
Нету.
otshelnik
От каких конкретно параметров зависит стойкость монстров на карте (будут ли убегать нейтральные монстры от героя)? Заметил по меньшей мере 2 параметра: ценность для ИИ (!!MA:I) существ у героя и первичные навыки героя. Есть ли какая-нибудь формула, которая бы это обобщала? Как сделать стойкость монстров зависимой от каких-либо текущих параметров игры?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.