Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #101
16.12.2008 11:42

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Выложил альфа-версию

noname написал:

что ещё мне нужно знать, что бы написать для ТОМ свой интерфейс?

Скачать файлик ConTOM_s.rar (есть в Вики на страничке ТОМа). Там разобраться с constom.cpp - это весь интерфейс одним модулем, правда на С.
Все что тебе надо от ТОМа - это 3 функции:
   char* RunFile(char*FileName);
   char* RunText(char*Text );
   char* Command(char*Input);

Отредактировано ASBer (16.12.2008 14:39)

Неактивен

0    0    #102
16.12.2008 16:16

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: Выложил альфа-версию

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

язык ТОМ явно не для 'чайников', важно подготовить простых примеров и мини-демок на самые всякие случаи.

Nex, если повезёт- свою платформу писать не прийдётся. сейчас пишу квестец для 'операция с Новым Годом' на urql. давно хотел написать что-то законченное. после- планирую мини-дему на ТОМ, и мини-игру на QSP.

Отредактировано noname (16.12.2008 16:17)

Неактивен

0    0    #103
16.12.2008 17:05

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Выложил альфа-версию

Стручок гороха просто бессовестно недоделан!
Чтобы он отображался в инвентаре необходимо прописать свойство .ВКармане = "..."
для комнаты свойство .ЛежитВКомнате = "..."
для двора свойство .ВиденВоДворе = "..."
(очки кстати добавил в инвентарь)

Действие "сорвать" почти что синоним действия "взять" также как "положить" или "бросить".
Я не думаю что в хелпе должны быть описаны ВСЕ действия. Пусть автор игры сам решает что подсказывать игроку, а что нет.

Для "чайников" примеры писать нужно после того как появится стандартная библиотека.
Примеры должны использовать эту библиотеку. Иначе просто нереально.

Неактивен

0    0    #104
18.12.2008 20:18

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: Выложил альфа-версию

свежий баг:
раньше запускались и работали, как умели, все примеры. а сейчас пример "Диалоги на меню.tom" не выводит сообщений, кроме сообщений об ошибках. я уж и их архива заново доставал. по-моему это случилось как раз после того, как я вместо старой версии ТОМ скачал свежайшую. а старую удалил.

ASBer, глянь плиззз, как у тебя поведёт себя этот пример на выложенной на вики последней версии ТОМ.

Неактивен

0    0    #105
19.12.2008 09:25

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Выложил альфа-версию

noname написал:

свежий баг:
сейчас пример "Диалоги на меню.tom" не выводит сообщений, кроме сообщений об ошибках. я уж и их архива заново доставал. по-моему это случилось как раз после того, как я вместо старой версии ТОМ скачал свежайшую. а старую удалил.

Да, это моя вина. Персонажам в примере необходимо добавить метод .onChangePers()

Код:

location Комната.title="Комната"
.description="в комнате Вася и Петя
(для разговора с Васей введите 'говорить с Васей')"

unique Вася.title="Вася"
unique Петя.title="Петя"
  .onChangePers(OldPers)
  { 
    // При смене персонажа показываем локацию
    if(.loc <> OldPers.loc)
    { %<location>
      %{.loc}</location>
      %{.loc.description}
    }
  }

unique Петя_говорящий_с_Васей.title="Петя"
  .onChangePers(OldPers)
  { 
    // При смене персонажа показываем локацию
    if(.loc <> OldPers.loc)
    { %<location>
      %{.loc}</location>
      %{.loc.description}
    }
  }
pers=Петя

Этот метод - обработчик нового события, возникающего при смене персонажа.
Теперь вывод локации не производится автоматически. Это теперь нужно программировать.
Я посчитал это более гибким, например, может понадобится изменить способ показа локации при входе в темную комнату.

Неактивен

0    0    #106
20.12.2008 08:09

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: Выложил альфа-версию

угу. теперь работает. итак, на ТОМе, если кто не знает, легко реализуется диалог с выбором вариантов ответа. впрочем, для начала хорошо бы просто посмотреть его в действии: пример "Диалоги на меню"(надеюсь архив исправлен?).

как это выглядит:

Код:

Комната
В комнате Вася и Петя
(для разговора с Васей введите 'говорить с Васей')

> говорить с Васей

Разговор с Васей
Слушай, Вася, давно тебя хотел спросить...
(для выбора вопроса наберите начальные буквы строки)
   а где ты храниш свои сокровища?
   про рыбалку
   прощай.

> п
- Вася, а как ты относишься к рыбалке?
- да не рыбак я совсем...
- жаль, очень жаль.

Продолжаем разговор
   а где ты храниш свои сокровища?
   про рыбалку
   прощай.

> прощ
- пока Вася, было приятно поболтать.
- пока Петя.

Комната
В комнате Вася и Петя
(для разговора с Васей введите 'говорить с Васей')

>

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

вкратце моё ИМХО о недостатках и достоинствах диалогов в ТОМ:

НЕДОСТАТКИ:
1) пока не вижу реакции на ключевые слова. допустим, ввод 'сокровища' будет непонят
2) дурацкий текст сообщения об ошибке в режиме диалога: 'Петя не может этого сделать'. собственно, Петя в этом режиме ничего не может сделать. в случае непонятой фразы( а любой ввод в этом режиме воспринимается как фраза, обращённая к собеседнику) хорошо бы выводить соответствующее сообщение.
3) игрок может искренне полагать, что ввод 'пр' бует понят как 'прощай', а это не так. т е система подбирает подходящую фразу сверху вниз до первого соответствия. впрочем, это тот момент, который лучше переложить на плечи авторов квестов: или пусть фразы тщательно подбирают, или игрока предупреждают, или надеются, что игрок поймёт принцип сам.

поднатужившись, смог высосать из пальца только 3-и недостатка.

ДОСТОИНСТВА:
1) выбор варианта производится привычным глазу парсерщика вводом с клавиатуры, что является несомненным достоинством для парсерного квеста.
2) теоретически возможна (ASBer, подтверди) реакция и на другие, не перечисленные фразы. т е редложенные варианты не запрещают(теоретически) игроку ввести другое понятное ответчику слово, и получить соотв ответ
3) эта форма диалогов, естественно, не запрещает реализации обычных парсерных 'спросить Васю об ...', т е если кто из авторов хочет классических парсерных диалогов- наздоровье.
4) при этом рассматриваемая форма реализации диалогов привносит таки дополнительный элемент литературности в квест. ну, точнее- позволяет авторам это сделать.

пожалуй, всё.

Неактивен

0    0    #107
22.12.2008 10:28

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Выложил альфа-версию

noname> 1) пока не вижу реакции на ключевые слова. допустим, ввод 'сокровища' будет непонят
ASBer: В ТОМе реализованы 2а способа реализации диалогов - менюшный и парсерный. В рассмотренном примере используется только менюшный способ, но самым интересным мне видится сочитание обоих методов. Тогда будет и реакция на ключевые слова в том числе.

noname> 2) дурацкий текст сообщения об ошибке в режиме диалога: 'Петя не может этого сделать'. собственно, Петя в этом режиме ничего не может сделать. в случае непонятой фразы( а любой ввод в этом режиме воспринимается как фраза, обращённая к собеседнику) хорошо бы выводить соответствующее сообщение.
ASBer: для объекта Петя_говорящий_с_Васей можно определить специальное свойство сan_not_execute. Например:

Код:

Петя_говорящий_с_Васей.сan_not_execute = "Вася тебя не понял."

(есть ряд подобных свойств, задокументирую их в ближайшее время)

noname> 3) игрок может искренне полагать, что ввод 'пр' бует понят как 'прощай', а это не так. т е система подбирает подходящую фразу сверху вниз до первого соответствия. впрочем, это тот момент, который лучше переложить на плечи авторов квестов: или пусть фразы тщательно подбирают, или игрока предупреждают, или надеются, что игрок поймёт принцип сам.
ASBer: Сейчас сортировка ответов по алфавиту. Скорее всего переделаю. Будет по порядку их объявления в коде игры. Т.е. фразы, которые должны быть сверху, нужно будет описывать раньше фраз, распологающихся ниже. Также в планах сделать автонумерацию пунктов меню. Вобщем есть над чем работать.

noname> 2) теоретически возможна (ASBer, подтверди) реакция и на другие, не перечисленные фразы. т е предложенные варианты не запрещают(теоретически) игроку ввести другое понятное ответчику слово, и получить соотв ответ
ASBer: да, такая возможность есть.

noname> 3) эта форма диалогов, естественно, не запрещает реализации обычных парсерных 'спросить Васю об ...', т е если кто из авторов хочет классических парсерных диалогов- наздоровье.
ASBer: парсерные диалоги базируются на специальном операторе:

Код:

 Персонаж > "произносимая фраза"

где Персонаж - объект, а "произносимая фраза" - строка.

noname> надеюсь архив исправлен?
ASBer: Мне стало понятно что этот пример требует доработки.
Попробую добавить туда парсерные возможности, и выложу все примеры отдельным архивом.

Отредактировано ASBer (22.12.2008 10:30)

Неактивен

0    0    #108
24.12.2008 11:11

ASBer
Модератор (+161, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Выложил альфа-версию

Предлагаю вниманию сообщества первую попытку портации стандартной библиотеки рТАДС на платформу ТОМ.

В архиве вы найдете библиотечные файлы (пока только 3) и демоигру - золотой череп.
Портация только начата и большинство глаголов все еще не переработано. Но все действия, необходимые для прохождения игры, работают.

Хотелось бы услышать ваши мнения и пожелания.

P.S. Разрешение у GrAndrey на эксперименты с портацией библиотеки получено.
P.S.S. Разрешения у Michael J. Roberts не запрашивал, но условия лицензии, насколько я понимаю, подобной модификацией не нарушаются.

--------------------------------------------------------------------------------
Прикрепленные файлы:
TOMrTADS.rar, Размер: 236,863 байт, Скачано: 54

Неактивен

0    0    #109
24.12.2008 21:45

noname
Участник (+36, -9)
Зарегистрирован: 04.04.2008
Сообщений: 729

noname

Re: Выложил альфа-версию

Код:

Сюда можно вставлять вступление.
Моя игра
Просто новая игра. Наберите ПОМОЩЬ при необходимости.
Написал Я.
Версия 0.0
У пещеры
  Ты стоишь на ярко освещенном месте прямо перед большой, темной и мрачной
пещерой, лежащей к северу.

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

Ты видишь здесь пьедестал и мелкий камень.

> взять камень
Взят.

> сесть на пьедестал
Я не понимаю это предложение.

> положить камень на пьедестал
Готово.

> взять череп
Взят.

> ю
У пещеры
_
tot - переменная не определена!

>

по-моему концовка должна быть не такой

p.s.

to GrAndrey & to ASBer - респект и уважуха!


С момента публикации альфы прошло много времени. Платформа была полностью переработана.
Все примеры в этой ветке более недействительны, а прикрепленные файлы окончательно устарели!
ASBer

Отредактировано noname (24.12.2008 21:51)

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru