Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
01.03.2009 19:06

Natalka
Участник
Зарегистрирован: 01.03.2009
Сообщений: 8

Подскажите новенькой:)

1. Решила попробовать себя в написании текстового квеста в TADS. Скачала набор для автора, новую библиотеку и обучалки. Все установила.
Но новая версия обучалки про козу и капусту у меня не компилируется, а старая - все ок. Библиотеку libr25 в папку TADS Tools скинула. Что же не так?sad
2. На основе старой версии обучалки попробовала сделать что-то свое. Взяла игрока, ворону и сыр в стартовой локации. Описания сыра, вороны и тп. написала, все ок. Пробую позволить игроку спросить ворону о сыре. Когда спрашиваешь ворону и затем после подсказки ситемы уточняешь, что спрашиваешь о сыре, все работает. А когда сразу в одном предложении спрашиваешь про сыр, получаешь ответ: "Я не знаю слова сворона". В чем тут моя ошибка. Для написания кода я ориентировалась на руководство по TADS.

Заранее спасибо. И не судите, пожалуйста, строго я новичок и не программист, а любитель:)

Неактивен

0    0    #2
02.03.2009 06:45

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Подскажите новенькой:)

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

Неактивен

0    0    #3
02.03.2009 21:44

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Подскажите новенькой:)

Так, начинаем наконец отвечать на вопросы.

Natalka написал:

1. Решила попробовать себя в написании текстового квеста в TADS. Скачала набор для автора, новую библиотеку и обучалки. Все установила.
Но новая версия обучалки про козу и капусту у меня не компилируется, а старая - все ок. Библиотеку libr25 в папку TADS Tools скинула. Что же не так?sad

Попробовал - у меня тоже не компилируется, сообщение об ошибке такое:
generator.t(8): error TADS-117: #define symbol already defined -- redefinition ignored

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

Код:

#define GENERATOR_INCLUDED

один раз в файле generator.t, а другой - в vkkpuzl.t. Достаточно закомментировать (или удалить) любое из этих определений, и все заработает.

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

Неактивен

0    0    #4
02.03.2009 22:07

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Подскажите новенькой:)

Natalka написал:

2. На основе старой версии обучалки попробовала сделать что-то свое. Взяла игрока, ворону и сыр в стартовой локации. Описания сыра, вороны и тп. написала, все ок. Пробую позволить игроку спросить ворону о сыре. Когда спрашиваешь ворону и затем после подсказки ситемы уточняешь, что спрашиваешь о сыре, все работает. А когда сразу в одном предложении спрашиваешь про сыр, получаешь ответ: "Я не знаю слова сворона". В чем тут моя ошибка. Для написания кода я ориентировалась на руководство по TADS.

Да, действительно глюк системных библиотек. Выход - пока перейти на более старую версию (23 или 24, можно попросить у ГрАнда, а в принципе и у меня они где-то валяются;). А может, ГрАнд чего-то присоветует...

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

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

Natalka написал:

Заранее спасибо. И не судите, пожалуйста, строго я новичок и не программист, а любитель:)

Natalka, Вам спасибо за интерес к ТАДСу;).

Неактивен

0    0    #5
05.03.2009 18:36

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Подскажите новенькой:)

Natalka написал:

Я снова с вопросами:) Решила написать тут же, чтоб форум не засорять.
У меня снова есть ворона, есть сыр. Сыр я хочу выдать вороне. Для сыра я прописала location=vorona.
Подскажите, пожалуйста, как сделать так, чтобы при осмотре вороны, автоматом сообщалось, что у нее есть сыр или что-то еще.

Если нужно проверять только сыр, то проще всего сделать так:

Код:

vorona: Actor
ldesc={"На ветке дерева сидит ворона. "; // Стандартное описание
           if(self.isCarrying(syr))  
           // Проверяем, есть ли у вороны сыр - self ссылается на объект, которому принадлежит текущий метод;
           // isCarrying - более общая проверка, чем syr.location=vorona, т. к. учитывает случаи, когда 
           // у вороны в клюве лукошко, а уже в лукошке лежит сыр
             {"Она держит в клюве сыр.";
             }
           else  // Вариант, когда у вороны ничего нет
             {"Она недовольно щелкает клювом.";
             }
          }
;

Если в принципе нужно выводить предметы, которые есть у актера, можно поступить так (это посложнее):

Код:

vorona: Actor
ldesc={"На ветке дерева сидит ворона. "; // Стандартное описание
            if (itemcnt(self.contents)) // itemcnt - возвращает число элементов в списке; 
                                                 // self.contents - это и есть список содержимого (инвентарь) self'а, т. е. вороны
              {"У вороны есть "; 
                global.vinpadcont:=0; // Флаг для правильного отображения винительного падежа
                listcont(self);". ";  // listcont - перечисляет инвентарь актера
                global.vinpadcont:=1; // Возвращаем флаг в исходное состояние
              }
            else
              {"Она недовольно щелкает клювом.";
              }
           }

Отредактировано uux (05.03.2009 18:37)

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru