Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 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
FANaTWOG
Какой бы операцией тип монстра в СЛОТЕ записать в переменную (действие происходит на карте приключений, точнее при посещении объекта)?

Типа, герой посещает объект, потом типы монстров из всех его слотов вписываются в переменные...
Demiurg
Цитата(FANaTWOG @ 25 May 2007, 00:56)
Какой бы операцией тип монстра в СЛОТЕ записать в переменную (действие происходит на карте приключений, точнее при посещении объекта)?

Типа, герой посещает объект, потом типы монстров из всех его слотов вписываются в переменные...

используй !?OB - герой посещает объект
потом !!HE-1:C0 - для определения количества монстров в стеках.
FANaTWOG
Цитата
потом !!HE-1:C0 - для определения количества монстров в стеках.


Я тоже так думал, но в хелпе написано "изменить монстров", "установить НОВЫЙ тип монстра"... unsure.gif
Demiurg
Цитата(FANaTWOG @ 25 May 2007, 10:19)
Цитата
потом !!HE-1:C0 - для определения количества монстров в стеках.


Я тоже так думал, но в хелпе написано "изменить монстров", "установить НОВЫЙ тип монстра"... unsure.gif

Вот выдержка из хелпа:
Код
C0/#1/$2/$3  Set/get monsters by hero slot
 #1 - hero's slot number (slots are numbered 0..6)
 $2 - monster type (Format C)
 $3 - number of monsters

 This command may be used to determine which creatures a hero has in his or her army slots, and also the number of those monsters in each slot. It can also be used to change the type or number of creatures in that slot. Use the 'd' modifier (as usual) for a relative change. e.g., !!HE-1:C0/0/d/d5; This would add 5 creatures of the same type to the current hero's first army slot (slot 0).
Note:
a value of -1 for type means none.


Можно конечно с помощью этой команды и изменять тип монстра. Но если ты не собираешься менять тип, то как в примере используй d. Это сохранит тип неизменным.
Чтобы получить количество монстров в 4 слоте у текущего героя в переменную v5, нужно использовать команду:
!!HE-1:C0/4/d/?v5
Также нужно обратить внимание, что на картинке этот слот будет по счету 5ым, так как нумерация идет с нуля.
FANaTWOG
Еще нужно, чтобы в мессаге отображался результат какой-нибудь переменной.

Например,
!!IF:M^.............(v7555)...........^;

Как мне ее туда воткнуть? Через %v7555 не получается...
Demiurg
Цитата(FANaTWOG @ 25 May 2007, 11:12)
Еще нужно, чтобы в мессаге отображался результат какой-нибудь переменной.

Например,
!!IF:M^.............(v7555)...........^;

Как мне ее туда воткнуть? Через %v7555 не получается...

В хелпе кажись написано. Чтобы показать переменную в сообщении нужно писать с большой буквы.
Например:
!!IF:M^v7555=%V7555^;
Bes
Тут где-то ранее вроде SnoRT кому-то объяснял насчёт установки реки на карте через скрипт... я тогда решил что мне это не пригодится и "пропустил вимо глаз"... а тут вчера, читая справку, решил сделать появление тропы, оказалось что лучшебы я тогда изучил наставления... у меня Герои ругаются на !!TR0/2/0:d/d/d/d/01/0E/d/d; кусок дороги... говорят мол что неправильно что-то я делаю... я уже пробовал заполнять все цифры и всё бестолку...
Подскажите, может я чего-то неулавливаю и тупо banghead.gif ?
Serco
!!TR0/2/0:d/d/d/d/01/0E/d/d; - бред... А где индекс опции?
Должно быть: !!TR0/2/0:Td/d/d/d/01/0/d/d;
Рогатый Змий
Как избавить медузу от ее заклятия(превращение в камень)
при помощи ерм??
Berserker
Это вопрос тонкий, у меня лишь есть идея.
Ставь ей перед ударом тип гнола, после удара медузы.
Рогатый Змий
!#MA:X76/?v2;
!#VRv2:|0;
!#MA:B76/v2;
написал но работать не хочет...
типа 76 монстр может использовать $ закклинаний за битву
у меня $=0
в ерм прочитал
Deo
Это не заклинание считается для медузы... У ангелов и сказочных драконов к примеру - заклинания.
Black Phantom
У меня вопрос: в WoG 3.59 будут ли реализованы новые возможности ERM?
SnoRT
Конееечно... Да ещё какие wub.gif
FANaTWOG
Необходимо сделать такой кусок функции:

Во время битвы - при наведении на любой свой дружественный юнит менялся курсор. (что будет дальше-напишу сам rolleyes.gif )

Можно ли как нибудь накрутить с помощью ERM 3.58 ? Или опять,как всегда, "невозможно"? unsure.gif
Demiurg
Цитата(FANaTWOG @ 01 Jun 2007, 20:37)
Необходимо сделать такой кусок функции:

Во время битвы - при наведении на любой свой дружественный юнит менялся курсор. (что будет дальше-напишу сам rolleyes.gif )

Можно ли как нибудь накрутить с помощью ERM 3.58 ? Или опять,как всегда, "невозможно"? unsure.gif

С помощью 3.58 точно нет. Да и ТЕ кажись не под силу пока.
FANaTWOG
Цитата
С помощью 3.58 точно нет.


banghead.gif banghead.gif banghead.gif banghead.gif banghead.gif banghead.gif

Блин, ну что ни захочу написать - все нельзя!!!!!!!!!

WOG TEAM, может до выпуска wog 3.59 выпустите сначала екзешник (все команды ERM ведь там хранятся?) - wog 3.59 еще когда будет, хоть erm будет поновее, как утешительный приз... good.gif
Berserker
Неверный ответ. Можно. В фениксе реализован полный перехват наведения, определения монстра и вычисления урона !?MM. юзай, затем отключай ошибки и пробуй взять координаты клетки и т.д. ЕРМ-команд хватает. Напоследок, список возможных курсоров приведён в справочнике.
FANaTWOG
Тьфу ты, совсем забыл! Нужна еще проверка на ход монстра. Например, триггер должен срабатывать только во время хода Архимага.
Demiurg
Цитата(FANaTWOG @ 01 Jun 2007, 23:11)
Тьфу ты, совсем забыл! Нужна еще проверка на ход монстра. Например, триггер должен срабатывать только во время хода Архимага.

Есть триггер !?BG
это то, что тебе нужно
срабатывает при каждом действии стека
FANaTWOG
Цитата
Есть триггер !?BG


Ой, что-то я совсем туплю.wacko.gif Не первый раз ведь его использую...
FANaTWOG
Хм... давно мучает вопрос: чем отличается "!!" от "!#" При замене ничего необычного не происходит...unsure.gif
Demiurg
Цитата(FANaTWOG @ 02 Jun 2007, 14:56)
Хм... давно мучает вопрос: чем отличается "!!" от "!#" При замене ничего необычного не происходит...unsure.gif

Выдержка из хелпа:
Код
Finally, instructions are just like receivers, except that they run only one time- when the map begins. They always begin with  !#
FANaTWOG
Как при помощи ERM (3.58f) снова "оживить" монстра.
Допустим в начале големов было 1, потом их убили - как сделать, чтобы на battlefield'е они снова "поднялись". Расчеты уже сделаны (сколько их прибавится, сколько здоровья и.т.п), необходимо только поменять их флаг на "живой".

Поменял флаг на живой в !!BM:F$ (200000h - недокументирован) - монстр "поднялся" и стал ходить, но стек все равно считается "мертвый". После перемещения голем раздвояется. shok.gif
Фух, намучаюсь я с этим resurection для големов... Есть второй вариант - удалить мертвый стек и вызвать в эту же позицию голема, можно ли как нибудь удалить мертвый стек с поля боя? Пробовал поставить флаг на "вызванный" - стек исчезал, но раздвоение все равно остается... idontno.gif
SnoRT
А не пробовал менять количество монстров в стэке?
FANaTWOG
Конечно, менял. Вчера попробовал написать еще один вариант - дать флаг живой, кастонуть RESURECTION, потом снять флаг и провести расчеты. НАКОНЕЦ-ТО ЗАРАБОТАЛО. Теперь гремлины чинят и воскрешают големов,гаргулий катапульты и прочую механику...
Кстати, если интересно, могу этот скрипт ремонта выложить...когда полностью допишу и оптимизирую...Хочу еще дать возможность феям воскрешать элементалей.
Black Phantom
А можно ли добавить в игру больше 100 скриптов?
Demiurg
Цитата(Black Phantom @ 04 Jun 2007, 15:41)
А можно ли добавить в игру больше 100 скриптов?

1) Вообще говоря, вопрос не по теме.
2) Большого смысла не имеет, так как есть копипаст и можно скрипты объединять.
3) Увеличить число скриптов должно быть не сложно. Возможно в 3.59 сделают.
gamecreator
Цитата(Black Phantom @ 04 Jun 2007, 14:41)
А можно ли добавить в игру больше 100 скриптов?

в 3.59

зы. юзай поиск
Demiurg
Возможна ли вставка нового объекта в игре с помощью команды !!UN:I?
Под новым подразумевается объект комбинации тип-подтип которого нет в 3.58f и добавленный самостоятельно в Zeobjts.txt и Zobjcts.txt
И еще просьба объяснить - зачем нужен файл Zobjcts.txt?
Deo
Да, можно вставлять в игру через UN:I новые объекты прописанные тобой в Zeobjts.txt и Zobjcts.txt.
Demiurg
Спасибо, Део.
Благодаря тебе я обнаружил еще один глюк ЕРМа.
Похоже прийдется отказаться от макросов.
!!MCv7549:S@objtype@;
!!MCv7548:S@objsub@;
!!VR$objtype$:S40;
!!VR$objsub$:S99;
Команда вида:
!!UN:Iv24/v25/v26/$objtype$/$objsub$/d/1; не работает.
А команда
!!UN:Iv24/v25/v26/40/99/d/1; работает вполне корректно.
Demiurg
В чем отличия формата ЕРМ от обычного текста?
В блокноте ЕРМ скрипты выглядят не очень. Но в Bred 3.0 вполне можно писать скрипты.
Для чего нужно знать эти отличия?
Появилась идея - написать программу, которая будет заменять макросы на переменные. Писать скрипт удобнее с макросами, особенно когда в нем несколько сотен строк, десятки переменных и функций. Но макросы судя по всему страшно глючат. Кроме того их нельзя выключить. Поэтому, после того как скрипт написан, хотелось бы иметь утилиту, которая заменит макросы на соответствующие им переменные.
FANaTWOG
Необходимо вычислить количество ВСЕХ героев на карте (всех игроков).
Так вот !!UN:U вычислит тех героев, которые сидят в городе? Если нет, то каким способом получить количество и "прозондировать" всех героев? Необходимо применить кое-какую функцию к КАЖДОМУ из них, независимо, в городе они или на карте...
Demiurg
Цитата(FANaTWOG @ 08 Jun 2007, 14:45)
Необходимо вычислить количество ВСЕХ героев на карте (всех игроков).
Так вот !!UN:U вычислит тех героев, которые сидят в городе? Если нет, то каким способом получить количество и "прозондировать" всех героев? Необходимо применить кое-какую функцию к КАЖДОМУ из них, независимо, в городе они или на карте...

Наверное, лучше запустить в цикле по всем игрокам
!!OW:H
gamecreator
Цитата(Demiurg @ 08 Jun 2007, 13:28)
Но в Bred 3.0 вполне можно писать скрипты.

потому что там есть возможность бесконечных строк
Demiurg
Цитата(gamecreator @ 08 Jun 2007, 15:48)
Цитата(Demiurg @ 08 Jun 2007, 13:28)
Но в Bred 3.0 вполне можно писать скрипты.

потому что там есть возможность бесконечных строк

Не так. Там оно отображается вполне нормально. Также как скрипт только без подсветки естесно
gamecreator
Цитата(FANaTWOG @ 08 Jun 2007, 14:45)
Необходимо вычислить количество ВСЕХ героев на карте (всех игроков).

Код
!?FU17; - ну это к примеру (просто некоторые даже не знают что номера функций и переменных можно менять *косится на тех, кто не понимает его условные обозначения в скриптах*)
!!HEx16:O?i;
!!VRv10&i>-1:Sd1;

!#VRv10:S0;
!#DO17/0/155/1;

- в переменной v10 будет количество героев на карте

Добавлено ([mergetime]1181304105[/mergetime]):
Цитата(Demiurg @ 08 Jun 2007, 14:52)
Не так. Там оно отображается вполне нормально.

