Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
07.01.2009 23:16

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

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

Бета-тестирование

Бета-версия 0.9.0.0 доступна для скачивания: http://ifwiki.ru/ТОМ

В этой версии добавлено определение используемого интерфейса, что дает возможность подстраивать код игры под различные платформы (пока выбор между ТОМ-консолью и Миленой).
Добавлена функция input().

Демоигра адаптирована для проигрывания в Милене, добавлены картинки.

Весь функционал, предусмотренный для версии 1.0 разработан.
До релиза первой версии необходимо провести:
- поиск и исправление багов и глюков, полировку и доводку функционала;
- доработку демоигры про мышек;
- доработку документации;
- разработку набора примеров, полностью покрывающих функционал;
- полное портирование библиотеки рТАДСа (собственной библиотеки к 1й версии не планируется);
- возможно что-то еще забыл...

Отредактировано ASBer (07.01.2009 23:17)

Неактивен

0    0    #2
08.01.2009 11:41

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

noname

Re: Бета-тестирование

библиотека РТАДСа хороша, но раз уж её перевод является делом трудоёмким, то стоит обратить внимание и на её недостаток: автор небольшого квеста может быть сильно удивлён тем, какие возможности будет иметь игрок в его игре благодаря командам, которые автор и не собирался использовать! помню тестовую головоломку 'волк, коза и капуста', в которой можно было дать капусту козе, которая потом не отдаёт её обратно. так что, реакция типа 'в этой игре Вам не потребуется использовать слово дать ' - очень даже неплохой вариант.

UPD

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

Отредактировано noname (08.01.2009 12:04)

Неактивен

0    0    #3
01.02.2009 23:08

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

noname

Re: Бета-тестирование

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

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

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

upd

как-то я так с порога "наехал"- извиняюсь за стиль. есть желание разбираться. есть желание делать это с помощью автора платформы - не так одиноко, и меньше мозги напрягать придётся smile

upd

и ещё: как ТОМ-квесты запускать под интерфейс Милены? хотелось бы тестить свои творилова как под консольным так и под графическим интерфейсом.

Отредактировано noname (01.02.2009 23:22)

Неактивен

0    0    #4
02.02.2009 21:24

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

noname

Re: Бета-тестирование

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

upd

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

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

Неактивен

0    0    #5
02.02.2009 22:41

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

noname

Re: Бета-тестирование

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

upd

Перемещения в примере парсерные. Если делать на меню, как в лабиринте у мышек - будет попроще.

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

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

Отредактировано noname (02.02.2009 23:49)

Неактивен

0    0    #6
03.02.2009 21:34

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

noname

Re: Бета-тестирование

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

upd

вопрос такой:

описание локации выводится в двух случаях: когда ГГ входит в комнату, и когда ГГ вводит команду осмотреться
как сделать, что бы в обоих случаях вызывалась одна и та же фунция вывода описания?
при этом стандартный onEnter() тоже нужен - для некоторых локаций он будет определён по-своему, а по умолчанию- должен вызывать вышеупомянутую функцию

попробовал разные способы- чё-та не получилось... по-ходу я не разобрался с использованием функций

хотелось бы мини-микро-примерчик на эту тему, или просто отрывок- что нужно вставить в пример с локациями, что бы это работало

upd

насчёт вложенных локаций: универсальную команду "выйди[из локации]" сделать легко, насчёт "войти в локацию" - чуток посложнее. нужно вводить именованные входы. пока отложил это дело.

хотел сделать пример, похожий на мой с РТАДСа, и заметил такую заморочку: ДО объявления объекта ссылаться на него- некорректно.

т е

location a1.cls=место
  .север    = a2
  .восток   = b1
  .описание = "моя первая локация"
location b1.cls=место
  .север    = b2
  .запад    = a1
  .описание = "комната для роботов, которым нечем заняться"
location a2.cls=место
  .юг       = a1
  .восток   = b2
  .описание = "мой первый объект"
location b2.cls=место
  .запад    = a2
  .юг       = b1
  .описание = "цветовой код открывает дверь"

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

upd

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

Отредактировано noname (04.02.2009 07:35)

Неактивен

0    0    #7
04.02.2009 08:33

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

noname

Re: Бета-тестирование

unique сейф
  .title="сейф%; НдМр; ИпЕч //неодуш, мужск род, именит падеж, ед число
  ИпЕч=; РпЕч=ов; ДпЕч=ам; ВпЕч=ы; ТпЕч=ами; ПпЕч=ах"
  .lex = .title
  .описание="Надёжный сейф."

unique ты
  ........................................................
  .осмотреться()
  {
   %<location>
   %{actor.loc.title}</location>
   %{actor.loc.описание}
  }
  .осмотреть(obj)
  {
  %obj.описание
  }

action осмотреться
  .pat = "осмотреться=осмотрись"

action осмотреть
  .pat = "осмотреть=осмотри @объект:описание*Вп" //вначале писал просто "осмотреть=осмотри @объект", потом- скопировал с мышек

пишу "осмотреть сейф", выдаёт: "слово <сейф> мне не известно". хм.. а после чего слово становится известно?

Неактивен

0    0    #8
04.02.2009 20:25

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

noname

Re: Бета-тестирование

ОК!
1. с сейфом действительно лажанулся- там до сейфа были кусты. недопеределал.
2. %{obj.описание} - фигурные скобки позволяют вставлять выражения в оператор вывода?
3. предопределение спасает дело. возможно, для больших квестов, такая 'строгость' сыграет положительную роль.
4. готов ли полный список служебных слов? хорошо бы найти редактор, аналогичный блокноту, но в котором можно их подцвечивать. где-то на форуме упоминали "блокнот++"
5.

Мой дом
Тут тепло и уютно.. На восток выходит деревянная дверь.
> выйти

Цветочная поляна
Тут красиво! На западе поляны стоит симпатичный домик. На севере видна тропа,
уходящая в горы.
> войди в дом

Это предложение непонятно!
> войди в домик

Это предложение непонятно!
> войди

Мой дом
Тут тепло и уютно.. На восток выходит деревянная дверь.
>

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

Неактивен

0    0    #9
05.02.2009 23:38

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

noname

Re: Бета-тестирование

ну, вот появилось чуток свободного от работы и гулянок время, и вот что я наваял:

> с

a2
складское помещение
здесь есть: ты и сейф
выходы: этой дорогой не пройти, этой дорогой не пройти, a1, b2.

> в

b2
странная комната
здесь есть: ты, дубовый стол и стеклянный стол
выходы: этой дорогой не пройти, a2, b1, этой дорогой не пройти.

> осмотреть ты
Слово <ты> мне неизвестно.

> осмотреть стол
Непонятно, что имелось в виду: стеклянный стол или дубовый стол;

> дубовый
Это предложение непонятно!

>

радует та лёгкость, с которой выводится список находящихся в комнате объектов в правильных формах, с разделением запятыми и союзом 'и'. видимо, есть так же и простые средства убрать из этого списка ГГ ? а как насчёт выходов: может, стоит создать особый класс 'выходы', что бы можно было показывать список всех выходов из данной локации(я имею ввиду сзюв)?

и, мне таки совсем непонятно, чего он не выводит описание стола? вот моя прога: <прикреплённые файлы>

upd: да, и хорошо бы русские и латинские буквы в именах пользовательских переменных различать по цвету. а то, например, 'монстр' содержит не известно сколько русских и латинских букв. на глаз не различимо, а для интерпретёра- да.

Отредактировано noname (05.02.2009 23:44)


Прикрепленные файлы:
004.tom, Размер: 4,181 байт, Скачано: 773

Неактивен

0    0    #10
06.02.2009 00:33

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

noname

Re: Бета-тестирование

если убрать один из столов, то 'осмотреть стол' работает нормально, а 'осмотреть дубовый стол'- нет. код мышек мне так же не помог:

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

> осм мышиный дом
Это предложение непонятно!

> осм мышиный домик
Это предложение непонятно!

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

Неактивен

0    0    #11
06.02.2009 10:29

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

noname

Re: Бета-тестирование

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

в далёком будущем: могу попробовать сляпать на дельфях прогу, помогающую убирать/добавлять/редактировать объекты игрового мира в тексте проги. обещать пока ничего не берусь.

Неактивен

0    0    #12
06.02.2009 20:12

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

noname

Re: Бета-тестирование

-а как насчёт выходов: может, стоит создать особый класс 'выходы', что бы можно было показывать список всех выходов из данной локации(я имею ввиду сзюв)?

-Да, можно. Смотри мой пример с выходами/входами.

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

если в строчке
location a1.cls=место
убрать слово location, работа программы нисколько не изменится, так как по-любому объект 'a1' в результате принадлежит классу 'место'.

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

постоянно спотыкаюсь на элементарных вещах. надеюсь побыстрее преодолеть 'барьер' и работать над тестовой прогой с большей эффективностью.
вопросы:

1)
описан класс T_parent_class
как создать класс-наследник T_child_class, который унаследует все его свойства и методы?
из описания ясно только, как создавать экземпляры классов. пробовал через '=' сделать классы одинаковыми- не вышло.

2)
что конкретно означает ошибка 'null=object!' ?

upd

если в строчке
location a1.cls=место
убрать слово location, работа программы нисколько не изменится, так как по-любому объект 'a1' в результате принадлежит классу 'место'.

ой, последняя фраза, видимо не верна. через class определяются как классы, так и качества объектов. вроде бы всё больше разбираюсь, а 'прояснения' в голове не наступает.

Отредактировано noname (06.02.2009 20:54)

Неактивен

0    0    #13
20.07.2009 00:34

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

noname

Re: Бета-тестирование

хочу заострить внимание на одной незначительной детали:

положить и выложить - две разные команды

ИМХО положить что-то можно в/на/под что-то,
а выложить что-то, ну это- просто выложить

вот

ЗЫ
постараюсь разобраться и в тексте модуля и в его использовании

Неактивен

0    0    #14
20.07.2009 16:06

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

noname

Re: Бета-тестирование

ну, синонимы, так синонимы

тока для меня всё равно слово выложить означает ввпервую очередь попытку избавиться от предмета

а положить- попытку расположить предмет определённым образом среди других

НО если обе эти команды можно будет использовать и так и эдак- будет только лучше(?)

ЗЫ
всё равно, если я таки сделаю какую-нить игрушку наТОМе- я в ней всё сделаю по-своему :)

потому и хочу в модулях разбираться

Неактивен

0    0    #15
21.07.2009 23:11

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

noname

Re: Бета-тестирование

будем посмотреть

ЗЫ
и ASBer , жду-недождусь, когда будет реализована возможность ходить по сторонам света

это нужно в связи с тем, что хочу попробовать сгенерить большой мир со случайной расстановкой обстановки и неписей

типа не игра, а что-то врде какой-то модели

в этом случае без компасных направлений будет тяжко

Неактивен

0    0    #16
21.07.2009 23:43

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

noname

Re: Бета-тестирование

не знаю, поймёт ли кто юмор:

Выбор тестируемого модуля:
1. UnusVerb.tml - неиспользуемые глаголы
2. Main.tml - минимальный набор классов и действий.

> 2
Включить в тест модуль неиспользуемых глаголов? (UnusVerb.tml)

да/нет> да
Хижина
  Ветхая деревянная хижина. Все здесь очень старое, и непригодно для
использования.
Здесь есть стол и заплетенное паутиной окно. Ты находишься тут и старик
находится тут.

> старик, скажи: старик, возьми ложку
Старик: старик возьми ложку
Старик взял ложку со стола.

:)

Отредактировано noname (21.07.2009 23:45)

Неактивен

0    0    #17
22.07.2009 15:10

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

noname

Re: Бета-тестирование

ASBer написал:

noname так лучше?

во всяком случае этот вариант даст мне возможность 'подглядеть' как научить непися отличать свои собственные фразы от чужих

