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 09:32

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

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

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

Korwin написал:

ASBer написал:

- полное портирование библиотеки рТАДСа (собственной библиотеки к 1й версии не планируется);

Изумлен. Это серьезно? Это возможно?

Это трудоемко, долго и муторно, но возможно.
Обе системы - парсерные, объектноориентированные, с C++ подобным языком. Это их роднит.
Надеюсь, что портирование библиотеки в дальнейшем позволит портировать игры между платформами, а также облегчит написание игр для ТОМа авторам, имеющим опыт работы в RTADS.

Неактивен

0    0    #3
08.01.2009 12:06

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

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

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

noname, я постараюсь это учесть, когда начну ваять собственную библиотеку (родную для ТОМа).

Неактивен

0    0    #4
09.01.2009 11:10

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

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

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

noname написал:

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

Библиотеку РТАДС я постараюсь сохранить в максимально близком к оригиналу состоянии. Переделывать ее логику в мои планы не входит.
-----
  Если же рассуждать о метафизике ИЛ, то чем больше глаголов игра "понимает", тем лучше. Это производит выгодное впечатление и о игре и о платформе.
  Другое дело что умолчальные реакции на действия ИМХО должны быть максимально нейтральны, и не приводить к тупиковым состояниям.

Неактивен

0    0    #5
02.02.2009 09:34

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

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

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

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

Милена нужна версии 2.0 с последним обновлением модулей.
Библиотеру tom.dll в милене нужно заменить на свежую.
Далее в Милене: Файл->Открыть->Выбираем файлы с расширением .tom->Выбираем файл->Open
Или выбрать для открытия файлов.tom Милену как программу по умолчанию (как у меня wink ).

Отредактировано ASBer (02.02.2009 09:38)

Неактивен

0    0    #6
02.02.2009 22:31

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

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

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

ну если совсем просто - то примерно так:

файл удален - устарел

Отредактировано ASBer (28.07.2009 13:15)

Неактивен

0    0    #7
02.02.2009 22:32

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

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

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

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

Неактивен

0    0    #8
03.02.2009 09:22

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

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

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

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

>с по-возможности полным контролем над вводом игрока: сколько слов ввёл? какие конкретно? в каком порядке?
- смотри глобальную переменную token[]

>в каких формах
- для объектов, возвращаемых парсером, смотри свойство .key

>решил использовать в своём творилове только простые фразы- без связок 'и'
- связки 'и' сейчас сделать крайне затруднительно, это появится только во 2й версии.

>постараюсь сделать хотя бы одну команду с большим(3-и или более) кол-вом аргументов.
- а вот это как раз без проблем. smile

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

Неактивен

0    0    #9
04.02.2009 08:51

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

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

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

В .title сейфа были ошибки:

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

и далее...

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

Отредактировано ASBer (04.02.2009 08:56)

Неактивен

0    0    #10
04.02.2009 09:12

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

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

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

noname пишет:

редактирую в обычном блокноте.

-  и я тоже smile

заметил такую заморочку: ДО объявления объекта ссылаться на него- некорректно.

- Да, конечно. ТОМ - это однопроходный интерпретатор. Но есть предопределение объектов:

location a1
location a2
location a3

и далее...

location a1
  .описание локации a1
  ...
location a2
  .описание локации a2
  ...
location a3
  .описание локации a3
  ...

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

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

Отредактировано ASBer (04.02.2009 09:24)

Неактивен

0    0    #11
04.02.2009 09:22

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

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

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

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

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

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

Вообще здесь стандартное ООП. Переопределение методов, и вызовы методов классов работают как и везде. Не совсем понял проблему... можно поподробнее?

дополнение:
Хотя небольшой примерчик по функциям и методам действительно лишним не будет. smile

дополнение:
Добавил в пример входы-выходы и команды войти-выйти

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


Прикрепленные файлы:
СЮЗВ.tom, Размер: 3,086 байт, Скачано: 782

Неактивен

0    0    #12
04.02.2009 21:48

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

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

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

2. %{obj.описание} - фигурные скобки позволяют вставлять выражения в оператор вывода?

Фигурные скобки позволяют вставлять выражения в любую строку. Так как все что справа от оператора % это строка, то и в оператор вывода тоже.

4. готов ли полный список служебных слов?

Практически все служебные слова перечислены в Вике на страничке ТОМ: язык программирования. Правда пока не все описаны...

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

Думаю пойдет любой редактор с подсветкой синтаксиса Си.

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

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

Отредактировано ASBer (04.02.2009 21:50)

Неактивен

0    0    #13
05.02.2009 11:54

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

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

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

Eten написал:

