Полная версия этой страницы:
ERM: Вопросы и ответы
FANaTWOG
24 May 2007, 23:56
Какой бы операцией тип монстра в СЛОТЕ записать в переменную (действие происходит на карте приключений, точнее при посещении объекта)?
Типа, герой посещает объект, потом типы монстров из всех его слотов вписываются в переменные...
Demiurg
25 May 2007, 00:08
Цитата(FANaTWOG @ 25 May 2007, 00:56)
Какой бы операцией тип монстра в СЛОТЕ записать в переменную (действие происходит на карте приключений, точнее при посещении объекта)?
Типа, герой посещает объект, потом типы монстров из всех его слотов вписываются в переменные...
используй !?OB - герой посещает объект
потом !!HE-1:C0 - для определения количества монстров в стеках.
FANaTWOG
25 May 2007, 09:19
Цитата
потом !!HE-1:C0 - для определения количества монстров в стеках.
Я тоже так думал, но в хелпе написано "изменить монстров", "установить НОВЫЙ тип монстра"...
Demiurg
25 May 2007, 09:47
Цитата(FANaTWOG @ 25 May 2007, 10:19)
Цитата
потом !!HE-1:C0 - для определения количества монстров в стеках.
Я тоже так думал, но в хелпе написано "изменить монстров", "установить НОВЫЙ тип монстра"...

Вот выдержка из хелпа:
Код
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
25 May 2007, 10:12
Еще нужно, чтобы в мессаге отображался результат какой-нибудь переменной.
Например,
!!IF:M^.............(v7555)...........^;
Как мне ее туда воткнуть? Через %v7555 не получается...
Demiurg
25 May 2007, 10:17
Цитата(FANaTWOG @ 25 May 2007, 11:12)
Еще нужно, чтобы в мессаге отображался результат какой-нибудь переменной.
Например,
!!IF:M^.............(v7555)...........^;
Как мне ее туда воткнуть? Через %v7555 не получается...
В хелпе кажись написано. Чтобы показать переменную в сообщении нужно писать с большой буквы.
Например:
!!IF:M^v7555=%V7555^;
Тут где-то ранее вроде SnoRT кому-то объяснял насчёт установки реки на карте через скрипт... я тогда решил что мне это не пригодится и "пропустил вимо глаз"... а тут вчера, читая справку, решил сделать появление тропы, оказалось что лучшебы я тогда изучил наставления... у меня Герои ругаются на !!TR0/2/0:d/d/d/d/01/0E/d/d; кусок дороги... говорят мол что неправильно что-то я делаю... я уже пробовал заполнять все цифры и всё бестолку...
Подскажите, может я чего-то неулавливаю и тупо