Если не будет непрерывных строк, то вог просто не поймет скрипт и скажет об ошибке (в лучшем случае).
А отображение зависит от шрифта. Установи в блокноте Courier (или Courier New).
Berserker
Демиург, тут всё просто. ЕРМ-парсер считывает null-terminated строки, а блокнот и бред (тоже) строки отмечают вдумя символами #13 и #10, (как и во всей досо-виндоус системах). Вот и приходится ЕРМ-редактору при сохранении заменять последовательность этих $D$A на $0. Иначе проблемы.
Demiurg
Цитата(Berserker @ 08 Jun 2007, 20:15)
Демиург, тут всё просто. ЕРМ-парсер считывает null-terminated строки, а блокнот и бред (тоже) строки отмечают вдумя символами #13 и #10, (как и во всей досо-виндоус системах). Вот и приходится ЕРМ-редактору при сохранении заменять последовательность этих $D$A на $0. Иначе проблемы.

Практически так.
Выяснилось, что
Скриптер завершает обычные строки одним символом #10. А последнюю строку двумя #10#13.
Бред может понимать как обычные файлы, где строки завершаются #13#10, так и файлы, где строки завершаются просто #10. И подстраивается под формат файла при форматировании. То есть можно открыть ерм-файл в Бреде, подредактировать, сохранить и скрипт по-прежнему будет работать.
gamecreator
в бреде можно сделать эти самые \0 строки.
настройки - параметры - настройки по умолчанию - курсор может выходить за края строк
FANaTWOG
Скриптеры, помогите!!! kap.gif

Необходимо получить, какой навык был выбран при получении уровня в окне выбора скилла. Согласен на любую функцию, даже с крутыми наворотами!

P.S. ERM 3.58f.
Demiurg
Цитата(FANaTWOG @ 09 Jun 2007, 16:07)
Скриптеры, помогите!!! kap.gif

Необходимо получить, какой навык был выбран при получении уровня в окне выбора скилла. Согласен на любую функцию, даже с крутыми наворотами!

P.S. ERM 3.58f.

Нету такой. Даже в ТЕ.
Deo
Можно вот так сделать:
запомнить какие навыки были до получения уровня,
затем сравнить их с тем что стало после получения,
сделать вывод.
Demiurg
Цитата(Deo @ 09 Jun 2007, 17:07)
Можно вот так сделать:
запомнить какие навыки были до получения уровня,
затем сравнить их с тем что стало после получения,
сделать вывод.

А как узнать?
Триггер !?HL срабатывает до появления окошка с выбором. Посттриггера !$HL нету. Как узнать, что герой только что выбрал навык и закрыл окошко?
Deo
Можно использовать триггер посекундный !?TL0

Добавлено ([mergetime]1181397804[/mergetime]):
Млин, там же для 3.58 тада не знаю..
Demiurg
Мне допустим интересно было бы, как сделать под ТЕ.
У меня возникла мысль про таймер, но игрок может увидеть окошко с выбором и пойти пить чай.
Berserker
Так же обстоит дело с с посттриггером сохранения. Я для феникс-мода сделал доболнительный файл сохранения и загрузке, а оказалось, что мало того, что нет посттриггера сохранения,триггер возникает уже тогда, когда файл обнулён и открыт! Пришлось два дня мучиться sad.gif
Вариантов нет в данном случае.
FANaTWOG
Цитата
Можно вот так сделать:
запомнить какие навыки были до получения уровня,
затем сравнить их с тем что стало после получения,
сделать вывод.


Я уже думал об этом, но номер навыка больше 8 - он не прибавляется, поэтому и хотел сам его прибавить...

Другой вопрос: необходимо написать условие-сброшен флаг под номером v8400.
Я написал !!FU&-v8400:E; - ругается... fie.gif
Demiurg
Цитата(FANaTWOG @ 10 Jun 2007, 00:00)
Я уже думал об этом, но номер навыка больше 8 - он не прибавляется, поэтому и хотел сам его прибавить...

Похоже ты неправильно действуешь. У героя можно установить хоть все вторичные навыки, независимо от номера. Но отображаться будут только 8.
Цитата
Другой вопрос: необходимо написать условие-сброшен флаг под номером v8400.
Я написал !!FU&-v8400:E; - ругается... fie.gif

Хранить в переменной номер флага имхо извращение. Можно хранить в переменной сразу значение флага или даже нескольких флагов (до 32).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.