Хороший редактор с подсветкой СИ и прочих языков - Bred3.

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

Отредактировано ASBer (05.02.2009 13:26)

Неактивен

0    0    #14
05.02.2009 16:58

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

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

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

2Korwin: я еще настройку синтаксиса поковыряю, и выложу. Пока еще сыро.

2Gremour: спасибо, посмотрю!

Неактивен

0    0    #15
06.02.2009 09:27

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

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

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

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

нужно в {actor.loc.item} добавить некий аспект:

{actor.loc.item:аспект} //слово "аспект" заменить на необходимый признак.

в этом в случае в список попадают только те объекты, которые унаследованы от класса с именем "аспект", или имеют истинное свойство с именем "аспект".
Т.е. чтобы ГГ не отображался в списке, необходимо чтобы ГГ не имел некое свойство, которое имеют все остальные предметы в локации.

пример:

Код:

class нечто //наследуем от него всё сущее
  ...
unique ты.cls = нечто //в том числе и ГГ, так как нечто имеет полезные свойства
  .нечто = нет //нейтрализуем аспект "нечто" для ГГ
  ...
...
%{actor.loc.item:нечто} //в локации отображаем все, что имеет аспект "нечто"
...

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

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

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

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

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

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

И мне это тоже хотелось бы... sad

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

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

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

Неактивен

0    0    #16
06.02.2009 20:58

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

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

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

noname написал:

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

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

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

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

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

Можно попробывать и так... но с ходу не могу придумать как.

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

Вообще то изменится. Помимо классов в ТОМе есть категории. Именно они задаются ключевыми словами location, unique, action и т.д. И слово "class" кстати тоже обозначает специальную категорию объектов для описания классов.

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

Помоему такому подходу ничто не мешает... кроме отсутствия стандартной библиотеки smile

описан класс T_parent_class
как создать класс-наследник T_child_class, который унаследует все его свойства и методы?

Код:

class T_parent_class
  ... //описание свойств и методов класса
class T_child_class.cls = T_parent_class
  ... //описание свойств и методов класса

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

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

Это означает попытку присвоить объект некоторому пустому значению.

Отредактировано ASBer (06.02.2009 21:05)

Неактивен

0    0    #17
27.06.2009 12:32

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

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

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

В ближайшее время выйдет существенно переработанная и исправленная версия.
Надеюсь что эта и подобные ей ошибки повторяться не будут.

Отредактировано ASBer (27.06.2009 13:08)

Неактивен

0    0    #18
20.07.2009 07:25

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

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

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

noname написал:

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

- выложить кафелем, например smile

Я думаю что "выложить"="положить на пол" и учитывая допустимую условность можно просто сделать синонимами "положить"="выложить".
>выложить на стол
>выложить в сундук
>выложить под кровать

Неактивен

0    0    #19
21.07.2009 09:22

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

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

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

uux, в ТОМе есть 2 возможности задать синонимы для глаголов:
- глобальные синонимы, которые подставляются перед началом парсинга;
- и локальные синонимы, которые действуют в границах парсерного шаблона.
Поэтому, предложенные тобой синонимы вполне реально сделать, если задавать их локально для каждого шаблона smile

Неактивен

0    0    #20
21.07.2009 23:48

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

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

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

Старик сказал - старик сделал!  А если не сделал - не старик. big_smilebig_smilebig_smile

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

Неактивен

0    0    #21
22.07.2009 10:29

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

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

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

> старик, скажи: "Старик, возьми ложку"
Старик: старик возьми ложку
Старик: вот, уже сам с собой начал говорить...
Старик взял ложку со стола.

noname так лучше?

Неактивен

0    0    #22
22.07.2009 15:29

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

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

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

noname написал:

по команде осмотреться 'не видны' предметы, которые есть в комнате.

Ок. Можно по команде "осмотреться" дергать метод OnEnter() текущей локации.
Тогда будет выводиться все как при входе в локацию.

Сейчас "осмотреться" = "осмотреть {loc}" - т.е. выводится свойство "описание" текущей локации.

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

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

В любом случае для каждой конкретной локации это можно поменять, перегрузив метод OnEnter() и свойство "описание"

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

Неактивен

0    0    #23
22.07.2009 16:13

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

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

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

noname написал:

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

OnEnter как раз и создавался для вывода описания локации. Он срабатывает только на управляемого персонажа и вешать на него дополнительные события не совсем корректно.
Для перемещений есть более универсальные обработчики событий - ChkMoveObj(), BefMoveObj(), AftMoveObj() - срабатывают при любом перемешении и для всех объектов.

noname написал:

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

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