Быстренько накидал модуль с картой и перемещениями по компасу - Map.tml
Теперь в библиотеке 3 модуля. Но все 3 сырыееее...

быстро это у тебя получается

UPD

> осмотреться
  Ветхая деревянная хижина. Все здесь очень старое, и непригодно для
использования.

по команде осмотреться 'не видны' предметы, которые есть в комнате. так например, RTADS бы их упомянул по-любому, если они там есть (и не скрыты намеренно)- для этого квестоделу не приходится добавлять ни строчки кода

//
впрочем, ещё не известно как лучше для литературной игры, но для простых игр лишних сложностей не надо

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

Неактивен

0    0    #18
22.07.2009 15:51

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

noname

Re: Бета-тестирование

понял. метод OnEnter нашёл. там совсем не сложно

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

в ООП лучше всё сразу делать строго 'правильно', что бы потом непонятные глюки не возникали

---

так же обратил внимание на следующий момент:

допустим, в игре есть с десяток различных деревянных предметов. описание прилагательного деревянный придётся прописывать для каждого,
или же
можно вынести описание прилагательного во всех формах отдельно,
а в описании предметов только указывать те прилагательные, которые могут к нему относиться (естественно, с учётом рода предмета)?

UPD

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

сейчас думаю над демо-квестом этих модулей. пока есть такая идея: взять старючий квест ( закон об интеллектуальной собственности действует в РФ только с 1993года), причём такой, чтоб его можно было постепенно расширять и дополнять для демонстрации новых возможностей

квест я уже выбрал. там как раз перемещения сделаны по сзюв (но и 'нормальные' перемещения тоже будут реализованы в финальной версии игры )

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

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

Неактивен

0    0    #19
22.07.2009 17:23

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

noname

Re: Бета-тестирование

вот код:

Код:

персонаж.осмотрелся()
{
  //осмотрел(loc)
  %{loc.описание}
  %{loc.item:предмет_по_месту}.{loc.item:персонаж_по_месту}.{menu()}
}

сделал по аналогии с OnEnter, только применительно к текущей локации(loc)
не понятна роль {menu()} в конце
его надо исправлять на loc.menu, или это что-то глобальное?

Неактивен

0    0    #20
23.07.2009 13:37

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

noname

Re: Бета-тестирование

ага, припоминаю ( менюшки )

---

итак, собравшись с силами таки решился взяться за тот самый квест

И сразу появилась куча собственных идей, которые подавил на корню:

лучше сделать для начала простой доделанный плагиат перевод, чем вообще ничего не доделать

а после- мож и своё что-нить получится

---

итак, квест реально простой, но возник вопрос:

допустим, имеются 4-ре локации a1,a2,b1 и b2 (2x2),

и надо, что бы м/ду a2 и b2 проход бы не был возможен

я понимаю, что где-то в длинном тексте мышек это можно выцепить, НО из мини-демы модуля map этого не видно

подскажи плизз максимально короткий и простой способ

---

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

Отредактировано noname (23.07.2009 13:37)

Неактивен

0    0    #21
23.07.2009 14:14

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

noname

Re: Бета-тестирование

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

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

при этом хорошо бы, что бы выйти было возможно и по сзюв, и по названию локации-цели, и по командам войти/выйти

попробую поискать у себя примеры в архивах

---

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

UPD

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

// т е на самом деле карта- именно прямоугольный лабиринт, НО соседние локации очень часто разделены(нет прохода)

Отредактировано noname (23.07.2009 14:27)

Неактивен

0    0    #22
23.07.2009 15:01

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

noname

Re: Бета-тестирование

пример (с предпоследними библиотеками):

Код:

include "std.lib\UnusVerb.tml"
include "std.lib\Main.tml"
include "std.lib\Map.tml"

location название_локации
{
  // текст локации убрал (ибо- спойер), но проверено- всё работает
  
  this + ГГ // вводим главного героя
  
}

