Current time: 25.11.2024, 13:45 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Ваши вопросы по ERM-скриптам
Author Message
Berserker Online
Administrators

Posts: 16657
Post: #5341

slater777, отличный фикс, спасибо!


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
10.08.2019 13:15
Find all posts by this user Quote this message in a reply
Igor Offline

Posts: 140
Post: #5342

Raistlin, !!SN:W^harpoon^/0; как я понимаю это равнозначно !!VRv1:S0; то есть harpoon это новая постоянная переменная, а !!SN:W^^/ - это ресейвер чтобы узнать\задать значение. Фишка в том что название переменной может включать значения других переменных... Легче посмотреть пример, чем объяснить.
В этом скрипте с помощью !!SN:W запоминается и проверяется факт встречи 2 героев в определенный день.
(This post was last modified: 10.08.2019 23:07 by Igor.)
10.08.2019 23:03
Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 325
Post: #5343

День добрый! Есть следующая проблема: использую функцию 7701 для установки описаний монстра из ert (FUN.erm из состава опций ERA).
Описание зависит от выбора игрока ранее и добавляет к стандартному имени некий текст в зависимости от добавленной способности (что-то наподобие emerald tower). Кусок кода функции:
В ert строчки 179518 и 179519 содержат текст вида "%Z1 %Z2" и "%Z1 %Z3".
Проблема в том, что спец символы игнорируются, и описание устанавливается как "%Z1 %Z2" вместо, скажем, "Ударные Архангелы". Как это можно обойти? Метод установки описаний, реализованный в скрипте изумрудной башни мне не подходит...
(This post was last modified: 11.08.2019 18:30 by ElfbI.)
11.08.2019 16:40
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1349
Post: #5344

Igor, спасибо, я понял145 Это можно использовать как индивидульные переменные героев.


Создал новый глобальный мод: WoG Ultra Edition
12.08.2019 03:34
Find all posts by this user Quote this message in a reply
Igor Offline

Posts: 140
Post: #5345

Как можно запретить компу атаковать определенный стек на поле боя, чтобы он его не видел и никак не реагировал? И сразу как сделать стек невидимым в рямом смысле для игрока за другим компом? Появилась идея написать скрипт делающий монстра невидимым до первой атаки.
12.08.2019 05:07
Find all posts by this user Quote this message in a reply
Igor Offline

Posts: 140
Post: #5346

Интересно поведение компа, Нагаш на карте приключений скрыт вуалью тьмы, комп через вуаль не видит, и значит не будет атаковать\убегать от Нагаша пока не приблизится к нему на расстояние прямой видимости. Будет ли комп активно пытаться разведать, что там за вуалью? Начнет ли сближение или проигнорирует? Можно ли таким образом незаметно доскакать до вражеского замка? Ктото проверял?
(This post was last modified: 12.08.2019 17:13 by Igor.)
12.08.2019 17:11
Find all posts by this user Quote this message in a reply
Igor Offline

Posts: 140
Post: #5347

ElfbI, в строках 3-9 !!VRz1&vy1=2:S^Пугающие^; что это значит &vy1 - переменная vy1? Надо определиться y1 или v1.
Вероятно &vy1=5 - невыполнимое условие, и значение переменной z1 не присваивается, она пустая, поэтому и выводится как "%Z1".
(This post was last modified: 12.08.2019 17:24 by Igor.)
12.08.2019 17:23
Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 325
Post: #5348

Igor, не сочтите за грубость, но прошу Вас не отвечать, если не разбираетесь в теме - vy1 вполне нормальное обозначение переменной, цитирую справку по erm:
Пример индексных переменных v, используя y-переменные:
Кроме того, код рабочий, так как проверялся простейшей строчкой !!IF:M^z1 = %Z1 z2 = %Z2 z3 = %Z3^; которую я убрал при копировании на форум, иначе я бы не писал сюда.
Проблема же явно в том, что функция 7701 записывает в память значение из ert игнорируя спец символы. В результате монстр называется после выполнения кода "%Z1 %Z2". Вне зависимости от содержания z-переменной. А сколько надежд было на этот функционал.

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

Я в ерм что-то умею, но вот работа напрямую с памятью для меня сложновато...


The dreams you kill will break your heart
(This post was last modified: 12.08.2019 20:33 by ElfbI.)
12.08.2019 20:19
Find all posts by this user Quote this message in a reply
Igor Offline

Posts: 140
Post: #5349

ElfbI, прошу прощения если ответ показался грубым, это не издевка, я реально спросил про vy1, сам с ними не работал, хотел помочь.
12.08.2019 20:52
Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 325
Post: #5350

Igor, да я сам чуть не нахамил; день, наверное, тяжелый. На самом деле, здорово, что форум жив, я рад, что хоть кто-то отвечает. Ладно, это флуд. Надеюсь, кто-нибудь поможет мне с моим вопросом.


The dreams you kill will break your heart
(This post was last modified: 12.08.2019 21:28 by ElfbI.)
12.08.2019 21:27
Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #5351

ElfbI, а глобальные z-переменные не пробовали использовать? На всех монстров, конечно, не напасёшься.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
13.08.2019 00:57
Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 325
Post: #5352

(13.08.2019 00:57)Berserker Wrote:  ElfbI, а глобальные z-переменные не пробовали использовать? На всех монстров, конечно, не напасёшься.

Уважаемый Berserker, вы же знаете, что почти все z-переменные, кроме пары десятков, давно заняты другими скриптами. Я пока вижу два пути: вообще отказаться от присваивания монстру доп имени или подменять название при клике на монстра, его картинку и тд.
Собственно скрипт повешен на ящик пандоры - при одном из вариантов событий на героя нападают, при выигрыше дается возможность улучшить монстра из армии (для всей карты). Изначально планировалось использовать тот же метод, что в изумрудной башне, но его реализации загнала меня в уныние.


The dreams you kill will break your heart
(This post was last modified: 13.08.2019 23:02 by ElfbI.)
13.08.2019 21:30
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #5353

Berserker, всего то нужна реализация получения адреса строки SN:W (при условии, что это конечно строка)



game bug fixes extended.dll || My Plugins || My GitHub
13.08.2019 23:26
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #5354

igrik, адреса же динамические. Следующим шагом ты изменишь W-переменную, указатель станет висячим. Привет, вылеты. Нужно больше команд вроде SN:H, которые новые описания сохраняют в файлах сохранений и применяют при загрузке. В TODO записал, я почти закончил работу над разделом сайта для добавления информации о модах. Не знаю, успею ли сделать ещё промежуточный релиз Эры. Если успею, сообщу.

ElfbI, над проблемой ограниченного числа z-переменных не раз думал. Если подменять нужно не на короткое время (бой, экран героя), а на всю игру, то пока не подскажу. Метод игрика не любит F12. При F12 все ерт-строки перезагружаются, адреса становятся не действительными. И да, выражения в строках вида %Z2 не интерполируются.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
14.08.2019 01:57
Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 325
Post: #5355

Berserker, igrik, спасибо за ответы, наверное, пока отложу идею в долгий ящик.

   Кстати, давно хотел спросить.
   В руководстве по эре есть такие пункты:
1. "Не используйте отрицательные y-переменные. Они не сохраняются в новых событиях. Вместо них везде используйте положительные y-переменные"
   Я правильно понимаю, что переменные вида "y-1" лучше вообще теперь не использовать и вместо них везде использовать переменные вида "y1"? В том числе в любых триггерах (!?OB к примеру), где они использовались до эры?
2. "Не используйте общие глобальные временные переменные для хранения значений между событиями или при любой остановке ЕРМ..."
   Здесь имеются ввиду переменные вида "v9000" Вместо них следует использовать "!!SN:W^^/" ?

   Извините, если глупые вопросы, отлавливать баги не самое мое любимое занятие))) В руководстве не совсем понятно написано (ну или я туплю), а по форуму вроде никто особо не интересовался этими вопросами, а я как раз решил пару скриптов под эру "причесать".


The dreams you kill will break your heart
14.08.2019 21:04
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group