global.прилагательное_деревянный = "... полное описание ..."
...
А.деревянный = global.прилагательное_деревянный
Б.деревянная = global.прилагательное_деревянный
В.деревянное = global.прилагательное_деревянный

Хотя лучше все же будет так:

global.прилагательное_деревянный = "... описание для м.р. ..."
global.прилагательное_деревянная = "... описание для ж.р. ..."
global.прилагательное_деревянное = "... описание для с.р. ..."
...
А.деревянный = global.прилагательное_деревянный
Б.деревянная = global.прилагательное_деревянная
В.деревянное = global.прилагательное_деревянное

noname написал:

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

Код в студию! smile

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

Неактивен

0    0    #24
22.07.2009 17:37

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

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

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

noname написал:

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

Меню крепится к локации, следовательно должно быть loc.menu().
Если в локации есть хотя-бы одно menu_item(), строка меню добавится к описанию.

Неактивен

0    0    #25
23.07.2009 13:56

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

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

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

noname написал:

допустим, имеются 4-ре локации a1,a2,b1 и b2 (2x2),
и надо, что бы м/ду a2 и b2 проход бы не был возможен

В этом конкретном случае проще всего повесить на персонажей проверку ChkMoveObj()

Код:

персонаж.ChkMoveObj(From,To)
{ if(From==a2 and To==b2 or From==b2 and To==a2)
   { %здесь прохода нет!
      return нет //перемещение отменяется
   }
}

В мышка смотри в файле Mouses.tom

Код:

МышеКрот.ПроверкаПеремещенияОбъекта(Откуда,Куда)
{ //Актер еще не вышел из локации, но намеревается это сделать
  ...  
  return нет //перемещение запрещено
}

P.S. модуль Map.tml предполагает что если локации расположены в соседних клетках, то проход между ними есть. "Стенами" между локациями служат пустые клетки карты.

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

Неактивен

0    0    #26
23.07.2009 15:37

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

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

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

игруха пишет: "ГГ находится тут", а надо: "ты находишься тут".

Чтобы писалось "ты находишься тут" вообще ничего менять у ГГ не надо! Если не работае - присылай код на мыло.

title для персонажей уже использованы в main.tml - их менять нельзя.

ГГ.описание = "самый крутой герой!" //меняет описание ГГ

ГГ.по_имени = "Вас%; ЕчОд; Ип; Зп=ь; Зп=я; Ип=я; Рп=и; Дп=е; Вп=ю; Тп=ей; Пп=е;" //меняет имя ГГ

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

unique нож //создаем предмет
{ cls = предмет
   this.МожноВзять = да
   ГГ + this //помещаем предмет в инвентарь ГГ
}

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

Неактивен

0    0    #27
23.07.2009 16:18

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

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

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

noname написал:

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

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

noname написал:

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

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

Неактивен

0    0    #28
23.07.2009 18:33

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

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

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

У меня нет аськи smile мэйл.ру-агент пойдет?

Неактивен

0    0    #29
23.07.2009 18:50

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

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

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

взял со стола ложку
осмотрел стол
надписи "на столе ничего нет" я не увидел

у меня этот баг не повторяется...
1. описание стола сделано в тесте, а не в библиотеке.
2. такое может быть, если на столе есть еще что-то невидимое smile  - объект без свойства "предмет_по_месту"
3. покажи код стола smile

Отредактировано ASBer (23.07.2009 18:59)

Неактивен

0    0    #30
23.07.2009 19:09

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

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

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

код из сообщения #121 работает правильно...

попробуй в столе заменить
      fnOписание()
      { if(item) return "{item:предмет_по_месту}."
        else return "на столе ничего нет"
      }
на
      fnOписание()
      { if(item:предмет_по_месту.num) return "{item:предмет_по_месту}."
        else return "на столе ничего нет"
      }

Неактивен

0    0    #31
23.07.2009 19:34

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

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

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

Скорее стол засорился smile
поменяй на
      fnOписание()
      { if(item) return "{item}."
        else return "на столе ничего нет"
      }
и увидишь сколько там мусора smile

Неактивен

0    0    #32
23.07.2009 20:08

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

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

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

ТОМ - Текстовая Основа Миростроения v.0.9.2.1 beta. ASBer(C)2008-2009

Последние библиотеки идут с версией v.0.9.2.2 (возьми в папке Libs4tom/Bin)

Отредактировано ASBer (23.07.2009 20:08)

Неактивен

0    0    #33
23.07.2009 22:13

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

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

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

noname написал:

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

Наверное проще всего вариант "в лоб" - в каждом действии прописать проверку текущей локации.

персонаж.взял()
{ if(loc==запретная_локация)
   { %ты не можешь здесь ничего брать!
      return;
   }

   //...

}

и далее также по всем действиям...

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

Отредактировано ASBer (23.07.2009 22:18)

Неактивен

0    0    #34
25.07.2009 09:33

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

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

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

с учётом того, что её придётся доводить до ума- думаю, в этом году успею

А можно я набьюсь в бета-тестеры? smile

В файле набросок к лифту.
P.S. есть небольшая условность - числа в команде должны быть ПЕРЕД объектом. "5 этаж" - правильно. "Этаж 5" - будет ошибка.

--------------------------------------------------------------------------------
Прикрепленные файлы:
SixFloors.tom, Размер: 1,800 байт, Скачано: 27

Отредактировано ASBer (28.07.2009 13:28)

Неактивен

0    0    #35
27.07.2009 23:22

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

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

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

noname написал:

ты это, не томи- этож

Пример на один глагол и два объекта.

--------------------------------------------------------------------------------
Прикрепленные файлы:
to_pawn.tom, Размер: 2,050 байт, Скачано: 30

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

Неактивен

0    0    #36
28.07.2009 09:55

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

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

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

fireton, единственный известный мне способ понять язык - это начать писать на нем smile
Подругому никак... hmm

Неактивен

0    0    #37
05.08.2009 22:38

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

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

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

Тогда вот пока вам совсем маленькая но зато классическая игрушка - Плащ тьмы.

Возможности стандартной библиотеки пока гораздо скромнее рТАДСа - например, надеть плащ не получится.
В остальном получилось довольно близко к оригиналу...

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

--------------------------------------------------------------------------------
Прикрепленные файлы:
Cloak.rar, Размер: 188,580 байт, Скачано: 26

Неактивен

0    0    #38
06.08.2009 14:32

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

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

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

> инв
У тебя есть бархатный плащ.

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

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

> маленький крючок
Это просто маленький бронзовый крючок, прикрученный к стене.

noname, в ТОМе уточнения работают. Но я еще подумаю... smile

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

Неактивен

0    0    #39
06.08.2009 17:07

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

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

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

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

Здесь на троне правит королева в короне.

> осм ее
Королеву или корону?

вот с этим уже хуже... буду думать smile

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

Неактивен

0    0    #40
07.08.2009 08:55

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

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

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

Серый Волк, спасибо, но все только начинается! wink

Неактивен

0    0    #41
10.08.2009 18:05

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

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

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

И до кучи вот еще игра про золотой череп портирована на стандартную библиотеку ТОМа.

--------------------------------------------------------------------------------
Прикрепленные файлы:
GOLDSKLR.rar, Размер: 188,249 байт, Скачано: 33

Отредактировано ASBer (11.08.2009 09:04)

Неактивен

0    0    #42
19.08.2009 15:06

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

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

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

Cheshire написал:

ASBer написал:

Здесь на троне правит королева в короне.

> осм ее
Королеву или корону?

вот с этим уже хуже... буду думать smile

А разве нужно что-то придумывать? Обычная жизненная ситуация.

Если в тексте присутствуют персонаж и объект, то персонаж как правило более значим. В данном примере корона никак не акцентирована и служит как дополнительное описание самой королевы.

Cheshire написал:

Насчет примера про "пнуть Елену". Можно как-то отделить объекты в описаниях, инициированных игроком, от объектов в описаниях, инициированных программой?

угу, это можно.

Отредактировано ASBer (19.08.2009 15:08)

Неактивен

0    0    #43
24.08.2009 11:34

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

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

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

oleksus написал:

А кстати, что с Миленой, движется?

На вике лежит графический интерфейс для тома на основе милены лайт.
Там можно менять шрифт, форматировать текст, вставлять картинки и музыку. Все работает - спасибо Александру Графу smile

oleksus написал:

можно ли в ТОМ конструировать фразы-обращения, например "Робот, возьми гайку и закрути винт."?

В текущей версии можно только в два этапа:
>Робот, возьми гайку
>Робот, закрути винт
Но я думаю что эта проблема решаема, скоро иcправлю.

oleksus написал:

Насчёт "ты" и "вы" - даже при обращении на "ты" можно избежать личных окончаний, т.к. они лишь в прошедшем времени. Вместо "ты взял" - пишем "ты берёшь".

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

oleksus написал:

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

Добавлю в библиотеку возможность обращения к персонажу на "Вы". Пусть авторы игр сами решают как правильно. wink

Неактивен

0    0    #44
24.08.2009 13:41

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

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

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

oleksus написал:

А что насчёт фразы "Пусть робот возьмёт гайку."?

