Приветствую!
Запилил пару макросов для упрощения создания диалогов. В фоле мне всегда не нравилось, бегать по процедурам нодам. Хотелось что бы в одной процедуре можно было бы создавать разветвлённые диалоги, где всё умещается в поле зрения.
Пример с использованием макросов.
Запилил пару макросов для упрощения создания диалогов. В фоле мне всегда не нравилось, бегать по процедурам нодам. Хотелось что бы в одной процедуре можно было бы создавать разветвлённые диалоги, где всё умещается в поле зрения.
Пример с использованием макросов.
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. И файл с макросами для диалога. Прога