?
!!TR0/2/0:d/d/d/d/01/0E/d/d; - бред... А где индекс опции?
Должно быть: !!TR0/2/0:Td/d/d/d/01/0/d/d;
Рогатый Змий
28 May 2007, 14:17
Как избавить медузу от ее заклятия(превращение в камень)
при помощи ерм??
Berserker
28 May 2007, 21:09
Это вопрос тонкий, у меня лишь есть идея.
Ставь ей перед ударом тип гнола, после удара медузы.
Рогатый Змий
29 May 2007, 07:27
!#MA:X76/?v2;
!#VRv2:|0;
!#MA:B76/v2;
написал но работать не хочет...
типа 76 монстр может использовать $ закклинаний за битву
у меня $=0
в ерм прочитал
Это не заклинание считается для медузы... У ангелов и сказочных драконов к примеру - заклинания.
Black Phantom
30 May 2007, 22:55
У меня вопрос: в WoG 3.59 будут ли реализованы новые возможности ERM?
Конееечно... Да ещё какие
FANaTWOG
01 Jun 2007, 19:37
Необходимо сделать такой кусок функции:
Во время битвы - при наведении на любой свой дружественный юнит менялся курсор. (что будет дальше-напишу сам

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

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

С помощью 3.58 точно нет. Да и ТЕ кажись не под силу пока.
FANaTWOG
01 Jun 2007, 20:29
Berserker
01 Jun 2007, 20:30
Неверный ответ. Можно. В фениксе реализован полный перехват наведения, определения монстра и вычисления урона !?MM. юзай, затем отключай ошибки и пробуй взять координаты клетки и т.д. ЕРМ-команд хватает. Напоследок, список возможных курсоров приведён в справочнике.
FANaTWOG
01 Jun 2007, 22:11
Тьфу ты, совсем забыл! Нужна еще проверка на ход монстра. Например, триггер должен срабатывать только во время хода Архимага.
Demiurg
01 Jun 2007, 22:27
Цитата(FANaTWOG @ 01 Jun 2007, 23:11)
Тьфу ты, совсем забыл! Нужна еще проверка на ход монстра. Например, триггер должен срабатывать только во время хода Архимага.
Есть триггер !?BG
это то, что тебе нужно
срабатывает при каждом действии стека
FANaTWOG
01 Jun 2007, 22:34
Цитата
Есть триггер !?BG
Ой, что-то я совсем туплю.

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

Выдержка из хелпа:
Код
Finally, instructions are just like receivers, except that they run only one time- when the map begins. They always begin with !#
FANaTWOG
03 Jun 2007, 11:56
Как при помощи ERM (3.58f) снова "оживить" монстра.
Допустим в начале големов было 1, потом их убили - как сделать, чтобы на battlefield'е они снова "поднялись". Расчеты уже сделаны (сколько их прибавится, сколько здоровья и.т.п), необходимо только поменять их флаг на "живой".
Поменял флаг на живой в !!BM:F$ (200000h - недокументирован) - монстр "поднялся" и стал ходить, но стек все равно считается "мертвый". После перемещения голем раздвояется.
Фух, намучаюсь я с этим resurection для големов... Есть второй вариант - удалить мертвый стек и вызвать в эту же позицию голема, можно ли как нибудь удалить мертвый стек с поля боя? Пробовал поставить флаг на "вызванный" - стек исчезал, но раздвоение все равно остается...
А не пробовал менять количество монстров в стэке?
FANaTWOG
04 Jun 2007, 09:04
Конечно, менял. Вчера попробовал написать еще один вариант - дать флаг живой, кастонуть RESURECTION, потом снять флаг и провести расчеты. НАКОНЕЦ-ТО ЗАРАБОТАЛО. Теперь гремлины чинят и воскрешают големов,гаргулий катапульты и прочую механику...
Кстати, если интересно, могу этот скрипт ремонта выложить...когда полностью допишу и оптимизирую...Хочу еще дать возможность феям воскрешать элементалей.
Black Phantom
04 Jun 2007, 14:41
А можно ли добавить в игру больше 100 скриптов?
Demiurg
04 Jun 2007, 14:50
Цитата(Black Phantom @ 04 Jun 2007, 15:41)
А можно ли добавить в игру больше 100 скриптов?
1) Вообще говоря, вопрос не по теме.
2) Большого смысла не имеет, так как есть копипаст и можно скрипты объединять.
3) Увеличить число скриптов должно быть не сложно. Возможно в 3.59 сделают.
gamecreator
04 Jun 2007, 15:22
Цитата(Black Phantom @ 04 Jun 2007, 14:41)
А можно ли добавить в игру больше 100 скриптов?
в 3.59
зы. юзай поиск
Demiurg
07 Jun 2007, 22:20
Возможна ли вставка нового объекта в игре с помощью команды !!UN:I?
Под новым подразумевается объект комбинации тип-подтип которого нет в 3.58f и добавленный самостоятельно в Zeobjts.txt и Zobjcts.txt
И еще просьба объяснить - зачем нужен файл Zobjcts.txt?
Да, можно вставлять в игру через UN:I новые объекты прописанные тобой в Zeobjts.txt и Zobjcts.txt.
Demiurg
08 Jun 2007, 09:39
Спасибо, Део.
Благодаря тебе я обнаружил еще один глюк ЕРМа.
Похоже прийдется отказаться от макросов.
!!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
08 Jun 2007, 13:28
В чем отличия формата ЕРМ от обычного текста?
В блокноте ЕРМ скрипты выглядят не очень. Но в Bred 3.0 вполне можно писать скрипты.
Для чего нужно знать эти отличия?
Появилась идея - написать программу, которая будет заменять макросы на переменные. Писать скрипт удобнее с макросами, особенно когда в нем несколько сотен строк, десятки переменных и функций. Но макросы судя по всему страшно глючат. Кроме того их нельзя выключить. Поэтому, после того как скрипт написан, хотелось бы иметь утилиту, которая заменит макросы на соответствующие им переменные.
FANaTWOG
08 Jun 2007, 13:45
Необходимо вычислить количество ВСЕХ героев на карте (всех игроков).
Так вот !!UN:U вычислит тех героев, которые сидят в городе? Если нет, то каким способом получить количество и "прозондировать" всех героев? Необходимо применить кое-какую функцию к КАЖДОМУ из них, независимо, в городе они или на карте...
Demiurg
08 Jun 2007, 14:06
Цитата(FANaTWOG @ 08 Jun 2007, 14:45)
Необходимо вычислить количество ВСЕХ героев на карте (всех игроков).
Так вот !!UN:U вычислит тех героев, которые сидят в городе? Если нет, то каким способом получить количество и "прозондировать" всех героев? Необходимо применить кое-какую функцию к КАЖДОМУ из них, независимо, в городе они или на карте...
Наверное, лучше запустить в цикле по всем игрокам
!!OW:H
gamecreator
08 Jun 2007, 14:48
Цитата(Demiurg @ 08 Jun 2007, 13:28)
Но в Bred 3.0 вполне можно писать скрипты.
потому что там есть возможность бесконечных строк
Demiurg
08 Jun 2007, 14:52
Цитата(gamecreator @ 08 Jun 2007, 15:48)
Цитата(Demiurg @ 08 Jun 2007, 13:28)
Но в Bred 3.0 вполне можно писать скрипты.
потому что там есть возможность бесконечных строк
Не так. Там оно отображается вполне нормально. Также как скрипт только без подсветки естесно
gamecreator
08 Jun 2007, 15:01
Цитата(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
08 Jun 2007, 19:15
Демиург, тут всё просто. ЕРМ-парсер считывает null-terminated строки, а блокнот и бред (тоже) строки отмечают вдумя символами #13 и #10, (как и во всей досо-виндоус системах). Вот и приходится ЕРМ-редактору при сохранении заменять последовательность этих $D$A на $0. Иначе проблемы.
Demiurg
08 Jun 2007, 19:50
Цитата(Berserker @ 08 Jun 2007, 20:15)
Демиург, тут всё просто. ЕРМ-парсер считывает null-terminated строки, а блокнот и бред (тоже) строки отмечают вдумя символами #13 и #10, (как и во всей досо-виндоус системах). Вот и приходится ЕРМ-редактору при сохранении заменять последовательность этих $D$A на $0. Иначе проблемы.
Практически так.
Выяснилось, что
Скриптер завершает обычные строки одним символом #10. А последнюю строку двумя #10#13.
Бред может понимать как обычные файлы, где строки завершаются #13#10, так и файлы, где строки завершаются просто #10. И подстраивается под формат файла при форматировании. То есть можно открыть ерм-файл в Бреде, подредактировать, сохранить и скрипт по-прежнему будет работать.
gamecreator
08 Jun 2007, 19:51
в бреде можно сделать эти самые \0 строки.
настройки - параметры - настройки по умолчанию - курсор может выходить за края строк
FANaTWOG
09 Jun 2007, 15:07
Скриптеры, помогите!!!
Необходимо получить, какой навык был выбран при получении уровня в окне выбора скилла. Согласен на любую функцию, даже с крутыми наворотами!
P.S. ERM 3.58f.
Demiurg
09 Jun 2007, 15:42
Цитата(FANaTWOG @ 09 Jun 2007, 16:07)
Скриптеры, помогите!!!
Необходимо получить, какой навык был выбран при получении уровня в окне выбора скилла. Согласен на любую функцию, даже с крутыми наворотами!
P.S. ERM 3.58f.
Нету такой. Даже в ТЕ.
Можно вот так сделать:
запомнить какие навыки были до получения уровня,
затем сравнить их с тем что стало после получения,
сделать вывод.
Demiurg
09 Jun 2007, 16:30
Цитата(Deo @ 09 Jun 2007, 17:07)
Можно вот так сделать:
запомнить какие навыки были до получения уровня,
затем сравнить их с тем что стало после получения,
сделать вывод.
А как узнать?
Триггер !?HL срабатывает до появления окошка с выбором. Посттриггера !$HL нету. Как узнать, что герой только что выбрал навык и закрыл окошко?
Можно использовать триггер посекундный !?TL0
Добавлено ([mergetime]1181397804[/mergetime]):
Млин, там же для 3.58 тада не знаю..
Demiurg
09 Jun 2007, 22:24
Мне допустим интересно было бы, как сделать под ТЕ.
У меня возникла мысль про таймер, но игрок может увидеть окошко с выбором и пойти пить чай.
Berserker
09 Jun 2007, 22:34
Так же обстоит дело с с посттриггером сохранения. Я для феникс-мода сделал доболнительный файл сохранения и загрузке, а оказалось, что мало того, что нет посттриггера сохранения,триггер возникает уже тогда, когда файл обнулён и открыт! Пришлось два дня мучиться

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

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