Wake of Gods Forum | Форум Во Имя Богов
DL - создание расширенных диалогов - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Герои Меча и Магии 3.5 WoG/ERA (/forumdisplay.php?fid=99)
+--- Forum: Скрипты (/forumdisplay.php?fid=103)
+--- Thread: DL - создание расширенных диалогов (/showthread.php?tid=2391)


DL - создание расширенных диалогов - Bes - 06.12.2009 00:55

Я понимаю, что команда DL не отличается стабильностью и мы все используем её на свой страх и риск, но может поглядите что здесь можно переделать,чтобы игра не вылетала при попытке отобразить этот диалог?

Диалог - здесь
Код ниже:
Quote:!?OB104&1000; Университет
!!HE-1:N?y-1;
!!VRv5:S0;
!!DO22510/0/27/1:Py-1/5;
!!OB998|v5<8/v5>13:R;
!!FU|v5<8/v5>13:E;
!!OB998:S;
!!FU22505:P1/9; reset z-vars 1..9
!!VRz-1:S^ZSETUPur.txt^;
!!DL2:Nz-1; активировать диалог
!!UR998:S?v601/?v602/?v603/?v604;
!!UN:N4/1/v601 N4/2/v602 N4/3/v603 N4/4/v604; получить имена навыков [z1..4]
!!VRz5:S^UNIVGOLD.PCX^;
!!VRz6:Sz199393;
!!HEy-1:Sv601/?y1 Sv602/?y2 Sv603/?y3 Sv604/?y4; наличие навыков у героя
!!VRv1:Cv601/v602/v603/v604;
!!VRv1:*3+3;
!!VRv2:*3+3;
!!VRv3:*3+3;
!!VRv4:*3+3;
!!DL2&y1>0:A9/11/z5 A13/11/z5 H2/z6;
!!DL2&y2>0:A10/11/z5 A14/11/z5 H3/z6;
!!DL2&y3>0:A11/11/z5 A15/11/z5 H4/z6;
!!DL2&y4>0:A12/11/z5 A16/11/z5 H5/z6;
!!DL2:A2/4/v1 A3/4/v2 A4/4/v3 A5/4/v4; настроить картинки навыков
!!DL2:A20/3/z1 A21/3/z2 A22/3/z3 A23/3/z4; расставить имена в диалоге
!!DL2:S?v600; показать диалог

Бывает так,что при первом посещении всё срабатывает как надо,а при повторном посещении уже вылет..
Добавлено:
"серые" команды в коде можно и опустить, хотя не вних ошибка.. проверял
Добавлено:
22510 - подсчитывает кол-во навыков у героя


RE: Ваши вопросы по ERM-скриптам - major - 10.12.2009 18:53

У меня проблема похожая, как у Besа...
Абсолютно тупой вылет, причем где-то 1 раз из 5 все работает нормально.
Вот сам код

Code:
!?DL&v998=10/v999>=90/v999<=105/v1000=12;
!!DLv998&v9054>0:Av9054/4/0;
!!DLv998:Av999/4/1; - здесь
!!VRv9054:Sv999;

В начале происходит очищение переменной v9054, я проверял - при первом выполнении она равна 0. В других диалогах этот код работает без проблем. А тут практически всегда игра крашится с указанием на выделенную строку. Неужели все так плохо, вроде обычно DL работал нормально?


RE: Ваши вопросы по ERM-скриптам - Bes - 10.12.2009 19:27

major, а вы уверены,что DL поддерживает такое: !!DL$:XXXX; ?
где $-переменная
Тем более, раз у вас триггер завязан на срабатывание для диалога №10, то логичнее писать команды уже с чистой цифрой диалога т.е. !!DL10&v9054>0:Av9054/4/0.. и т.д.


RE: Ваши вопросы по ERM-скриптам - major - 10.12.2009 20:00

Bes, да собственно без разницы, как писать !!DLv998 или !!DL10, все равно, оно либо работает, либо нет.
!!DL$:XXXX; - в хелпе как раз такой синтаксис и написан, кроме !!DL:C, в котором номер не указывается.

Еще вот не пойму, почему эта строка вызывает ошибку, то что номер переменной может быть в пределах 1...10000.

Code:
!!DL10:Ay-1/3/z-1 Ay-2/3/z-2 Ay-3/3/z-3;
либо такая
Code:
!!DL10:Ay1/3/z1 Ay2/3/z2 Ay3/3/z3;
в общем, даже не важно какие переменные использовать.

P.S. Диалог-то загружается нормально и функционирует стабильно, только сначала выдает целую кучу ошибок в этой строке.


RE: Ваши вопросы по ERM-скриптам - Bes - 11.12.2009 12:02

ну, коли диалог работает, то просто отключите вывод сообщений 0б 0шибке.. через !!UN:P904/1 P905/0;


RE: Ваши вопросы по ERM-скриптам - MOP - 12.12.2009 10:07

Я так и делаю. Если возможно.
Майор - ты будешь встречать это практически в каждом диалоге. ИМХО, DL:A - самая глючная команда из всех в ERM (UN:C по сравнению с ней - просто душка). Зависит от Винды, от железа и бог знает чего ещё. Диалог, отлично работающий на SP3, даёт 100%-ый вылет на SP2 и наоборот. В чём дело - не понять. А если нет вылета, то логи ошибок непостижимы. Иногда помогают изменения в шаблоне, но как и что менять - тоже лишь Господу известно.
В общем, осторожность тут не повредит.


RE: Ваши вопросы по ERM-скриптам - DracoLich - 12.12.2009 17:50

а как же она ведет себя на разнообразных нуксах и маках? D:
+ фазу луны учитывайте!


RE: Ваши вопросы по ERM-скриптам - major - 13.12.2009 11:51

Ну ладно, с этим ошибками, отключили и все. А вот что делать с вылетами - я ума не приложу. Есть 5 похожих рабочих диалогов, а вот шестой не хочет менять кадры любого дефа - вылетает и все. Теперь что - ждать новолуния или НГ, или смену полюсов? Я понимаю, что команда сырая, глючная, но это же просто тупость. Эх...


RE: Ваши вопросы по ERM-скриптам - GrayFace - 13.12.2009 13:00

Киньте мне логи вылетов.

(10.12.2009 20:00)major Wrote:  Еще вот не пойму, почему эта строка вызывает ошибку, то что номер переменной может быть в пределах 1...10000.

Code:
!!DL10:Ay-1/3/z-1 Ay-2/3/z-2 Ay-3/3/z-3;
У меня не вызывает.


RE: Ваши вопросы по ERM-скриптам - major - 13.12.2009 17:49

В этом и есть странность - 3 диалога без ошибок использует подобные строчки, 4-ый диалог лишь в конце выдает ошибку, 5-ый практически везде, ну а 6-ой...

Лог вылетов всегда один и тот же, залил сюда http://slil.ru/28336322.


DL - создание расширенных диалогов - GhostManSD - 01.09.2010 01:47

Тема явно назрела: функционал команды огромен, однако сама команда весьма сложна для пользователя ранга "Newbie", к коим я с полным на то основанием отношу себя. Есть огромное желание познакомиться поближе с этой командой, однако информация, изложенная в справке, не дала исчерпывающего ответа. Поэтому предлагаю здесь обсудить возможности данной команды.
Наверное, нужен какой-то наглядный пример, поэтому очень прошу профессионалов сделать небольшой диалог. Допустим, пусть в диалоге будут 5 картинок, расположенных в форме креста в окне стандартного геройского формата, а также кнопка "ОК". Если такое возможно. Вроде бы возможно, поскольку где-то на df2 мне попадался результат работы MOP'а со стандартным окном героя, и это было сделано через !!DL. Великолепный, кстати, пример, по возможности надо бы найти и выложить здесь под спойлером.


RE: Создание расширенных диалогов - Druin - 01.09.2010 10:13

Вот тут был хороший пример... Но ссылки уже не рабочие... Может у кого-нить осталось?..


RE: Создание расширенных диалогов - Druin - 01.09.2010 10:26

И можно еще в ТПМ глянуть... Sm там точно должно быть использование !!DL


RE: Создание расширенных диалогов - GhostManSD - 01.09.2010 10:43

TPM пока качать не могу - давеча разорился на инсталлятор Иды Про (полцарства за умение пользоваться !!UN:C!). Вот только пользоваться ей не умею, знать бы, где научиться...



RE: Создание расширенных диалогов - Berserker - 01.09.2010 15:07

GhostManSD, по иде хорошая книга есть у Криса Касперски: http://bookz.ru/authors/kasperskii-kris/kasper08.html



RE: Создание расширенных диалогов - GhostManSD - 02.09.2010 00:57

Итак, вопросы.
1. !!DL#:XXXX; - после чего это должно идти? Могу ли я вставлять это в теле функции, в любом триггере, кроме !?DL?
2. A#1/#2/$/[#3] - что здесь вообще указывать??

Одна из ссылок на пример, который упоминал Druin, работает. Скачал и для надёжности сразу залил к себе (ссылка). Так понимаю, сама книжка реализована в mgmbook.txt.
Открыл его скриптером как таблицу и поник. Почему тип указывается как Text, хотя по справке вроде как надо указывать T, например? Хотя я, признаться, не понял ни шиша.
Кто-нибудь может объяснить принцип построения сего файла? Не могу соотнести инфу из справки и то, что увидел в готовом скрипте.


RE: Создание расширенных диалогов - GhostManSD - 05.09.2010 19:19

Подозреваю, что с просьбой обратился по адресу. Суть такова: надо в зависимости от переменных v8001 и v8002 менять облик слотов для войск у героев (попросту говоря, накладывать сверху деф). Это должно распространяться на экран города, экран одиночного героя и экран встречи.

Переменные v8001 (для левого героя или одиночки) и v8002 (для правого героя) имеют 3 значения каждая:
4 - изменить три последних слота
5 - изменить два последних слота
6 - изменить последний слот
7 - не менять слоты


Также есть некоторые функции (нужно использовать их в качестве триггеров):
90001 - вход в город
90002 - вход в окно героя
90003 - вход в окно встречи двух героев


Что касается дефа, то эту роль должен выполнять флаг игрока (аналогичный тому, который можно увидеть в правом верхнем углу окна героя). Цвет тоже должен меняться в зависимости от того, какого цвета сам игрок. Если это трудно реализовать, то пусть будет красный.

Образец находится чуть ниже.



RE: Создание расширенных диалогов - Sav - 05.09.2010 20:16

А при чём тут !!DL? По-моему, здесь надо искать указатели на изображение существа в слоте и изменять их на адрес изображения нужного флага.