проблема в том, что куда бы я не впихивал pers.title="ты; Мр2лЕч;", всё равно игруха пишет: "ГГ находится тут", а надо: "ты находишься тут". хотя по-большому счёту отображение присутствия ГГ вообще лучше убрать- ведь [почти]всегда ГГ находится там, где находится // ИМХО лучше отображение ГГ по-умолчанию убрать, но оставить возможность его включать по желанию автора

UPD

заодно дай пример переопределения некоторых свойств ГГ: внешний вид и инвентарь на момент начала квеста

Отредактировано noname (23.07.2009 15:03)

Неактивен

0    0    #23
23.07.2009 15:50

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

noname

Re: Бета-тестирование

вот вырезка из твоего собственного примера:

Код:

 include "std.lib\UnusVerb.tml"
 include "std.lib\Main.tml"
 include "std.lib\Map.tml"

  //отладка действий
  //осмотрел.Debug = да 
  //взял.Debug = да
  //команда.Debug = да

  //создаем тестовую локацию
  location хижина
  { cls = место
    title = "хижин%; ЖрЕчНдСи; Ип; Ип=а; Рп=ы; Дп=е; Вп=у; Тп=ой; Пп=е;"
    this.старая = "стар%; ЖрЕчНдПи; Ип; Ип=ая; Рп=ой; Дп=ой; Вп=ую; Тп=ой; Пп=ой;"
    this.ветхая = "ветх%; ЖрЕчНдПи; Ип; Ип=ая; Рп=ой; Дп=ой; Вп=ую; Тп=ой; Пп=ой;"
    this.деревянная = "деревянн%; ЖрЕчНдПи; Ип; Ип=ая; Рп=ой; Дп=ой; Вп=ую; Тп=ой; Пп=ой;"
    this.описание = "__Ветхая деревянная хижина. Все здесь очень старое, и непригодно для использования."

    unique стол
    { cls = предмет
      title = "стол%; МрЕчНдСи; Ип; Ип=; Рп=а; Дп=у; Вп=; Тп=ом; Пп=е;"
      this.старый = "стар%; МрЕчНдПи; Ип; Ип=ый; Рп=ого; Дп=ому; Вп=ый; Тп=ым; Пп=ом;"
      this.деревянный = "деревянн%; МрЕчНдПи; Ип; Ип=ый; Рп=ого; Дп=ому; Вп=ый; Тп=ым; Пп=ом;"
      this.описание = "{fnOписание()}"
      fnOписание()
      { if(item) return "{item:предмет_по_месту}."
        else return "на столе ничего нет"
      }

      counting ложка
      { cls = предмет
        title = "лож%; ЖрНдСи; ИпЕч; 
          ИпЕч=ка; РпЕч=ки; ДпЕч=ке;  ВпЕч=ку; ТпЕч=кой;  ПпЕч=ке;
          ИпМч=ки; РпМч=ек; ДпМч=кам; ВпМч=ки; ТпМч=ками; ПпМч=ках;"
        this.деревянная = "деревянн%; ЖрНдПи; Ип; 
          ИпЕч=ая; РпЕч=ой; ДпЕч=ой; ВпЕч=ую; ТпЕч=ой;  ПпЕч=ой;
          ИпМч=ые; РпМч=ых; ДпМч=ым; ВпМч=ые; ТпМч=ыми; ПпМч=ых;"
        this.МожноВзять = да
      }
      this + ложка
    }

    unique окно
    { cls = предмет
      this.предмет_по_месту = "заплетенное паутиной окно"
    }

    unique старик
    { cls = персонаж
      this.по_имени = "старик%; МрЕчОдСи; Ип; Зп=; Ип=; Рп=а; Дп=у; Вп=а; Тп=ом; Пп=е;"
    }

    this + ГГ //вводим главного героя
  }

в таком варианте она обзывает героя ГГ, а не ты
( т е если весь пример урезать до такого состояния )

// и, да- а как вообще убрать постоянные упоминания присуствия ГГ в каждой локации?
ЗЫ
не то, чтоб я настаивал на том, чтобы главгерой в локациях не упоминался, просто хочу, чтобы была возможность сделать и так и эдак- по желанию автора. конкретно в этом квесте(и в большинстве других) главгерой в описаниях локаций не упоминается

Отредактировано noname (23.07.2009 15:53)

Неактивен

0    0    #24
23.07.2009 18:30

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

noname

Re: Бета-тестирование

ок!
кста, наверное пора обменяться аськами для быстрого общения

моя= 585030964

Неактивен

0    0    #25
23.07.2009 18:38

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

noname

Re: Бета-тестирование

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

Неактивен

0    0    #26
23.07.2009 19:01

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

noname

Re: Бета-тестирование

код приведён в сообщении #121

ИМХО: необходимо разделить примеры библиотек, так как в навороченной куче всё работает, а при попытке сделать отдельно самому- нет

библиотеки- последние из выложенных здесь

Неактивен

0    0    #27
23.07.2009 19:31

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

noname

Re: Бета-тестирование

теперь работает. а  с тем кодом- не работало. перепроверял.

то ли у нас разные версии библиотек, то ли у меня уже засорилась память

Неактивен

0    0    #28
23.07.2009 20:03

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

noname

Re: Бета-тестирование

Код:

      fnOписание()
      { if(item) return "{item}."
        else return "на столе ничего нет"
      }

ТОМ - Текстовая Основа Миростроения v.0.9.2.1 beta. ASBer(C)2008-2009
Контактный адрес - 2008_TOM@mail.ru
Введите '?', 'help' или 'помощь' для справки.

Хижина
  Ветхая деревянная хижина. Все здесь очень старое, и непригодно для
использования.
Здесь есть стол и заплетенное паутиной окно. ГГ находится тут и старик находится
тут.

> осм стол
?item?.

> взять ложку
Ты взял ложку со стола.

> осм стол
?item?.

>

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

видимо, надо перед началом игры делать какую-то читску памяти

---

с другой стороны, мож ты найдёшь другое решение проблемы

Неактивен

0    0    #29
23.07.2009 20:24

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

noname

Re: Бета-тестирование

всё, разобрался: всё у меня было правильно распаковано, НО у меня с *.tom стояла ассоциация файлов с другим constom.exe, в другом месте, про который я уже и забыл

теперь пример из #121 работает как надо

Неактивен

0    0    #30
23.07.2009 20:37

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

noname

Re: Бета-тестирование

ещё вопрос:

допустим, у ГГ есть спелое аппетитное съедобное красное яблоко, и все прилагательные для яблока указаны

как сделать, что бы при осмотре инвентаря ГГ видел именно 'красное яблоко', а не просто 'яблоко'(и не какое-нить другое)

UPD

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

UPD

щазз более актуально выкладывание предметов(просто на пол)- сразу проще будет тестировать корректность работы игрухи

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

Неактивен

0    0    #31
23.07.2009 21:55

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

noname

Re: Бета-тестирование

как выкладывать(и обменивать) предметы- тоже разобрался

есть ещё такая непонятка:

в некоторой локации надо запретить некоторые действия(почти все). как было бы правильнее всего это сделать?

ЗЫ
разобрался почти во всём, что необходимо для этой примитивной игрушки

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

как будет готова- начну её доводить до ума, усложнять и переделывать

Неактивен

0    0    #32
24.07.2009 22:53

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

noname

Re: Бета-тестирование

отчёт о приблизительном времени работы над игрой:

нормальная реализация данной игры требут от 3-х до 30-ти дней упорного перевода и кодинга

я скорее всего провожусь над ней месяца 3-и ( я ж ещё по олдгамесам шарюсь и играю в тамошние игрухи регулярно )

с учётом того, что её придётся доводить до ума- думаю, в этом году успею ( впрочем, меньше чем через неделю у меня днюха, а потом- буду искать работу; с другой стороны- когда я буду работать я мож больше времени буду именно написанием квеста заниматься, чем сейчас, когда целыми днями занимаюсь всякой фигнёй) // короче буду стремиться сделать в этом году (и не просто сделать бету, НО ещё и успеть её отшлифовать обезбажить и доработать )

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

ЗЫ

а комнату с невозможностью выполнения почти всех действий можно ещё реализовать через меню- оставить только возможные пункты

и ещё вопрос: допустим, устройство(напр лифт) имеет 9-ть нумерованных кнопок (от 1 до 9):

игрок пишет (к примеру): езжай на 6й этаж (или езжаё на шестой этаж) - как бы сделать это в ТОМе ?

Неактивен

0    0    #33
25.07.2009 13:32

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

noname

Re: Бета-тестирование

в бетатестеры, конечно можно. но- не скоро
---

немного теории

что вообще автору может быть нужно от движка?:

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

- штоп можно было сделать всё, что хочется, И штоп игра на вводимые фразы реагировала так, как хочет  именно этот автор именно в этом квесте // т е - широкие возможности использования движка

- штоп движок хорошо различала различные фразы: т е понимал отличие 'кинуть банку в коробку' от 'кинуть коробку в банку'; И особенно это актуально для обработки ошибок: напр если игрок пытается неправильно использовать известный проге глагол- автор пишет на этот случай один текст(напр подсказку по исп этого глагола), а если он пытается использовать какое-то непонятное слово(команду, судя по тому, что слово идёт в начале фразы) с известным проге предметом- автор пишет на этот случай другой текст(напр подсказку по исп предмета)
---

впрочем, пока буду делать основной 'костяк' игры

позже- обязательно нужно будет доработать, штоп она понимала все упомянутые в описаниях существительные, глаголы (и прилагательные?) И выдавала разумные ответы на любую фразу; (особенно- если фраза построена неверно- ведь в этом случае игроку необходима помощь программы)

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

Отредактировано noname (25.07.2009 13:33)

Неактивен

0    0    #34
25.07.2009 17:59

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

noname

Re: Бета-тестирование

в Багтрекер я тебе уже написал кое-о-чём

теперь вот что:

не нашёл, как переопределить стандартное сообщение "<предмет> не годится для этого действия."

Отредактировано noname (25.07.2009 18:00)

Неактивен

0    0    #35
26.07.2009 15:17

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

noname

Re: Бета-тестирование

ох блин, ежовая морковка!

не сходятся в этой игре на квадратной карте входы с выходами.

первый проект однозначно необходимо делать совместно с автором платформы

тем более, что библиотека пока в стадии разработки

- заодно будет видно, что в библиотеку следует добавить

---

в связи с этим даю объяву в разделе 'игры' с просьбой солюшенов маленьких игр:

щазз открою там тему UPD: ссылка на тему

UPD

с тебя, ASBer - библиотека, с меня- перевод и кодинг, с любителей парсерных игр- солюшен

все промежуточные результаты работы буду выкладывать на форум

Отредактировано noname (26.07.2009 15:29)

Неактивен

0    0    #36
27.07.2009 17:41

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

noname

Re: Бета-тестирование

Здесь важно понимать различие: если действие даёт 2 разных результата - это 2 разных действия, даже если они используют один глагол. И описывать из нужно как 2 разных объекта

ага- понял. это как стандартное 'открыл' и особое 'открыл_фонарик'

Название объекта также является его свойством. Поэтому пример будет один

ну, щазз не буду вдаваться в уточнения, НО в более сложных квестах эта тема ещё всплывёт

UPD: жду пример :)

Отредактировано noname (27.07.2009 18:19)

Неактивен

0    0    #37
27.07.2009 19:37

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

noname

Re: Бета-тестирование

ASBer написал:

noname написал:

в таком варианте она обзывает героя ГГ, а не ты

Угу, но это только при первом показе так... дальше нормально показывает "ты".
Исправлю.

noname написал:

и, да- а как вообще убрать постоянные упоминания присуствия ГГ в каждой локации?

Смотри мой пост выше: ГГ.персонаж_по_месту = нет //отключает отображение ГГ в локации

не знаю, обратил ли ты внимание: при первом показе прога опять называет игрока ГГ, а не на ты

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

Неактивен

0    0    #38
27.07.2009 21:47

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

noname

Re: Бета-тестирование

Название объекта также является его свойством. Поэтому пример будет один

Отредактированно ASBer (Сегодня 19:32)

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

ЗЫ

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

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

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

Неактивен

0    0    #39
28.07.2009 00:04

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

noname

Re: Бета-тестирование

отличный пример!

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

и, конечно, в моих квестах(буде таковые случатся) будет ГГ и использование библиотек, НО впечатление свободы, оказанное этим примером на моё больное воображение уркиниста- неизгладимо

на самом же деле этот пример просто демонстрирует создание особой реакции на действие с двумя предметами друг на друга

эту тему регулярно просматривают около 30чел, а качают примеры - 2-3чел, поэтому выкладываю 'полный солюшен' этого примера (или правильнее сказать- лог):

ТОМ - Текстовая Основа Миростроения v.0.9.2.2 beta. ASBer(C)2008-2009
Контактный адрес - 2008_TOM@mail.ru
Введите '?', 'help' или 'помощь' для справки.


    КАК ЗАЛОЖИТЬ ЗА ВОРОТНИК, ДА НЕ НАПИТЬСЯ

  Ты сидишь за идеально сервированным столом. Перед тобой лежит накрахмаленная
салфетка и стоит запотевшая рюмка водки (пятьдесят граммов).

> заложить
Что заложить?

> заложить рюмку
Куда заложить?

> заложить воротник за рюмку
Рюмка не годится для этого действия.

> заложить рюмку за воротник
  Рука неуверенно потянулась к рюмке и вернулась назад. Нет! Воспитание не
позволяет пить без салфетки.

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

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

> заложить салфетку за воротник
  Ты поправил уже заложенную за воротник салфетку и жадно сглотнул.

> заложить рюмку за воротник
  Что толку в пустой рюмке - за воротник не заложишь.

Отредактировано noname (28.07.2009 00:10)

Неактивен

0    0    #40
05.08.2009 22:59

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

noname

Re: Бета-тестирование

> з
Ты ушел на запад в гардероб.
Гардероб
  Стены этой маленькой комнаты, очевидно, когда-то имели множество крючков для
одежды. Сейчас же остался только один. Единственная дверь ведет на восток.
Здесь есть маленький бронзовый крючок для одежды.

> повесить плащ
Куда повесить?

> на крючок
Маленький бронзовый крючок для одежды не годится для этого действия.

насколько я знаю RTADSа(довольно плохо), он понимает уточняющие фразы. т е если после 'куда повесить?' ответить 'на крючок' то он бы понял(хотя реально там какой-то пример с яблоками приводился: взять яблоко - какое яблоко - зелёное - ты взял зелёное яблоко)

// это я так - штоп тебе было чем заняться smile

Неактивен

0    0    #41
06.08.2009 14:57

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

noname

Re: Бета-тестирование

Бархатный плащ или маленький бронзовый крючок для одежды?

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

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

Неактивен

0    0    #42
13.08.2009 20:06

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

noname

Re: Бета-тестирование

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

когда я на RTADS описал стол и яблоки на нём, то в описании локации, при входе в неё, перечислялся и стол и

предметы на нём

примерно так:

стол находится здесь. зелёное яблоко и красное яблоко находятся на столе

вот как-то так. вполне логично, что ГГ, входя в комнату(пещеру) видит предметы на столе(на пъедестале).

если они только не спрятаны под чем-то

---

насчёт спелеолога: команда выложить/положить/бросить почему-то не работает. она вообще есть в библиотеке? без

неё немного неудобно тестить работу с предметами. ещё немного повыделываюсь: а не доделать ли библиотечные

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

ЗЫ

у меня вроде бы последняя версия библиотеки, НО не последняя версия ТОМ

---

работе над спелеологом ОЧЕНЬ мешает одна игрушка с oldgames, называется xcom-apocalypse. уже почти две недели в неё играю и просто не в состоянии от неё оторваться(играю из-под дос-бокса)

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru