jordan
24 April 2018 | 20:21
Приветствую!
Запилил пару макросов для упрощения создания диалогов. В фоле мне всегда не нравилось, бегать по процедурам нодам. Хотелось что бы в одной процедуре можно было бы создавать разветвлённые диалоги, где всё умещается в поле зрения.
Пример с использованием макросов.
CODE |
procedure talk_p_proc begin dlg_start(1) end
procedure dlg_talk(var dlg) begin if (dlg == 1) then begin dlg_if_reply("reply 1 money >=", dude_caps > 0) dlg_reply("reply 1 not money") dlg_option("Option 1 to 2", 2) dlg_option("Option 1 to 3", 3) end if (dlg == 2) then begin dlg_reply("reply 2") dlg_option("Option 2 to 1", 1) end if (dlg == 3) then begin dlg_reply("reply 3") dlg_if_option("Option 3 to 1", 1, dude_wielding_knife) dlg_option("Option 3 to 2", 2) dlg_option("Option 3 to quit", quit) end end
|
Собственно всё видно. Так же нормально работают условия. И нету переходов по нодам.
Ещё написал програмку которая вырезает из скрипта текст и помещает в msg файл, заменяя текст номерами строк.
Пример работы.
QUOTE |
procedure dlg_talk(var dlg) begin if (dlg == 1) then begin dlg_if_reply(1, dude_caps > 0) dlg_reply(2) dlg_option(3, 2) dlg_option(4, 3) end if (dlg == 2) then begin dlg_reply(5) dlg_option(6, 1) end if (dlg == 3) then begin dlg_reply(7) dlg_if_option(8, 1, dude_wielding_knife) dlg_option(9, 2) dlg_option(10, quit) end end
|
QUOTE |
{1}{}{reply 1 money >=} {2}{}{reply 1 not money} {3}{}{Опция 1 to 2} {4}{}{Option 1 to 3} {5}{}{reply 2} {6}{}{Option 2 to 1} {7}{}{reply 3} {8}{}{Option 3 to 1} {9}{}{Option 3 to 2} {10}{}{Option 3 to quit}
|
Удобно диалоги пишутся в самом скрипте. Не нужно лазить по msg.
Прога dlg.exe имя_скрипта без расширения на выходе тоже имя файла с расширение dlg его скормите компилятору с препроцессором.
В архиве прога, исходники проги писаны на С++, собирал mingw. И файл с макросами для диалога.
Прога
Fakeman
24 April 2018 | 20:29
QUOTE |
архиве прога, исходники проги писаны на С++, собирал mingw |
Во тут то ты мне и нужен) сможешь собрать сфалл4.0 без установленной студии VS15, читал что можно собирать с++ проекты всякими mingw компиляторами, но там столько за мудреного... а опыта у меня с такими компиляторами нет.
Тоесть мне нужна инструкция как его собрать с помощью mingw.
jordan
24 April 2018 | 20:31
Дополнение. Прога вырезает любой текст заключённый в кавычки. Если встретит символ # пропускает строку. Это нужно что бы не съедал #include "бла бла бла"
Fakeman
24 April 2018 | 20:34
QUOTE |
Ещё написал програмку которая вырезает из скрипта текст и помещает в msg файл, заменяя текст номерами строк. |
Лажа тут получается) т.к в исходнике текста не указывается по какому номеру вставлять текст.
jordan
24 April 2018 | 20:35
QUOTE |
Во тут то ты мне и нужен) сможешь собрать сфалл4.0 без установленной студии VS15, читал что можно собирать с++ проекты всякими mingw компиляторами, но там столько за мудреного... а опыта у меня с такими компиляторами нет. Тоесть мне нужна инструкция как его собрать с помощью mingw.
|
А чёб и нет)) Там поди макефайл есть. Гляну.
Отправлено: 24 апр 18 20:46
Где исходники то брать? На sourceforge только архивы уже собранной проги. Есть у меня сомнения, что возможно mingw не переварит асм код. Надо пробывать.
QUOTE |
Лажа тут получается) т.к в исходнике текста не указывается по какому номеру вставлять текст.
|
В макросе забыл прописать g_mstr(x), дополню, и ещё добавлю проверку на iq. Угу чёт забыл.
Fakeman
24 April 2018 | 20:51
QUOTE |
В фоле мне всегда не нравилось, бегать по процедурам нодам. Хотелось что бы в одной процедуре можно было бы создавать разветвлённые диалоги, где всё умещается в поле зрения. |
У тебя все равно на один экран не влезет весь код диалога и так же придется бегать по тексту/процедурам, к тому же такой подход потом усложнит разбор диалога.
Если видел я в редакторе скриптов реализовал представление всего диалога в виде
блок схем со стрелочками, который можно быстро редактировать не отходя от кассы.
Конечно до ума там еще ничего не доведено и является типа бета версий, и я продолжаю это совершенствовать. :)
Отправлено: 24 апр 18 20:55 QUOTE |
Там поди макефайл есть.. |
Ну как раз таки и нету такого файлика)
исходники вот
https://github.com/phobos2077/sfall/tree/developQUOTE |
Удобно диалоги пишутся в самом скрипте. |
А вот это ты хорошую идею подал. Реализую сию фишку в редакторе скриптов, чтобы на автомате все делалось, перед компиляций. Укажу там где-нибудь тебя как автора патента.
Выпишите этому человеку нобелевскую премию. :)