RE: Создание расширенных диалогов - GhostManSD - 05.09.2010 20:29

В том-то и дело, что я хочу лишить игрока возможности помещать туда существ.


RE: Создание расширенных диалогов - Sav - 05.09.2010 20:33

GhostManSD Wrote:В том-то и дело, что я хочу лишить игрока возможности помещать туда существ.
Это реализуется через !?CM.
А деф меняется отдельно, так, как я сказал (если, конечно, я не ошибся).

Или ты хочешь через !!DL сделать диалог окна героя, окна города и окна обмена?Sm


RE: Создание расширенных диалогов - GhostManSD - 05.09.2010 20:41

Дело в том, что там нет графики дефа каждого слота отдельно. Есть подложка формата pcx (окно героя), на который накладываются дефы в виде навыков, существ, иконок всяких. Вот и мне надо добавлять от двух до трёх дефов на эту подложку.


RE: Создание расширенных диалогов - GhostManSD - 05.09.2010 20:48

Тьфу ты, не от двух до трёх, а от нуля до трёх.


RE: Создание расширенных диалогов - Berserker - 05.09.2010 20:49

А вариант при входе в окно помещать туда существ NOT_USED, а на выходе убирать их - не катит? Через CM блокировать операции.


RE: Создание расширенных диалогов - GhostManSD - 05.09.2010 21:02

А что будет, если туда not-used'а кинуть?


RE: Создание расширенных диалогов - Berserker - 05.09.2010 21:05

Если я не ошибаюсь, значок перечёркнутый, который, к тому же, можно и заменить.


RE: Создание расширенных диалогов - Sav - 05.09.2010 21:09

Зачёркнутая картинка копейщика (только что проверил). А при нажатии - ошибка (но его и так надо блокировать).


RE: Создание расширенных диалогов - GhostManSD - 05.09.2010 21:09

Это тот, что зовётся DEFAULT.DEF?


RE: Создание расширенных диалогов - GhostManSD - 05.09.2010 21:18

Где вообще смотреть картинку существа в слоте? В h3sprite вроде нет...


RE: Создание расширенных диалогов - Sav - 05.09.2010 21:26

В h3sprite TWCRPORT.def.
Там все портреты сразуSm (1 кадр - 1 портрет), в т. ч. зачёркнутый копейщик.


RE: Создание расширенных диалогов - Berserker - 05.09.2010 21:27

Quote:Это тот, что зовётся DEFAULT.DEF?
Вроде бы да. Это картинка выдаётся, если ресурс отсутствует.


RE: Создание расширенных диалогов - Sav - 05.09.2010 21:29

GhostManSD Wrote:Это тот, что зовётся DEFAULT.DEF?
Нет, проверил. Там именно копейщик и он в TWCRPORT.def.
А в DEFAULT.DEF просто зачёркивание.


RE: Создание расширенных диалогов - GhostManSD - 05.09.2010 21:46

Всё, нашёлся копейщик перечеркнутый. Теперь вопрос к Берсу: где конкретно в Олли искать?


RE: Создание расширенных диалогов - Berserker - 05.09.2010 22:03

GhostManSD, а что искать-то? Всё, что нужно - есть в самом ЕРМ. Возьми одного not used монстра и попробуй поставить в слот. Если не будет вылетать, то дело в шляпе.


RE: Создание расширенных диалогов - Sav - 05.09.2010 22:11

Вылетать не будет, но надо блочить клики мыши по ним и вовремя удалять их.


RE: Создание расширенных диалогов - GhostManSD - 05.09.2010 22:13

Это уже было сделано. Ab


RE: Создание расширенных диалогов - GhostManSD - 05.09.2010 22:32

(05.09.2010 22:03)Berserker Wrote:  GhostManSD, а что искать-то? Всё, что нужно - есть в самом ЕРМ. Возьми одного not used монстра и попробуй поставить в слот. Если не будет вылетать, то дело в шляпе.
Я имею в виду, можно ли его картинку заменить на что-нибудь.
Или хотя бы убрать отображение их количества.


RE: Создание расширенных диалогов - Berserker - 05.09.2010 22:55

Картинку можно заменить, разбив и заново собрав def. А вот с кол-вом, хм, попробуй поэксперементировать. 0 или -1 ставить.


RE: Создание расширенных диалогов - GhostManSD - 05.09.2010 23:17

Берс, само собой разумеется, я экспериментировал средствами ERM. Но монстр тупо удаляется (впрочем, я этого и ожидал, поскольку я и прежде удалял монстров, ставя тип -1 и количество 0). Попробовал количество -1 - тот же эффект.


RE: Создание расширенных диалогов - gamecreator - 06.09.2010 01:30

хм, у меня получалось ставить количество 0 (правда, напрямую в памяти)
Добавлено:
и отрицательное тоже можно


RE: Создание расширенных диалогов - GhostManSD - 06.09.2010 03:18

gamecreator, а если ставить ноль или отрицательное, то это число отобразится на картинке существа? В идеале, конечно, было бы здорово вообще избавиться от количества существ... Что сомнительно.
Хотя флаг в слоте, имхо, выглядит обаятельнее. Ab Правда, реализовывать трудно. Я пока через Олли могу только флаг с правого верхнего угла по горизонтали двигать, менять его название да номер для !!CM:I. Согласитесь, негусто, хотя на фоне того, что я умел до этого, - открытие Америки.
Чем еще плох флаг на заблокированном слоте, кстати. Перечеркнутые копейщики также появляются и в другом окошке - том, где отображаются заставки новой недели (когда там отображается текущий герой, то у него отображаются эти копейщики). А чтобы отобразить там же флаг, нужно новый (sc. подходящий по размеру) деф создать и вмонтировать его в игру.


RE: Создание расширенных диалогов - gamecreator - 06.09.2010 09:54

будет отображаться то, что есть. кстати, можно попробовать переместить эти слоты за пределы экрана. например, в точку (-100,-100)


RE: Создание расширенных диалогов - GhostManSD - 14.09.2010 10:36

Вопрос по редактору расширенных диалогов. Что делать с появившимся в итоге текстовым файлом? Как после этого запустить диалог? Например, файл называется "kyon.txt", а запустить нужно после триггера !?PI. Какие команды нужны?


RE: Создание расширенных диалогов - Bes - 27.10.2010 12:48

GhostManSD, ну как, уже разобрались как запускать сам диалог в игре?
или вопрос по прежнему "висит"?


RE: Создание расширенных диалогов - GhostManSD - 27.10.2010 12:50

"Висит"... Желающих помочь не нашлось... :-(


RE: Создание расширенных диалогов - Bes - 27.10.2010 13:32

Лично я, довольно быстро разобрался руководствуясь справкой от ZVS касаемо DL.
Была ещё тема на DF2-форуме, незнаю осталась ли, где тоже весьма доходчиво всё было..

Добавлено:
извините, что нестал непосредственно здесь вам рассказывать как "ЭТО" делается 166


RE: Создание расширенных диалогов - GhostManSD - 27.10.2010 19:17

Bes, спасибо огромное! Начинает получаться!


RE: Создание расширенных диалогов - GhostManSD - 27.10.2010 20:46

Вопрос одновременно и в тему, и не очень. Как перегнать bmp в pcx без фотошопа? Нужна новая подложка для диалога на базе старой.


RE: Создание расширенных диалогов - etoprostoya - 27.10.2010 23:44

Кладёшь BMP в wog-файл, устанавливаешь его, а в LOD'е уже PCX! О как! Инсталлятор автоматически переводит BMP в PCX, если тот упаковывается в LOD.


RE: Создание расширенных диалогов - GhostManSD - 27.10.2010 23:53

Дык пока что нет wog-файла, вон оно как. Необходимости его создавать нет. Впрочем, проблема решилась просто: нужно сохранить bmp в разрешении в 256 цветов, а затем конвертировать онлайн здесь: http://www.go2convert.com.


RE: Создание расширенных диалогов - etoprostoya - 28.10.2010 00:22

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


RE: Создание расширенных диалогов - GhostManSD - 28.10.2010 13:23

Потестил. Хреново выглядит. Так, скачал облегченный фотошоп (50 МБ), придется там работать.
Дык вот, об чем это я. Какие манипуляции нужно провести с bmp перед сохранением в pcx, дабы это все нормально выглядело в героях?
Добавлено:
Приложил ссылку на создаваемую подложку в форматах psd и bmp. Вдруг кому пригодится новая подложка.
http://www.box.net/shared/poo900e5a2


RE: Создание расширенных диалогов - GhostManSD - 28.10.2010 14:43

Так, подложка создана и залита в lod. Все прекрасно, но...
Что сделать, дабы границам обложки выставлялся цвет в зависимости от игрока?


RE: Создание расширенных диалогов - GhostManSD - 29.10.2010 00:10

Если поставить кнопке id=31721, то нажатие ESC будет закрывать окно. Возможно ли сделать такое для нажатия ENTER? Пробовал 31720 (в Olly кнопка OK всегда имеет id=31720, Cancel - id=31721, Buy - id=30722), не вышло, попробовал 30722 - итог тот же. Это вообще возможно?


RE: Создание расширенных диалогов - pHOMM - 29.10.2010 08:24

ааааа, маньяки наступают !!! ))) зачем такие извраты ???

по-моему, почти во всех сборках реседитора был и графэд, он позволяет перегонять бмп в псх и обратно.
вот тебе сразу ссылка на графэд, чтобы не мучался http://phomm.narod.ru/graphed.zip
правда есть там один мной замеченый косячок... иногда надо убивать прогу после каждой единичной конвертации, но, я думаю, тебе не надо дофигу файлов конвертить.

если надо до ... много, в общем, то пиши, сколдую тебе конвертер по списку файлов (на базе своего http://phomm.narod.ru/programs/h3defparser.htm)


RE: Создание расширенных диалогов - GhostManSD - 29.10.2010 09:29

pHOMM, спасибо огромное! Но все оказалось еще проще: все, что нужно, - photoshop и индексирование с верно настроенной палитрой. Можно сохранять как в pcx, так и в bmp. MMArchive при добавлении bmp сам конвертирует его в pcx.


RE: Создание расширенных диалогов - Berserker - 18.11.2010 01:15

ID диалога число двузначное. Жаль.


RE: Создание расширенных диалогов - Bes - 18.11.2010 15:01

это ты к чему?


RE: Создание расширенных диалогов - Berserker - 18.11.2010 15:07

Я тщетно пытался сделать свой первый диалог. Сперва ИД ставил 999. Оказалось, в коде берётся два символа.


RE: Создание расширенных диалогов - MOP - 18.11.2010 18:53

У меня нормально работают диалоги с номерами 1001-1004 - при том, что диалог 10 тоже существует. Не знаю, о чём ты.
Кинь участок кода, где "берутся два символа".


RE: Создание расширенных диалогов - GhostManSD - 18.11.2010 20:31

В примере Славы вроде диалог №666.


RE: Создание расширенных диалогов - Berserker - 19.11.2010 00:05

Quote:for(i=2;i<sn;i++){
    if(ITxt(i,1,&tf)[0]=='#'){
    if(atoi(ITxt(i,2,&tf))==id) goto _Found;
    }
    }
    RETURN(-2)
Проверено в отладчике. Два символа и берутся.


RE: Создание расширенных диалогов - GhostManSD - 19.11.2010 00:06

А как же со Славиным диалогом? Он работает... если только 666 не считается как 66.


RE: Создание расширенных диалогов - Berserker - 19.11.2010 00:28

Не знаю Sorry.


RE: Создание расширенных диалогов - Bes - 26.11.2010 15:02

Кстати, весьма полезная информация...
"Если для диалога не указывать фоновую картинку, то в игре автоматически будет создан стандартный меню-диалог под заданные размеры" 132


RE: Создание расширенных диалогов - GhostManSD - 26.11.2010 18:46

Да, это я уже выяснил опытным путем. Но все равно предпочитаю создать подложку в Photoshop, ибо там можно создать нужный эскиз (с рамками для кнопок, например). Долго, правда, парился с тем, чтобы сделать возможность отображать цвета игрока на рамке такой подложки. Но в итоге вышло. Если кому-то нужна палитра, могу скинуть.


RE: Создание расширенных диалогов - Berserker - 26.11.2010 19:27

Выложи для всех, калi ласка.


RE: Создание расширенных диалогов - MOP - 26.11.2010 20:46

Блин, ну точно же работает. Sm


RE: Создание расширенных диалогов - GhostManSD - 28.11.2010 23:54

Скачать палитру
Photoshop => Режим => Индексированные цвета => Заказные => Загрузить. Выбираете тип файла PAL, указываете путь к палитре. Готово, картинку можно заливать в LOD.


RE: HOMM3 High Resolution Project - GhostManSD - 27.01.2011 05:49

При работе с ресивером !!DL (создание своего диалога) есть одно важное и, надо признаться, весьма досадное ограничение. Оно заключается в невозможности установить размер задника более чем 700x500 px. Это актуально для экрана размером 800x600 px, но вовсе не актуально для больших разрешений. С HiRez диалоги, большие по размеру, отлично смотрелись бы на экране. Есть огромное желание увидеть возможность обойти ограничение, если такое желание вообще осуществимо.
Второе предложение вроде как проще. В стандартной версии при использовании !!DL диалог помещается в центр экрана (если в опциях диалога не указано иное). В HiRez диалог помещается ближе к левому верхнему углу.
Baratorch, если это осуществимо, не могли бы Вы добавить две эти приятные мелочи в новую версию патча?


RE: HOMM3 High Resolution Project - Valery - 27.01.2011 06:00

I asked same thing in 3 forums, but no answer. I guess it is more difficult than it seems. Increasing the DL background size for HD is impossible, as the sizes of the pcx, defs and text in DL must be hand written. But centering it would be great.


RE: HOMM3 High Resolution Project - GhostManSD - 27.01.2011 18:41

По идее, есть один вариант решения. Нужно найти адреса для двух хуков:

1. Хук, срабатывающий при активации команды !!DL#:N;
2. Хук, срабатывающий при закрытии любого диалога.


Очень прошу знатоков мне помочь... Возможно, тогда у меня получится кое-что намудрить. По крайней мере, первые результаты (без этих хуков) уже есть: удалось обойти ограничения на размер подложки. Отцентрировать не удалось, впрочем, ничто не помешало вручную задать отступы сверху и слева. Но эти хуки необходимо поставить, ибо необходимо менять данные по некоторым адресам ТОЛЬКО при обращении к !!DL:N и СРАЗУ их восстанавливать после завершения работы диалога.

Valery, excuse me: I have no time to translate it in English now. Please, use Google Translate.


RE: HOMM3 High Resolution Project - Berserker - 27.01.2011 19:03

729c5a - 0x320 - 800 = ширина экрана
Ниже 600 - высота. Поменяй и должно быть счастье. Хочу в будущую эру встроить автоопределение разрешения.


RE: Ваши вопросы по ERM-скриптам - totkotoriy - 28.03.2012 05:14

Может знаете как реализовать диалоговое окно, выскакивающее при удержании правой кнопки мыши на карте приключений через !!DL?... сколько не пытался окно выскакивает, но не исчезает или исчезает при нажатии мыши.


RE: Ваши вопросы по ERM-скриптам - Berserker - 28.03.2012 18:37

На дф2 в теме про UN:C или инженерию Серж давал код для реализации по ПКМ.


RE: Ваши вопросы по ERM-скриптам - totkotoriy - 28.03.2012 20:24

Спасибо! Я думал никогда такого не найду. Всё работает.
Code:
!?CM;
!!CM:R0;
!!DL1:N^txttable.txt^;
!!VRy1:Sv1;
!!SN:E7510739/1/1; [find HDlg -> v1]
!!VRy2:Sv1; [v2 = HDlg]
!!if&y2<>0:;
!!SN:E5864096/1; [stop animation]
!!UN:Cy2/4/?v1; [v1 = dialog]
!!SN:E6245264/2/v1; [show while holding mouse button]
!!SN:E5864272/1; [continue animation]
!!SN:E7518240/2/y2; [destroy HDlg]
!!en:;
!!VRv1:Sy1;
Вот код немного дополненный, мож кому еще нужен будет.
Должно при удержании любой кнопки мыши показывать диагог №1.
Про тонкости кода не знаю, пояснить ничего не могу.


RE: Ваши вопросы по ERM-скриптам - totkotoriy - 29.03.2012 20:10

Может знаете в чем дело? При попытке любых изменений настроек диалога DL, например A1/4/2 выскакивает "Apply"-wrong var index (1...[10000]), в шаблоне все ресурсы описаны правильно, влаг загрузки шаблона 1 (то есть ошибок нету). Но после ошибок всё таки показывается измененный диалог.


RE: Ваши вопросы по ERM-скриптам - Berserker - 29.03.2012 20:56

DL:A - четыре параметра. Последний - 1.


RE: Ваши вопросы по ERM-скриптам - totkotoriy - 29.03.2012 21:34

(29.03.2012 20:56)Berserker Wrote:  DL:A - четыре параметра. Последний - 1.
Мне даже стыдно что-то писать после этого. Dash1. Спасибо.


RE: Ваши вопросы по ERM-скриптам - Berserker - 30.03.2012 00:24

Было бы за что. В старой справке это не указано.


RE: Ваши вопросы по ERM-скриптам - totkotoriy - 30.03.2012 04:13

А можно ли командами "на лету" поменять координаты DL диалога? Или опять через память надо?
И случайно не знаете что команда !!DL:M делает?


RE: Ваши вопросы по ERM-скриптам - Berserker - 30.03.2012 14:22

DL:M в списке комманд нет в справочнике.
Менять координаты самого диалога не знаю как, пробовал только его элементы.


RE: Ваши вопросы по ERM-скриптам - MOP - 30.03.2012 18:05

Это моповская команда и делает она то же, что кода Сержа - открывает диалог pop-up.


RE: Ваши вопросы по ERM-скриптам - totkotoriy - 30.03.2012 18:20

(30.03.2012 18:05)MOP Wrote:  Это моповская команда и делает она то же, что кода Сержа - открывает диалог pop-up.
Аааааа, вот оно что, а то твой скрипт смотрел не понял что это такое... А про координаты не подскажешь?

Кстати научился выводить знаки опыта и знамя варлорда в диалог... просто надо использовать определенный шрифт с определенными символами.
И ещё помните на DF2 давно разговор про палитру? Оказывается можно для игры создать свою палитру. Можно сделать это фотошопом, добавить нужные цвета в game.pal, сохранить и пользоваться, как родными. Мне, например, темно-коричневого для полного счастья не хватало.

ЗЫ. Надо было написать: это моповская команда, МОРа и спрашивай 118


RE: ERA scripts Rus ver. 1.04 - Berserker - 13.05.2013 15:20

Я как-то день убил, но так и не сделал свой единственный примитивный DL-диалог.


RE: ERA scripts Rus ver. 1.04 - Bes - 13.05.2013 15:31

Berserker, признайся, что это было ооочень давно... сейчас тебе потребуется куда меньше времени чтобы своять куда более сложный чем тот злосчастный 118


RE: ERA scripts Rus ver. 1.04 - Berserker - 13.05.2013 16:47

Это было пол года назад где-то. Не выпущенный мод на Руны.


RE: ERA scripts Rus ver. 1.04 - Bes - 13.05.2013 19:54

Berserker, открой тему по этому моду, и поделись идеями по видению диалога... вместе ж проще что-то делать, обязательно поможем )


RE: ERA II - Bes - 01.06.2013 14:25

Quote:'T' - текст (скрыть)

0: пропускается
1: 'T'...
2: xxx номер - уникальный Id пункта
3: номер x позиции - X позиция в диалоге от верхнего левого угла
4: номер y позиции - Y позиция в диалоге от верхнего левого угла
5: dx номер - горизонтальный размер пункта
6: dy номер - вертикальный размер пункта
7: текст - текст (может быть пустым и заполняться позже)
8: шрифт - имя файла шрифта
9: цвет - цвет текста
10: bkcol - цвет фона
11: выравнивание - выравнивание текста (0=по левому краю; 1=по центру; 2=по правому краю)
12: флаги - специфическое значение (ещё не известно полностью)
13: 'hint' - выводимый текст в диалоговом поле описания при наведении курсора на данный элемент диалога
Berserker, а можно как-нить через ERM уже в игре "налету" сменить цвет фона области текста для DL-диалога


RE: ERA II - Berserker - 01.06.2013 19:33

Quote:Berserker, а можно как-нить через ERM уже в игре "налету" сменить цвет фона области текста для DL-диалога
Я не изучал вопрос сей, скажу честно. Может статься, что команды такой и нет, нужно вручную менять поле в структуре и вызывать функцию обновления элемента.


RE: Ваши вопросы по ERM-скриптам - Algor - 25.06.2013 18:06

Еще вопрос: как сделать чтобы DL-диалог открывающийся по нажатию ПКМ, по отжатию закрывался (отображение подсказки)? Что-то не нашел навскидку.


RE: Ваши вопросы по ERM-скриптам - MOP - 25.06.2013 18:27

sergroj Wrote:Пара функций работы с диалогами в Эре:

1) Показ диалога, пока зажата клавиша мыши (левая или правая).
x1 = номер диалога
(после показа диалог уничтожается - перед следующим показом надо загружать снова)

2) Уничтожение диалога.
x1 = номер диалога
Полезно при редактировании диалогового темплейта, чтобы при каждом показе диалог загружался заново.


Источник 4


RE: Ваши вопросы по ERM-скриптам - Algor - 25.06.2013 19:37

Спасибо, работает.


RE: Ваши вопросы по ERM-скриптам - Algor - 26.06.2013 02:31

Еще вопрос по DL-диалогам: можно ли менять позицию диалога на экране в процессе игры? Нужно чтобы при первом нажатии он вылазил в одном месте, а при втором - в другом.
Т.е. по другому: как изменить следующие свойства диалога:
3: номер x позиции - X позиция от верхнего левого угла (-1=центр экрана)
4: номер y позиции - Y позиция от верхнего левого угла (-1=центр экрана)
ну и
8: xxx номер - установить цвет рамки диалога под цвет номера игрока (-1 означает текущего игрока)


RE: Ваши вопросы по ERM-скриптам - MOP - 26.06.2013 06:56

Официально - нет (хотя для себя возможность менять позицию диалога сделал).
Однако, как всегда, есть способы вывернуться.
1. Если хочется менять цвет игрока для фоновой картинки диалога, то накладываешь поверх неё PCX-пункт - копию картинки, а затем обращаешься к этому элементу через его id и 2-ой параметр DL:A = 13. Если фон диалога - стандартная рамка (сконструирован автоматически из кадров DIALGBOX.DEF), то поменять цвет игрока можно, наложив всего один кадр DIALGBOX.DEF в левый-верхний угол диалога и точно так же сменив его цвет через DL:A.
2. Если хочется менять позицию диалога, то делаешь фоновую картинку прозрачной и покрывающей весь экран, а смещаешь вместо диалога все его элементы с помощью параметров DL:A = 52 и 53. Недостаток - диалог не будет иметь тени.

Кстати, давно хотел сказать Берсеркеру: то, что он воспринял в исходниках WoG как ограничение на 2 символа номера диалога - на самом деле отступ в 2 строки от начала текстовика DL-шаблона. Никакого такого ограничения на номер диалога не существует.


RE: Ваши вопросы по ERM-скриптам - Algor - 26.06.2013 09:39

MOP, спасибо. Жаль конечно, что через какой-нить DL#:A-1 нельзя, но на безрыбье...


RE: Ваши вопросы по ERM-скриптам - Algor - 26.06.2013 13:34

(26.06.2013 06:56)MOP Wrote:  Недостаток - диалог не будет иметь тени.
Диалог имеет тень. Недостаток в том, что в HD экран побольше и тень этой прозрачной подложки отрисовывается по краям за пределами 800x600 (размер подложки). Отключить тень диалога можно как-то?


RE: Ваши вопросы по ERM-скриптам - MOP - 26.06.2013 14:05

Попробуй:



RE: Ваши вопросы по ERM-скриптам - Berserker - 26.06.2013 17:51

Quote:Кстати, давно хотел сказать Берсеркеру: то, что он воспринял в исходниках WoG как ограничение на 2 символа номера диалога - на самом деле отступ в 2 строки от начала текстовика DL-шаблона. Никакого такого ограничения на номер диалога не существует.
Видно давно я это сказал, если говорил. Очень давно. ИД используем большие.


RE: Ваши вопросы по ERM-скриптам - MOP - 26.06.2013 18:33

Да, два с лишним года назад
Интересно, как тебя тогда отладчик обманул. Sm


RE: Ваши вопросы по ERM-скриптам - Berserker - 26.06.2013 21:12

Глянул сейчас Феникс — ИД-ки диалога меньше ста.
В вот в невыпущенном моде — #53672902, уже хэш от строки.
Не помню точно, в чём была проблема (.


RE: Ваши вопросы по ERM-скриптам - Bes - 26.06.2013 22:12

Berserker, я брал номер диалога, для ФМ, начиная с 99 (в унисон тогдашнему script99.erm)
а потом все шли в сторону уменьшения... не пробовал, честно говоря, брать номера свыше 2 знаков..


RE: ERA II - Bes - 04.09.2013 18:08

(04.09.2013 11:11)igrik Wrote:возможно ли отловив нажатие кнопки (например ESC) вызвать триггер DL (const int TRIGGER_DL = 30371) 30371 это не номер ли её функции? Или я что-то путаю...
конечно возможно, если не лень, посмотри в Феникс-Моде, к примеру, как это делается
если лень, напиши "мне лень", тогда я свою лень пну и она посмотрит за тебя и сообщит )))


RE: ERA II - igrik - 05.09.2013 12:36

BES,утверждение про "лень" - к чему это? разве было об этом хоть слово ... или не удачный денёк? :D
в Феникс моде смотрел, с "первого раза" в скрипте не нашёл, подумал что в *bin зарыто - вот и спросил. Теперь буду скрипт смотреть под "увеличительным стеклом"...


RE: ERA II - Bes - 05.09.2013 18:46

igrik, вот пример вызова DL-диалога при нажатии F1 на клаве...

думаю тут понятно будет, что вам нужно, чтобы вызвать свой диалог по нажатию любой др.кнопки (таблица кодов кнопок для отлова их триггером 77003 есть в ERA где-то...)


RE: ERA II - igrik - 05.09.2013 22:47

Блин, Bes, мы с тобой про немного разные вещи говорим: я имел ввиду триггер (мне нужно закрыть мой диалог по ESC, ведь почему-то диалоги через эту кнопку не закрываются. (Хотя в Феникс-моде по Esc диалоги закрываются). Может из-за номеров диалога: я использую 352, а Вы в Фениксе - номера меньше 100 ),
Для этого я и хотел вызвать именно триггер !?DL, а потом в нём рессивер !!DL:C1.
... Рессивер по нажатию кнопки вызвать то не проблема...)))


RE: ERA II - Berserker - 05.09.2013 23:40

Не выйдет. Даже если вызвать событие ЕРМ вручную. Правильно или найти код Сеожа для закрытия диалога, он, кажется есть в Фениксе, или поставить кнопке выхода правильный флаг в текстовике (20, кажется).


RE: ERA II - igrik - 06.09.2013 02:21

Quote:поставить кнопке выхода правильный флаг в текстовике
ESC - 1
Enter - 28
"бритва Оккама" в действии :D
Спасибо Bes, Berserker


RE: ERA II - Berserker - 06.09.2013 02:26

На здоровье Sm


RE: Список модов со ссылками и информацией - igrik - 09.12.2013 00:06

(08.12.2013 23:43)Algor Wrote:  
Quote:!!DL352:A10/52/y1/0; [подложка]
Странно в справке этого нет. И ошибок у меня не было 105
Но на всякий случай исправил. Спасибо.
P.S. только в этом участке или во всех идентичных?


RE: Список модов со ссылками и информацией - Algor - 09.12.2013 01:36

(09.12.2013 00:06)igrik Wrote:  P.S. только в этом участке или во всех идентичных?
Там вроде в нескольких возникало, я у себя во всех поправил не задумываясь. Я сам при работе с диалогами с таким не сталкивался, у себя не указываю 4й параметр (но у меня нигде и не используется изменение координат, так что хз). Кстати, возможно возникающая ошибка вторична и ее можно исправить более корректно в другом месте, я не копал глубоко, не было времени.


RE: Список модов со ссылками и информацией - Berserker - 09.12.2013 17:47

Четвёртый параметр в DL всегда должен быть равен 1 (обновить диалог). Из-за этого уже я ряда людей и модов были проблемы.


RE: Список модов со ссылками и информацией - GrayFace - 09.12.2013 18:31

Если равен 1, он просто перерисовывает элемент диалога после обработки команды.
А весь диалог, думаю, можно перерисовать так: !!DL:A-1/0/0/1;
О, круглый пост: 1200



RE: Список модов со ссылками и информацией - Algor - 09.12.2013 19:13

(09.12.2013 17:47)Berserker Wrote:  Четвёртый параметр в DL всегда должен быть равен 1 (обновить диалог). Из-за этого уже я ряда людей и модов были проблемы.
Там DL используется перед отображением диалога, перерисовывать не нужно. Или именно из-за "0" какие-то проблемы возникали?


RE: Список модов со ссылками и информацией - Berserker - 09.12.2013 19:41

Когда нужна перерисовка, например, после изменения картинки в ответ на щелчок, без 1 часты вылеты (ладно бы тупо не обновлялось). Свидетелем был несколько лет, в том числе и в Фениксе, Сагамозе. С "/1" проблем нет.


RE: Создание расширенных диалогов - Bes - 01.06.2014 02:28

Quote:0: пропускается
1: 'T'...
2: xxx номер - уникальный Id пункта
3: номер x позиции - X позиция в диалоге от верхнего левого угла
4: номер y позиции - Y позиция в диалоге от верхнего левого угла
5: dx номер - горизонтальный размер пункта
6: dy номер - вертикальный размер пункта
7: текст - текст (может быть пустым и заполняться позже)
8: шрифт - имя файла шрифта
9: цвет - цвет текста
10: bkcol - цвет фона
11: выравнивание - выравнивание текста (0=по левому краю; 1=по центру; 2=по правому краю)
12: флаги - специфическое значение (ещё не известно полностью)
13: 'hint' - выводимый текст в диалоговом поле описания при наведении курсора на данный элемент диалога

Собственно, для поля 10 такие вот цвета...
Image: bgcolor.png
ячейка цвета соответствует значению поля = 1,2,3,...30,31 (дальше не проверял)


RE: Создание расширенных диалогов - Berserker - 01.06.2014 05:01

Спасибо, это нужно в помощь.


RE: Ваши вопросы по ERM-скриптам - igrik - 03.10.2014 01:39

И почему обводка по контуру фона имеет то синий цвет, то цвет текущего игрока?


RE: Ваши вопросы по ERM-скриптам - gamecreator - 03.10.2014 02:06

Если правильно помню, то "обводка" синего цвета - баг DL. В ресурсах игры рамка именно синяя.


RE: Ваши вопросы по ERM-скриптам - igrik - 03.10.2014 02:18

а обводка действительно бажит - то меняет цвет, то нет. Интересно как Algor решил в BH


RE: Ваши вопросы по ERM-скриптам - MOP - 03.10.2014 05:59

Наложи ту же самую рамку поверх основания диалога как новый элемент. А перед показом измени ему цвет с помощью DL:A. Всё просто.


RE: Ваши вопросы по ERM-скриптам - Algor - 03.10.2014 14:25

igrik Wrote:Интересно как Algor решил в BH
Никак не решал.


RE: Ваши вопросы по ERM-скриптам - igrik - 03.10.2014 20:10

Изменение координат отображения WoG диалогов DL




RE: Ваши вопросы по ERM-скриптам - Algor - 11.12.2015 23:46

igrik@df2 Wrote:Изменение координат отображения WoG диалогов DL

Вопрос: можно ли задать смещение от центра или правой/нижней стороны экрана?
Разрешение экрана в HD в общем случае произвольное, а привязывать диалог к любой стороне очень хотелось бы.


RE: Ваши вопросы по ERM-скриптам - gamecreator - 12.12.2015 01:36

(11.12.2015 23:46)Algor Wrote:  Вопрос: можно ли задать смещение от центра или правой/нижней стороны экрана?
Получи разрешение экрана, а дальше - дело техники. Вон в коде даже видно откуда его брать:



RE: Ваши вопросы по ERM-скриптам - igrik - 12.12.2015 18:21

(12.12.2015 03:04)Algor Wrote:Блин, вот зачем я увидел смещение диалогов, теперь все диалоги переделывать...
Не надо переделывать диалоги, проще эту функцию доделать и будешь прилиплять окна к краям эрана через одну строчку, про что я и говорил ранее


RE: Ваши вопросы по ERM-скриптам - Algor - 12.12.2015 23:54

igrik, мне надо было не к краям экрана, а к краям окна боя. Но переделывать пришлось не из-за этого, а из-за того, что теперь стало удобнее использовать новую компановку элементов.

gamecreator, спасибо. Я что-то даже и не полез код смотреть. Совсем обленился, старею наверное )


RE: Ваши вопросы по ERM-скриптам - igrik - 27.01.2017 14:57

Решил помаяться ерундой, вот и намаялось.
Простейший образец создания диалога на DL:

Содержимое тектовика "DL_simple.txt":
Code:
                       
                    
    #    467    -1    -1    300    175    20    -1        2048
    Text    2048    1    150    300    20          smalfont.fnt    1    0    1    8    
    Text    2    15    16    280    25    Некромантия: тип существ    Bigfont.fnt    7    0    5    8    

    Def    10    35    55    58    64    twcrport.def    58    16    Выбрать: Скелеты
    Def    11    120    55    58    64    twcrport.def    60    16    Выбрать: Ходячие Мертвецы
    Def    12    205    55    58    64    twcrport.def    143    16    Выбрать: Мумии



RE: Ваши вопросы по ERM-скриптам - ALEXALEX3434 - 27.01.2017 15:06

igrik, О то что надо спасибо)

Вечером обязательно в свой мод добавлю))))))


RE: Ваши вопросы по ERM-скриптам - ALEXALEX3434 - 27.01.2017 15:40

igrik, Подскажи в какую папку DL_simple.txt кидать???


RE: Ваши вопросы по ERM-скриптам - Algor - 27.01.2017 15:58

/mods/<твой мод>/data


RE: Вопросы по моддингу - totkotoriy - 24.10.2018 02:40

Не помню говорил - не говорил. С диалогами не всё в порядке. Если ставить цвет рамки -1, то внизу рамка не доходит до конца окна. Если ставишь какой либо цвет - то нормально становится.
Image: 1.jpg
Приходится все новые нестандартные диалоги делать с красным цветом рамки Bad

Да и вообще бывает часто даже без скриптов стандартные диалоги выводятся с неправильными цветами рамок...

Ещё есть подозрение, что команда !!FU:E в некоторых функциях работает некорректно и приводит к вылетам.


RE: Вопросы по моддингу - igrik - 24.10.2018 15:11

А как ты цвет диалогов меняешь? Покажи.
У меня в "NewLevelupScreen" никогда такой проблемы не было


RE: Вопросы по моддингу - totkotoriy - 24.10.2018 15:42

(24.10.2018 15:11)igrik Wrote:  А как ты цвет диалогов меняешь? Покажи.
У меня в "NewLevelupScreen" никогда такой проблемы не было

Задаю в txt диалога только, а в потом никак
А можно как-то в скрипте изменить?


RE: Вопросы по моддингу - igrik - 24.10.2018 16:11

(24.10.2018 15:42)totkotoriy Wrote:  Задаю в txt диалога только, а в потом никак
А можно как-то в скрипте изменить?
Да. Для этого используешь PCX как подложку.
Там, зная ее номер ID используешь
!!DL[номер_диалога]:A[номер элемента подложки]/13/[цвет игрока];


RE: Вопросы по моддингу - MOP - 24.10.2018 16:33

А я везде, где требуется окраска диалога со стандартной рамкой, в левый верхний угол добавляю под каким-нибудь номером первый (нулевой) кадр DIALGBOX.DEF. Окрасишь его - окрасится вся рамка.


RE: Вопросы по моддингу - totkotoriy - 24.10.2018 16:34

(24.10.2018 16:11)igrik Wrote:  
(24.10.2018 15:42)totkotoriy Wrote:  Задаю в txt диалога только, а в потом никак
А можно как-то в скрипте изменить?
Да. Для этого используешь PCX как подложку.
Там, зная ее номер ID используешь
!!DL[номер_диалога]:A[номер элемента подложки]/13/[цвет игрока];
Спасибо, попробую. Мне кажется я уже пробовал так и делать, и что-то не получалось. Посмотрю...


RE: Вопросы по моддингу - totkotoriy - 24.10.2018 16:40

Igrik, Блин, подожди, так это придется для каждого окна фон рисовать?


RE: Вопросы по моддингу - igrik - 24.10.2018 17:39

(24.10.2018 16:40)totkotoriy Wrote:  Igrik, Блин, подожди, так это придется для каждого окна фон рисовать?
Ну вот тебе как решение Ab

(24.10.2018 16:33)MOP Wrote:  А я везде, где требуется окраска диалога со стандартной рамкой, в левый верхний угол добавляю под каким-нибудь номером первый (нулевой) кадр DIALGBOX.DEF. Окрасишь его - окрасится вся рамка.
Image: image.jpg

* * *

upd: есть способ и чисто на ERM

(24.10.2018 02:40)totkotoriy Wrote:  Да и вообще бывает часто даже без скриптов стандартные диалоги выводятся с неправильными цветами рамок...
Цвет рамки выводится в том цвете, в каком был использован последний стандартый геройский диалог. И если ты будешь играть зеленым цветом, а рамку своего воговского сделаешь красной, то в случае использования IF:M^^; (например как подсказку в своем диалоге) твой воговский диалог перекрасится в зеленый.


RE: Ваши вопросы по ERM-скриптам - wessonsm - 07.05.2019 19:06

Доброго времени суток всем.
Нужна информация по ресиверу !!DL, а именно о флагах элементов шаблона диалога, хотя бы по элементам Text, Def, Button и PCX.
В ERM-хелпе написано только вот это: "флаги - специфическое значение (еще не известно полностью)".
Тем не менее, ресивер прекрасно работает, используется в модах, и флаги там расставлены правильные Sm
Подскажите пожалуйста кто знает, где можно раскопать такую инфу.


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 08.05.2019 11:51

(07.05.2019 19:06)wessonsm Wrote:  Подскажите пожалуйста кто знает, где можно раскопать такую инфу.

Нигде её нет, поэтому лучше выставлять стандартные значения, в большинстве случаев, например, для P - 2048, D - 16, T - 8, S - 4 и т.д.


RE: Ваши вопросы по ERM-скриптам - igrik - 08.05.2019 18:04

(07.05.2019 19:06)wessonsm Wrote:  Подскажите пожалуйста кто знает, где можно раскопать такую инфу.
Да, такой инфы нет в просторах. Все начинали с метода тыка и по образцам уже кем то запиленным. Благо сейчас их тьма тьмущая (MoP, BattleHeroes, H3Lord)
Скажу одно, что у текста это выравнивание (0 - верх лево, 10 - низ право, 5 - по центру, 9 - по центру низа и т.д. Но точно не помню)


RE: Ваши вопросы по ERM-скриптам - wessonsm - 08.05.2019 21:41

Спасибо. Я надеялся, с этими флагами можно сделать что-нибудь интересное.
Я предполагал, что они должны суммироваться побитно, то есть если есть флаг 2048, то должны быть флаги 1024, 512 и так далее.


RE: Ваши вопросы по ERM-скриптам - Algor - 22.02.2020 03:12

У кого-нить есть рабочий пример с !!DL:H?
Ставлю !!DL<номер_диалога>:H<номер элемента>/z<номер_переменной_с_подсказкой>; - и краш.


RE: Ваши вопросы по ERM-скриптам - ElfbI - 22.02.2020 03:27

Algor, возможно, номер текстовой переменной без z ?


RE: Ваши вопросы по ERM-скриптам - Algor - 22.02.2020 03:28

проверял, нет


RE: Ваши вопросы по ERM-скриптам - ElfbI - 22.02.2020 03:31

Algor, ну про номер диалога и спрашивать не буду)))


RE: Ваши вопросы по ERM-скриптам - Algor - 22.02.2020 03:32

Номер диалога подставляю после DL, я ж написал
!!DL<номер_диалога>:H<номер элемента>/z<номер_переменной_с_подсказкой>;


RE: Ваши вопросы по ERM-скриптам - ElfbI - 22.02.2020 03:35

Algor, я имею ввиду, он не занят - номер?


RE: Ваши вопросы по ERM-скриптам - Algor - 22.02.2020 03:37

Нет, это мой диалог и без установки подсказок он полностью рабочий.


RE: Ваши вопросы по ERM-скриптам - daemon_n - 22.02.2020 04:48

Algor, есть идея. До этого уже есть подсказка того элемента? Имею ввиду, попробуй любую сделать. И ещё вопрос. Показ диалога идет после всех инициализаций и переменных с текстом?


RE: Ваши вопросы по ERM-скриптам - Algor - 22.02.2020 04:56

Подсказка уже есть. Задана в шаблоне диалога. Надо программно поменять. Да, все переменные инициализированы...

Повторю вопрос: у кого-нить есть рабочий пример с !!DL:H?


RE: Ваши вопросы по ERM-скриптам - Berserker - 22.02.2020 05:29

Algor, не нахожу примеров. С первого взгляда код корректен. Нужно отлаживать !!SN:H.


RE: Ваши вопросы по ERM-скриптам - Algor - 22.02.2020 11:57

Dash1

"Особенность" работы !!DL:H :
Если устанавливать подсказку для элемена, которому уже задана подсказка в текстовике диалога - следует вылет из игры.
Если в текстовике диалога подсказка для элемента НЕ задана (пустая строка) - она нормально устанавливается через !!DL:H

Добавил в тему ERM Help'а.

...ля, 3 часа убил Bad


RE: Ваши вопросы по ERM-скриптам - Berserker - 22.02.2020 16:04

Algor, как я тебя понимаю…Yes


RE: Ваши вопросы по ERM-скриптам - PerryR - 29.08.2020 14:47

How to close a Dialogue with pressing "Enter" ?


The usual way would be by pressing a button:



RE: Ваши вопросы по ERM-скриптам - daemon_n - 29.08.2020 14:50

PerryR, in dl editor - flag 28


RE: Ваши вопросы по ERM-скриптам - Night - 05.10.2020 22:45

Нужна помощь в скрипте!

Занимаюсь всяким украшательством, заодно разбираюсь с ресивером !!DL и как он работает вообще.
Давно хотел кое-что изменить, чем и занимаюсь.

Как выглядит стандартное сообщение по ПКМ на университете вы знаете думаю, лишний раз показывать нет смысла.

Так выглядит, если использовать скрипт Волшебство I (Click to View)

Такой вид, (черновой вариант) делает мой скрипт (Click to View)

Можно было наверно и через IF:N всё сделать, но там "ок" нужно нажимать и если убирать, то в памяти игры копаться необходимо, а это я пока не умею. В отличии от доступности разбора !!DL.
Мой вариант скрипта, показывает и убирает отображение по нажатию/отпусканию ПКМ, что здорово.

Проблема же такая. В работе !!DL при использовании таблицы, рамка открывается по изначально заданным параметрам. В данном случае моё окно появляется ИДЕАЛЬНО по центру экрана. А мне хочется сделать, чтобы показывался рядом с указателем мышки. Подобное, как мне видится вполне реально сделать, но я просто не понимаю как. Есть всякие намёки из этой темы, если я правильно воспринимаю, но как адаптировать под себя, чтобы рамка появлялась по моим координатам курсора - не понимаю.


Код самого скрипта: (Click to View)
Ссылка на ЯД архива скрипта если кому-то будет интересно проверить его работу. Работает пока только если герой имеет навык волшебство.


RE: Ваши вопросы по ERM-скриптам - Berserker - 05.10.2020 23:12

Night, рядом с указателем штатными средствами нельзя. К тому же пришлось бы вручную рассчитывать ширину диалога, ширину экрана, с какого края (левый/правый) диалог вмещается в экран, снизу или сверху, где находится объект и т.д. Поправьте меня, если я ошибаюсь.


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 06.10.2020 00:30

(05.10.2020 22:45)Night Wrote:  В данном случае моё окно появляется ИДЕАЛЬНО по центру экрана. А мне хочется сделать, чтобы показывался рядом с указателем мышки. Подобное, как мне видится вполне реально сделать, но я просто не понимаю как.

Получаешь координаты клика мыши и исходя из них рассчитываешь координаты экрана диалога, с поправкой на границы окна карты приключений.

Готовая функция вывода DL-диалога по координатам мыши есть только в MoP на WERD.


RE: Ваши вопросы по ERM-скриптам - Night - 06.10.2020 09:43

Berserker, мне не то, чтобы совсем надо полностью нарисовать диалог, а выполнить !!DL:S в заданном месте, а конкретно на клике, где находится курсор мышки.
Возможно, тут не всё так сложно, ведь DL уже изначально берёт какие-то внутренние параметры для обработки, загружает предоставленную txt файлом таблицу и прочее и пр.
Хотя также вероятно, в моём "хотении" реализация сложна. Хз, буду со временем разбираться.

XEPOMAHT,
Quote:Получаешь координаты клика мыши и исходя из них рассчитываешь координаты экрана диалога, с поправкой на границы окна карты приключений.
Как-то так я и думал, но из готовых вариантов, как образец, нужного не нашёл. Или просто не понимаю, как это воплотить.

МоР по описанию и беглому взгляду крайне интересный проект, но увы, пока не хочу очень уж сильно распыляться. Итак и ЕРМ изучаю и уже хочется в памяти покопаться и вот местами графически меняю интерфейс покрасивше. Нужно остановиться 148

(06.10.2020 03:09)Bes Wrote:Night, в ФМ есть готовый DL-шаблон для показа содержимого таких вот объектов, бери готовое и не трать время на вымеривание своих элементов в диалоге.
Что до желания видеть окно там, где хочется - излишний каприз, не стоящий затрат на его воплащение.
Или, в конце-то концов, стань очередным моддером на базе MoP, там для таких идей куча готовых плюшек, нам и на этой платформе моддеры нужны, да ещё и с таким потенциалом как у тебя Rolleyes
Bes, ФМ, ФМ...Феникс мод? Надо будет расковырять его, помню откладывал на изучение ранее.

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

Оказалось не так. Почти все хинт и прочие окна показываются ровно по центру экрана самой игрой в оригинале, WoG и тот же SoD.

Вообщем это меняет дело. Конечно всё еще хочется, но уже не так критично, со временем что-нибудь придумаю. Тем более я нашёл зацепку для своих идей - окно показа информации о Герое по ПКМ отображается на месте клика мышкой всегда.

Как дойду до копания в памяти, есть идея отыскать адреса отвечающие за отрисовку и там уже работать с этим. Ведь тот же код из моего скрипта, где идет !!FU90303:S80;, как я понимаю занимается тем же самым. Указывает ресиверу DL отработать отображение готового дефа по функции, а в самой функции работа с памятью, где видимо записаны те самые стандартные Hint отображение по ПКМ с центрированием.

Кажется это всё так работает, но если где сильно не прав - поправьте, это будет к пользе.


RE: Ваши вопросы по ERM-скриптам - XEPOMAHT - 06.10.2020 11:18

(06.10.2020 09:43)Night Wrote:  Оказалось не так. Почти все хинт и прочие окна показываются ровно по центру экрана самой игрой в оригинале, WoG и тот же SoD.

Воговский код по-умолчанию отправляет на содовскую функцию создания такого окна минус единицы вместо координат. Если найдёшь в памяти вога это:

Code:
int   NextMessX=-1;
int   NextMessY=-1;

то сможешь изменять координаты при вызове данного диалога.


RE: Ваши вопросы по ERM-скриптам - igrik - 06.10.2020 11:41

Night, вот то что ты ищешь.

Upd: Закинул в тему DL и UN:C

Upd2: А вот так код выглядит на ERM 2.0 (Click to View)



RE: Ваши вопросы по ERM-скриптам - Night - 06.10.2020 20:27

igrik, Шииииикаарная ссылка, спасибо в очередной раз!! Мечты сбываются и даже не газпром 132
Такой вид кода отлично работает - отображает по моим координатам мышки и не требует доп.нажатий, ПКМ нажал, появилось, отжал, пропало.
Dance3

Дополнено:
Ааа, даже не нужно выполнять вторую функцию, предложенный вариант работает по сходному принципу, показ на ПКМ нажал/отжал.
Это здорово.

Дополнено №2:
А, не, надо или я просто не понимаю, как воспользоваться проверкой v1, из:
Чтобы по отпусканию ПКМ пропадал диалог... Ну раз работает с двойным вариантом, оставлю с комбинацией двух функций. Работает же всё.Rolleyes

Посмотрю, как лучше будет, по центру или где клацнул мышкой, но то, что появился такой способ в копилке знаний - чертовски классно и приводит меня в восторг Sm



XEPOMAHT,
Quote:Если найдёшь в памяти вога это:

У-у-у, это не скоро будет, когда дойду до копания в памяти. Возможно с января начну копаться, курить гайды, читать про реверс-инжиниринг и сопутствующую инфу.


RE: Ваши вопросы по ERM-скриптам - igrik - 07.10.2020 09:59

(06.10.2020 00:30)XEPOMAHT Wrote:  Готовая функция вывода DL-диалога по координатам мыши есть только в MoP на WERD.
Я обновил функцию - теперь и для ERA и есть такой функционал с проверками на выходы за границы экрана

Night, обнови у себя функцию. Новая работает ваще чётко...


RE: Ваши вопросы по ERM-скриптам - Berserker - 07.10.2020 15:43

igrik, дополни, пожалуйста, пост определением констант. Может быть, добавлю в Эру по умолчанию. К версии HD-мода привязки нет ведь?


RE: Ваши вопросы по ERM-скриптам - Night - 07.10.2020 17:53

igrik, Dance3120 Супер!

*По ссылке опечатка в строке: !!UN:Cy2/-4/?y3;

Новый вид окна зачётный, действительно. Раньше улетал за экран и в случае если в !!DL, где только def'ки использовались, всё было хорошо, то с текстом, улетая за окно стабильно с 1 или 10 раза выдавал краш игры.

Я вообще в приятном удивлении, что засыпая сегодня ночью, с мыслью: "Блин, чёртов текст портит всю прекрасную малину", проснулся и тут сразу решение. Это чудесно!

А то я уже и картинок с описанием проблемы на утра заготовил ^_^
Было такое (Click to View)
Внизу окно, вверх текст выпрыгнул, через пару кликов - краш.


И я это, ещё спросить пришёл - у вас окошко нигде не завалялось дополнительное? Rolleyes

Это я к тому, что базовое окно диалога !!DL имеет вид с дополнительной строкой HINT'a.


Строка под текст (Click to View)
Там подсказка по наведению мышки по идеи (Click to View)

В обычном случае оно актуально, но раз у меня вызов окна только по ПКМ нажал/отпустил, там уже ничего не выбрать и эта строка лишняя.


Её можно использовать для своего текста (Click to View)
Можно просто скрыть, не велика сложность (Click to View)

Вообще её можно перекрыть своим дефом. Но раз уж daemon_n посоветовал использовать больше базового интерфейса игры, я к этому прислушался и захотелось по минимуму использовать сторонние текстуры. Есть же чистое окно, когда к примеру вызывается информация о dwelling'ах, как на скриншоте тут.
Я так понимаю, стандартное окно по ресиверу DL имеет ID 2746 - именно такое число выдаёт проверка в этой строке:
Или это нечто иное?
В любом случае, какие есть возможности использовать другой вид окна по команде DL или нет вариантов?


Дополнено: отчасти нашёл вариант ТУТ.

P.S. И кто подскажет, куда можно использоваться этот код:
Это из соответствующей темы. Я его (код) и так склонял и этак, но не разобрался, каким образом использовать. Пытался правда в моё диалоговое окно, возможно там вообще так не "склоняется" 96-copy По итогу я думаю это для уникальных строений, чтобы отображать нестандартное описание в подсказке внизу на КП. Верно?


RE: Ваши вопросы по ERM-скриптам - Bes - 07.10.2020 18:58

Quote:
Night, статус бар - это там где анимация "Новый день!" и сколько ресурсов поднял из кучки...
Кстати, посмотри ресурсы ФМ, там есть заготовки без этой области для подсказок


RE: Ваши вопросы по ERM-скриптам - wessonsm - 07.10.2020 18:59

Night, Если в строке заголовка шаблона диалога (которая начинается с #) в столбце 8 (цвет рамки) указать 0, а в столбце 10 (id строки с хинт-текстом) -1, то полоски для хинт-текста внизу не будет.
Я не знаю, почему так, видать, формат шаблонов не был до конца доработан.

Цвет рамки можно будет менять в скрипте командой !!DL:A под цвет игрока.
Для этого помещаем в левый верхний угол диалога деф стандартной рамки dialgbox.def, № кадра 0
и меняем его цвет примерно так:
!!OW:C?y2; цвет игрока
!!DL[№]:A[id]/13/y2/1; fix player color

Такие вот хитрые манипуляции.


RE: Ваши вопросы по ERM-скриптам - igrik - 07.10.2020 21:18

(07.10.2020 15:43)Berserker Wrote:  igrik, дополни, пожалуйста, пост определением констант. Может быть, добавлю в Эру по умолчанию. К версии HD-мода привязки нет ведь?
Дополнил. От HD вообще не зависит. Даже если игра будет без HD, то прочитаются 800х600.


(07.10.2020 17:53)Night Wrote:  *По ссылке опечатка в строке: !!UN:Cy2/-4/?y3;
Это не совсем уж и опечатка. Но да, я их все для ERM 1 переводил в положительные.

(07.10.2020 17:53)Night Wrote:  И я это, ещё спросить пришёл - у вас окошко нигде не завалялось дополнительное? Rolleyes

Это я к тому, что базовое окно диалога !!DL имеет вид с дополнительной строкой HINT'a.
Нет, чего нет, того нет.
Попробуйте способ от wessonsm, но я его не проверял и даже впервые слышу.


(07.10.2020 17:53)Night Wrote:  P.S. И кто подскажет, куда можно использоваться этот код:
[spoiler]
Этот хинт только для карты приключений.


RE: Ваши вопросы по ERM-скриптам - Night - 07.10.2020 21:33

Bes Wrote:статус бар - это там где анимация "Новый день!" и сколько ресурсов поднял из кучки...
Кстати, посмотри ресурсы ФМ, там есть заготовки без этой области для подсказок
Bes, А разве там, где "Новый день" и про ресурсы - это называется не "Окно состояния"? Статус бар как-раз внизу обозначение.
Status bar - Состояние полоски, если переводить дословно, в некоторых вариациях.

igrik,
Quote:Это не совсем уж и опечатка. Но да, я их все для ERM 1 переводил в положительные.

Я просто запустил изначальный - отладчик выдал ошибку. Я зашёл в скрипт, поставил ZVSE2 - опять ошибки. Поменял и стало нормально всё.
А второй на синтаксисе ERM2 пока не разбирал, вообще с ЕРМ2 пока тяжко идёт. Только-только начинает проясняться ерм1 код, понимание, куда уж до ерм2 Sm

Quote:Этот хинт только для карты приключений.
Это который внизу, подсказка?
А то вроде Bes намекает на это: (Click to View)

Дополнено:
igrik Wrote:Попробуйте способ от wessonsm, но я его не проверял и даже впервые слышу.
Это да, заработало. С цветом игрока были проблемы старые - всегда красный, но сейчас я так попробовал сделать:
Где в DL_ChangeCoords двойной код функции сначала на новые координаты и в конце на изменение окна, чтобы по ПКМ отжамался.
А в DlgSetColor такое:
И пока мне нравится, работает хорошо и главное - правильно. Цвета себе меняю и меняются цвета рамки. Буду смотреть над устойчивостью, вначале, когда пытался в один запихать всё - были краши.


RE: DL - создание расширенных диалогов - Night - 08.10.2020 21:06

Раз Bes сделал разумное предложение, что текущие изыскания по !!DL стоит дополнить в тему посвященную этому ресиверу, то я этому совету последую.

Итак, по основным командам добавить нечего, тут всё по прежнему. Флаги также непонятны и непознаны, можно про них только с уверенностью сказать, что выбирая значения иные от предложенного шаблона, вызовет либо краш игры, либо просто элемент диалога не отобразится.
Шаблон: Pcx - flags 2048, Def - flags 16, Text - flags 8, Y(es) bottom - flags 2, N(o) bottom - flags 2, на остальных элементах флагов нет.

Из новых появившихся возможностей можно отметить просто замечательный код функции, который предложил Igrik, для того, чтобы рамка диалога не выпадала за окно игры, что вызывало вылет. Требуется, когда окно диалога вызывается по ПКМ в МЕСТЕ нажатия мышкой.

Пример использования в скриптах и сам код:
... тут ваш основной код ...
//Последняя команда УЖЕ ОТОБРАЗИТ диалоговое окно с заданными параметрами. Это функция тождественна команде !!DL#:S#;

;ниже код функции, объединенный из двух. Сначала изменение координат, потом отрисовка диалога по ПКМ нажал/отжал.

Видео пример, как это работает в игре. (Click to View)
Если нужно без отображения рядом с мышкой, а ровно по центру, используем такую функцию:

Если по каким-то причинам рамка вызванного диалогового окна не отрисовывает соответствующие игроку цвета, то используем эту функцию:

Кстати про отрисовку цвета.
По тестам (в чём спасибо wessonsm, подсказавшему мысль) оказалось, что проблема с отображением границ цвета игрока решена, по крайней мере в последней версии Эры 3.0.4.
Сейчас, чтобы наш диалог отрисовал правильно цвет границ, если мы выбрали без подложки из сторонней картинки/дефа, нужно в Dialog Editor выбрать основному окну Border color = "-1" или Border color = "0".

Ещё момент. Выбирая значение Border color иное, от "-1" и "0" - стабильно вызывает краш при вызове диалога у игрока иных цветов. Так если мы поставим значение "2", то вызвав такой диалог игроком синего цвета, будет вылет игры. Но при значении "0" игра сама перерисуют диалог соответствующего игроку цвета.

Добавлено: Информация по вылету в случае установки Border color отличные от "-1 или 0", не совсем точны. В одних случаях ничего не произойдёт, даже цвет рамки будет по цвету игрока, а в других - краш. Неопределенные последствия вообщем. Но в любом случае, -1 и 0 значения стабильны.

Также, правильный цвет границ рамки будет при установки значения "-1", но! разница в отрисовке диалогового окна при выставлении этих значений есть.
Со значением -1, покажет диалог окно со строкой подсказки: (Click to View)
Со значением 0, покажет чистое диалоговое окно: (Click to View)

Это пожалуй главное отличие в установке значений Border color.

Дополнение о цветах подложки текста.
Background Color= "-1" полностью черный фон.

А также наглядный пример смены значений Align - расположение текста: (Click to View)

Упомяну, что графа "Color" - текстовой вставки, где смена цвета сообщения, в ней "-1" делает текст черным.
Ещё замечено, что любое изменение цвета сообщения вызывает краткий баг отображения цвета рамки. При первом просмотре показывает рамку синего цвета. После нескольких кликов на любое другое строение (кроме замка, лол) и цвета рамки становятся соответствующего игроку.


RE: DL - создание расширенных диалогов - wessonsm - 08.10.2020 21:32

Night, что за элементы Y(es) bottom - flags 2, N(o) bottom - flags 2?
Нигде не встречал о них упоминания.


RE: DL - создание расширенных диалогов - Berserker - 08.10.2020 21:41

Night, интересные находки, спасибо.


RE: DL - создание расширенных диалогов - Night - 08.10.2020 21:53

wessonsm, Это из шаблона-примера от разработчика !!DL ресивера, как я понял из файла описания.
Bes ссылку давал и тут кажется и на d2f, там я так понял сопроводительный txt файл к разработке и шаблон.
Фишка в использовании - там деф просто один на кнопку-галочку, второй на кнопку-отмена. Видимо всё Sm

Просто мне как-то в голову вбилась сама идея, вот и упомянул.


RE: DL - создание расширенных диалогов - Bes - 10.10.2020 04:31

Night, прости, я за давностью лет (скрипт от 12,2009) совсем забыл что с Универом заморачивался
шаблон ZSETUPur.txt (Click to View)



RE: DL - создание расширенных диалогов - Night - 10.10.2020 21:53

Bes, Спасибо 132, уже разбираюсь, как у тебя всё было устроено Yes


RE: DL - создание расширенных диалогов - Bes - 11.10.2020 02:23

Night, вот ещё тебе для наглядности, как Мастер для МоР сделал
(11.05.2016 09:36)MOP Wrote:  
(09.05.2016 17:48)Ivor Wrote:  2. В Университете... очень хочется видеть по ПКМ после посещения - какие там навыки,
Сделано:
Image: b6383ae5c0f4.png



RE: DL - создание расширенных диалогов - Bes - 31.10.2020 20:47

Night, ну, похвались, что там у тебя получилось с диалогами, а то пропал на активной стадии и всё, тишина 116


RE: DL - создание расширенных диалогов - Night - 31.10.2020 21:04

Bes, Ну диалог я доделал, вышло неказисто по коду, но работает. С большим опытом сделаю покрасивее всё.
Ещё не добавил проверку на посещения и на кап навыков (если скажем стоят скрипты на кол-во навыков >8).
Пока можно скрипт отсюда скачать, посмотреть. Это пожалуй будет версия 0.9alpha, ибо там до полноценного задуманного осталось относительная мелочь, код уже есть, нужно только вписать в скрипт.

Одна игра, просмотр разными героями:
При улучшение за мифрил в названии учитывается изменение также.



Не доделал ранее, из-за того, что просто болел неделю считай. Вышел 26 вечером за хлебушком, домой пришёл и температура. Хз, ковид ли, или ещё какая погань, с дыханием вроде нет проблем, хотя температура до 38.6 была, голова болела, ломило кости, но это обычные признаки простуды. Только сегодня отошёл и то сейчас опять 37.1 поднялась. Чувствую себя неплохо, но нужно настрой после болезни поймать и доделать всё, ещё планы на улучшения игры есть, хочется продолжить начатое.


RE: DL - создание расширенных диалогов - Bes - 31.10.2020 21:14

обычные признаки простуды - это сопли/кашель/боль в горле.... а ломота костей скорее признак ОРВИ, к коей и ковид можно отнести. Вопрос лишь один - что с хлебом то? думаю кушать то не сильно хотелось, а значит засох, как минимум? 148
рад что выздоровил, конечно, тебя не хватало Yes



RE: DL - создание расширенных диалогов - daemon_n - 01.11.2020 02:45

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


RE: DL - создание расширенных диалогов - Bes - 01.11.2020 21:38

Кто подскажет, касаемо флага для кнопок
Я когда-то знал, как там указать активацию кнопки шаблона через определённую клавишу клавиатуры.
А щас ну совсем не помню как я это делал Unsure
Вот смотрю свои старые шаблоны:
Флаг 50 = кнопка срабатывает по клавише M

Как я это вычислял, хз, и не вижу связи с таблицей виртуальных кодов клавиатуры. Там клавиша M имеет значение 77 (0x4D)
Что я упускаю? Помогите! Sorry


RE: DL - создание расширенных диалогов - igrik - 01.11.2020 23:29

Image: Heroes-Keys.png


RE: DL - создание расширенных диалогов - Bes - 01.11.2020 23:35

igrik, круто, спасибо, надо обязательно в DL-описание 132
но где эта инфа есть? в коде игры?
тогда почему событие OnKeyPressed берёт коды виндовые? странная путаница Unsure


RE: DL - создание расширенных диалогов - Berserker - 02.11.2020 03:14

Bes, я не знаю, что за коды клавиш/раскладку использует Герои 3. Не встречал такой.


RE: DL - создание расширенных диалогов - Bes - 02.11.2020 04:47

малость расширил инфу по фоновому цвету текстового элемента шаблона Gamer1
(дублирующиеся цвета убрал из таблицы)
Image: 279bdde1526e.png


RE: DL - создание расширенных диалогов - MOP - 03.11.2020 18:39

(02.11.2020 03:14)Berserker Wrote:  Bes, я не знаю, что за коды клавиш/раскладку использует Герои 3. Не встречал такой.
Обычные скан-коды же. 105 Ещё в РидМи к Buttons.dll прилигал таблицу, которую взял из интернета.


RE: DL - создание расширенных диалогов - Bes - 05.11.2020 02:40

при отлаживании элементов шаблона очень востребовано обновлять txt-файл шаблона без выхода из игры.
Вот код, который можно повесить на любое срабатывание кнопки, или завязать на клик по конкретному месту в игре, и ваш указанный шаблон обновится, после чего можно сразу проверять ваш DL-диалог
P.S. не забывайте и про встроенное обновление всех скриптов по F12 для ERA Yes



RE: ERA III - Archer30 - 23.11.2020 09:23

I wonder if there is a way to implement keyboard shortcuts for DL dialogues. For example, press "enter" to exit Trainer, same as a mouse click on the interface.
!?DL doesn't seem to work.


RE: ERA III - Berserker - 23.11.2020 09:29

Afair, we just need to set right ID to that Button + in txt files it's possible to set hotkey, but I don't remember how. We should ask igrik or Bes.


RE: ERA III - daemon_n - 23.11.2020 09:32

Archer30, easy. Set flag in dl editor.
0 is esc, 1 is ~, 2 is 1, etc


RE: ERA III - Archer30 - 23.11.2020 10:30

Thank you so much!

Is the flag using the keycodes or something else? So far I've found flag 28 = enter, but how can I find the others?


RE: ERA III - igrik - 23.11.2020 10:32

(23.11.2020 10:30)Archer30 Wrote:  But is it using the keycodes or something else? So far I've found flag 28 = enter, but how can I find the others?
Link


RE: ERA III - Archer30 - 23.11.2020 10:38

Thanks, igrik! 132 Now I understand it.

Just one more question - is it possible to have more than 1 keyboard shortcuts for one button? For example, both Enter and Ese for exiting DL dialogues?


RE: ERA III - Bes - 24.11.2020 00:45

(23.11.2020 10:38)Archer30 Wrote:  Just one more question - is it possible to have more than 1 keyboard shortcuts for one button? For example, both Enter and Ese for exiting DL dialogues?
сделать две кнопки, одна под другой, одинаковые, но с разными кодами клавиш.
Enter и ESC
Игрок не увидит разницы, какая именно была нажата им, пользуясь клавиатурой.
Я так делал, никто не жаловался115

Code:
invisible button    Button    30700    231    215    64    32    IOK6432.DEF    28    
    Pcx    19    230    214    66    34    BOX64X32.PCX    2048    
    Button    30721    231    215    64    32    IOK6432.DEF    1    Quit




RE: ERA III - daemon_n - 24.11.2020 00:55

Bes, тут немного сомневаюсь. Визуально эффекта нажатия не будет для "верхней"


RE: ERA III - Bes - 24.11.2020 01:00

daemon_n, всё есть, поверь на слово


RE: ERA III - Berserker - 24.11.2020 01:17

Очевидно, эффект есть, потому что активная кнопка перерисовывается поверх неактивной. Умно!


RE: ERA III - Archer30 - 24.11.2020 08:42

Brilliant idea, Bes 132


RE: ERA III - daemon_n - 17.01.2021 07:37

(24.11.2020 01:00)Bes Wrote:  daemon_n, всё есть, поверь на слово

Да, есть анимация, но она отличается. Это я просто такой за..дирчивый, вот и примечаю. Спасибо за идею) и за код с перезагрузкой диалога)Ab


RE: DL - создание расширенных диалогов - Archer30 - 15.02.2021 21:11

Hi! I wonder if there is a way to hide a button from DL dialogue. More specifically, I need to make a button
1. unclickable
2. transparent
with ERM only

Edit: With the help from daemon, I figured out.
A button with 3 frames (last frame transparent) + DL:E = perfect


RE: Вопросы по моддингу - daemon_n - 26.03.2021 17:40

Как закрыть кастомный диалог, щелкнув мышью за его границами?


RE: Вопросы по моддингу - Bes - 26.03.2021 23:07

daemon_n, это не в стилистике управления диалогами игры,Dry надо ведь даже в рамках моддинга хотя бы глобальные правила выдерживать, а иначе народ начнёт повально потом просить везде такой удобный вариант закрытия 148


RE: Вопросы по моддингу - daemon_n - 27.03.2021 10:39

Bes, у меня идея на миллион))
Если серьёзно, то я знаю, как сделать это: вызывать диалог popup, но тогда невозможно взаимодействие с его элементами.


RE: Вопросы по моддингу - MOP - 30.03.2021 15:31

(26.03.2021 17:40)daemon_n Wrote:  Как закрыть кастомный диалог, щелкнув мышью за его границами?
Легко. Через прозрачный деф, наложенный на весь экран, в том числе за границы диалога. В шаблоне лучше всего его указать сразу после описания собственно диалогового окна, то есть, этот будет первый активный элемент, а уж поверх него остальные.
Насколько помню, pcx для этого не катит, так как его активная область обрезается границами диалога. А деф можно, и кнопку тоже.


RE: Вопросы по моддингу - igrik - 30.03.2021 15:41

(26.03.2021 17:40)daemon_n Wrote:  Как закрыть кастомный диалог, щелкнув мышью за его границами?
На самом деле это можно сделать через ERM с помощью хука (я когда то делал такое).
Но лучше, если Берс втроит эту обвязку в саму эру (чтобы в DL проверялись типы клика не только 512 (клики мыши в координатах диалога) и 4 (ведение мыши)). Клик ЛКМ за пределами диалога имеет тип 8. ПКМ - 16.

Если нужно - я дам необходимые данные.


RE: Вопросы по моддингу - daemon_n - 30.03.2021 16:06

MOP, спасибо за ответ! Гениальное решение) Я только pcx и пробовал96-copy

igrik, да! RK говорил что-то про это, рассчитывая, что тип 8 уже поддерживается.

Скинь тогда хук пока, пожалуйстаRolleyes


RE: DL - создание расширенных диалогов - Archer30 - 07.09.2021 15:03

Hi, is it possible to have transparent backgrounds for DL? With that it is possible to create DL in different shapes


RE: DL - создание расширенных диалогов - daemon_n - 07.09.2021 15:16

Archer30, it isn't afaik


RE: DL - создание расширенных диалогов - Berserker - 07.09.2021 15:27

Theoretically it's possible, but dialog creating routine should be patched to not create background and shadow at all.


RE: DL - создание расширенных диалогов - Archer30 - 07.09.2021 17:49

I see, thanks!


RE: DL - создание расширенных диалогов - daemon_n - 07.09.2021 19:29

Berserker, disabling shadow patch is already found


RE: Вопросы по моддингу - Archer30 - 03.04.2022 09:41

Hi, I wonder if I can get an address for disabling the shadow of DL dialogues.
The team is making a mod with a DL with transparent pixels on the edge. Therefore, shadows drawing here is not entirely correct, and we wish to disable it if possible.

I had a similar address from Berserker for disabling the shadow of town screen, however, it doesn't work for DLs.



RE: Вопросы по моддингу - wessonsm - 03.04.2022 12:43

(14.01.2017 00:22)igrik Wrote:  

I didn't check.


RE: Вопросы по моддингу - Archer30 - 03.04.2022 13:21

wessonsm, and it worked! Appreciate for your help and igrik's code!


RE: DL - создание расширенных диалогов - MOP - 11.07.2023 15:49

Древний, но так и не высказанный вовремя вопрос: у меня одного перенастройка подсказки к элементу в уже открытом диалоге всю дорогу приводила к нерегулярным вылетам? Помнится, из-за этого мне приходилось прибегать к такому извращению, как не обновление подсказки (что по сути замена ссылки на строку), а непосредственная замена строк в памяти.
Функция настройки подсказки - SUB_L007297CF - в MoP абсолютно идентична таковой в WoG или ЭРЕ. Более того, она вообще не содержит вызова никаких геройских функций, только служебных. Сугубо операции с памятью.
Edit: вспомнил, что изменение подсказки путём замены на адрес другой строки после открытия диалога вообще не работало, только замена самой строки. Но даже в этом случае после вызова SUB_L007297CF то есть вылет, то нет.