Перейти к содержимому


Фотография

Упрощаем написание диалогов, с технической стороны


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 jordan

jordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 142 сообщений

Отправлено 24 Апрель 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. И файл с макросами для диалога. Прога


#2 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 24 Апрель 2018 - 20:29

QUOTE
архиве прога, исходники проги писаны на С++, собирал mingw

Во тут то ты мне и нужен) сможешь собрать сфалл4.0 без установленной студии VS15, читал что можно собирать с++ проекты всякими mingw компиляторами, но там столько за мудреного... а опыта у меня с такими компиляторами нет.
Тоесть мне нужна инструкция как его собрать с помощью mingw.

Это сообщение отредактировано Fakeman - 24 апреля 2018 | 20:30


#3 jordan

jordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 142 сообщений

Отправлено 24 Апрель 2018 - 20:31

Дополнение. Прога вырезает любой текст заключённый в кавычки. Если встретит символ # пропускает строку. Это нужно что бы не съедал #include "бла бла бла"


#4 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 24 Апрель 2018 - 20:34

QUOTE
Ещё написал програмку которая вырезает из скрипта текст и помещает в msg файл, заменяя текст номерами строк.

Лажа тут получается) т.к в исходнике текста не указывается по какому номеру вставлять текст.



#5 jordan

jordan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 142 сообщений

Отправлено 24 Апрель 2018 - 20:35

QUOTE

Во тут то ты мне и нужен) сможешь собрать сфалл4.0 без установленной студии VS15, читал что можно собирать с++ проекты всякими mingw компиляторами, но там столько за мудреного... а опыта у меня с такими компиляторами нет.
Тоесть мне нужна инструкция как его собрать с помощью mingw.


А чёб и нет)) Там поди макефайл есть. Гляну.

Отправлено: 24 апр 18 20:46
QUOTE

Fakeman


Где исходники то брать? На sourceforge только архивы уже собранной проги. Есть у меня сомнения, что возможно mingw не переварит асм код. Надо пробывать.

QUOTE

Лажа тут получается) т.к в исходнике текста не указывается по какому номеру вставлять текст.


В макросе забыл прописать g_mstr(x), дополню, и ещё добавлю проверку на iq. Угу чёт забыл.

Это сообщение отредактировано jordan - 24 апреля 2018 | 20:50


#6 Fakeman

Fakeman

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 557 сообщений

Отправлено 24 Апрель 2018 - 20:51

QUOTE
В фоле мне всегда не нравилось, бегать по процедурам нодам. Хотелось что бы в одной процедуре можно было бы создавать разветвлённые диалоги, где всё умещается в поле зрения.

У тебя все равно на один экран не влезет весь код диалога и так же придется бегать по тексту/процедурам, к тому же такой подход потом усложнит разбор диалога.

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

Отправлено: 24 апр 18 20:55
QUOTE
Там поди макефайл есть..

Ну как раз таки и нету такого файлика)
исходники вот https://github.com/p...ll/tree/develop

Это сообщение отредактировано Fakeman - 24 апреля 2018 | 20:55




Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Рейтинг@Mail.ru