Без проблем.
Нужно создать действие "пусть" с соответствующим шаблоном.

Но я не уверен что такое действие должно быть включено в стандартную библиотеку.

Неактивен

0    0    #45
24.08.2009 14:43

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

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

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

Все файлы игр (.tom, .tml) это обычные текстовые файлы.
Можно просматривать и редактировать любым текстовым редактором.

Неактивен

0    0    #46
15.10.2009 01:51

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

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

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

Начиная с версии 0.9.2.8 beta возможна вставка выражений на естественном языке в код игры.
Для анализа выражений в коде игры использует тот-же парсер, что и для команд в процессе самой игре.
Выражения ЕЯ могут встраиваться в конструкции языка программирования.
Выражения ЕЯ не могут встраиваться в вычисляемые выражения - формулы, присвоения и т.п.
В конце выражения ЕЯ обязательно должна стоять точка.
Парсерная ошибка в коде приравнивается к синтаксической ошибке и приводит к прерыванию выполнения кода.

Выражения ЕЯ в коде эквивалентно оператору "<" для объекта this.
выполнение строки с синтаксисом:

команда на ЕЯ.

эквивалентно выполнению операции:

this < "команда на ЕЯ"

Неактивен

0    0    #47
15.10.2009 10:05

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

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

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

fireton написал:

Скачал ТОМ, попытался разобраться... Не очень получилось, если честно.
Если б какие-нибудь уроки были, о создании игры с нуля...

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

fireton написал:

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

Платформа не имеет жестко заданных парадигм словообразования. Библиотеки и даже отдельные игры могут применять свою собственную систему генерации словоформ и их согласования. Поэтому утилитку можно сделать только для стандартной библиотеки, которая всё еще в разработке...
Для существительных и прилагательных можно взять алгоритм генератора рТАДСа, если GrAndrey разрешит.
Для глаголов все сложнее... но новые глаголы нужны не так частно.

Неактивен

0    0    #48
15.10.2009 18:29

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

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

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

noname написал:

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

Одно другому не мешает, особенно если учесть что словари - ну ооочень дальняя перспектива.

Неактивен

0    0    #49
17.10.2009 19:22

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

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

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

Добавил ссылки на статьи http://ifwiki.ru/ТОМ:_Лексема и http://ifwiki.ru/ТОМ:_Морфологический_ключ
возможно это поможет...

Cheshire написал:

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

Потому что иногда можно сократить описание лексемы, не прописав некоторые ключи.
Например:
"пещер%; ЖрЕчНдСи; Ип; Ип=а; Рп=ы; Дп=е; Вп=у; Тп=ой; Тп=ою; Пп=е;"
эквивалентно
"пещер%; ; ЖрЕчНдСиИп; ЖрЕчНдСиИп=а; ЖрЕчНдСиРп=ы; ЖрЕчНдСиДп=е; ЖрЕчНдСиВп=у; ЖрЕчНдСиТп=ой; ЖрЕчНдСиТп=ою; ЖрЕчНдСиПп=е;"
Если для лексемы указан, например, женский род, то и каждая словоформа лексемы будет отнесена к женскому роду. В таком случае Жр достаточно указать один раз как свойство всей лексемы.

Cheshire написал:

или наоборот, после где-нибудь идет строчка this.род_число = "ЖрЕч" (или даже ЖрМрЕч)?

Это я сумел победить доработав парсер. В текущей версии в this.род_число = "ЖрЕч" никакой необходимости нет и можно забыть как страшный сон.

Cheshire написал:

Что означает первый Ип?

Первый Ип - это словоформа по умолчанию. Если Вы напишите
%{пещера}
на экран будет выведено
пещера
т.е. тоже самое, как если бы Вы написали
%{пещера*Ип}

Cheshire написал:

Что означают Си и Пи (существительное/прилагательное? а что за "и")?

Совершенно верно! Существительное имя , Прилагательное имя smile

Cheshire написал:

Нужны примеры с предметами в множественном числе, исчислимыми предметами, со сложными названиями (нож Васи, клубок ниток) и т.д. roll

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

upd:
Еще очень рекомендую разобраться с примером Морфология.tom (есть в наборе примеров)


Прикрепленные файлы:
Морфология.tom, Размер: 5,964 байт, Скачано: 634

Неактивен

0    0    #50
27.12.2009 16:08

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

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

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

Alexandr написал:

Почему ГГ так слушается других персонажей? Если они скажут ему убиться он тоже убъется? smile

Конечно smile
ГГ такой же персонаж как и все остальные NPC. Чтобы ГГ не слушал команд NPC нужно прописать метод

Код:

ГГ.свобода_воли(){ return нет }

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru