Forum.iFiction.Ru

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

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

Вы не зашли.

Объявление

Вовсю играем в игры КРИЛ и делимся впечатлениями в этой теме. И ГОЛОСУЕМ!

   #1
01.03.2009 19:06

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

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

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

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

Неактивен

   #2
01.03.2009 22:01

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

noname

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

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

Неактивен

   #3
01.03.2009 22:10

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

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

Код:

verDoAskAbout( vorona, iobj ) = {}    
doAskAbout( vorona, iobj ) =
  {
    switch( iobj )
    {
     case syr:
            "\"Великолепный сыр\"";
        break;
      default:
        "\"Ничего не могу сказать об этом.\"";
      }
    }
;

код

Неактивен

   #4
02.03.2009 06:45

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

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

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

Неактивен

   #5
02.03.2009 21:44

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

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, убедительная просьба на будущее - когда задаете вопрос, по возможности указывайте и сообщение об ошибке - это сильно облегчает ее поиск).

Неактивен

   #6
02.03.2009 22:04

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

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

uux написал:

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

Конечно, учту. Я больше так не буду:)

Неактивен

   #7
02.03.2009 22:07

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

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

Natalka написал:

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

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

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

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

Natalka написал:

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

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

Неактивен

   #8
03.03.2009 20:32

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

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

Спасибо большое за ответы, теперь все стало получаться.

Неактивен

   #9
05.03.2009 17:23

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

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

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

Неактивен

   #10
05.03.2009 18:36

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

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)

Неактивен

   #11
13.03.2009 18:12

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

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

Спасибо большое.smile

Неактивен

Powered by PunBB
© copyright 2001–2018 iFiction.Ru