Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
19.12.2014 07:38

Vladimir
Участник (+176, -191)
Откуда: Владивосток
Зарегистрирован: 01.09.2012
Сообщений: 322
Вебсайт

Rinform. Именование объектов.

удалено

Отредактировано Vladimir (01.10.2019 17:15)

Неактивен

0    0    #2
19.12.2014 08:18

Cheshire
Участник (+141, -23)
Зарегистрирован: 01.07.2009
Сообщений: 340
Вебсайт

Утлый парсер ©

Re: Rinform. Именование объектов.

Код:

casegen [ beg end csID;
    return ICVowel (csID, beg, end, 'о', 0);
]

Это код, обрабатывающий беглую гласную. В ваших случаях это «о» и «е».

Попробуйте следующие исправления:

Код:

Object flint "кус/о/к/ кремня" plato
    has male,
    with name 'кремн' 'кремен' 'минерал',
    description "Он очень острый!",
    casegen [ beg end csID;
        return ICVowel (csID, beg, end, 'о', 0);
    ];

Object stone "кам/е/н/ь" plato
    has male, 
    with name 'камен' 'камн',
    description "Это небольшой и гладкий булыжник.",
    casegen [ beg end csID;
        return ICVowel (csID, beg, end, 'е', 0);
    ];

Косые черты отделяют изменяемые части слова от неизменяемых.

Отредактировано Cheshire (19.12.2014 08:18)

Неактивен

0    0    #3
19.12.2014 08:26

Cheshire
Участник (+141, -23)
Зарегистрирован: 01.07.2009
Сообщений: 340
Вебсайт

Утлый парсер ©

Re: Rinform. Именование объектов.

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

Неактивен

0    0    #4
19.12.2014 08:47

Vladimir
Участник (+176, -191)
Откуда: Владивосток
Зарегистрирован: 01.09.2012
Сообщений: 322
Вебсайт

Re: Rinform. Именование объектов.

удалено

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

Неактивен

0    0    #5
19.12.2014 10:10

Cheshire
Участник (+141, -23)
Зарегистрирован: 01.07.2009
Сообщений: 340
Вебсайт

Утлый парсер ©

Re: Rinform. Именование объектов.

Свойство объекта «name» — это массив, в котором перечисляются все текстовые строки, по которым игрок будет обращаться к этому объекту. При этом, здесь нужно описывать только неизменяемые части слова, окончания программа вроде как распознает сама (случай с беглыми гласными — исключение). Однако, когда объект описывается двумя словами, начинаются проблемы при распознавании. Реакция часто непредсказуемая. Может, нужно было поглубже изучить библиотеку, не знаю.

А вот в этой части кода: «Object flint "кус/о/к/ кремня" plato» и в функции «casegen» описывается то, как программа будет сама называть объект в системных сообщениях.

Vladimir написал:

Вставил ваш код, заработало, спасибо. Но, не понимал команду ВЗЯТЬ КУСОК. Когда добавил 'кус' к 'кремн' 'кремен' 'минерал', то программа стала на команду
ВЗЯТЬ КУСОК КРЕМНЯ выводить "Чем вы хотите взять кусок кремня из?".

Попробуйте свойство «name» у куска кремня написать следующим образом:

Код:

with name 'кусок' 'куск' 'кремня' 'минерал',

В словосочетании ведь меняется только «кусок». «Кремня» остаётся всегда неизменным.

Отредактировано Cheshire (19.12.2014 10:29)

Неактивен

0    0    #6
04.01.2015 09:49

Vladimir
Участник (+176, -191)
Откуда: Владивосток
Зарегистрирован: 01.09.2012
Сообщений: 322
Вебсайт

Re: Rinform. Именование объектов.

удалено

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

Неактивен

1    0    #7
28.12.2017 16:46

yandexx
Z-машина (+46, -3)
Откуда: Санкт-Петербург
Зарегистрирован: 01.06.2007
Сообщений: 394
Вебсайт

Русский Информ
Информ Discord

Re: Rinform. Именование объектов.

В такой ситуации корректнее будет не исправлять свой файл библиотеки, а в игре расширить грамматику глагола:

Extend 'рез' 'реж'
    * cAcc_noun  cIns_held -> Cut;

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru