Список форумов Русский TADS Русский TADS
Русский TADS. Разработка текстовых игр на русском языке. Интерактивная литература.
Второй форум находится здесь.
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Вопросы "чайников" и ответы "знатоков"
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов Русский TADS -> Русифицированный ТАДС
Предыдущая тема :: Следующая тема  
Автор Сообщение
Евгений Туголуков



Зарегистрирован: 23.09.2003
Сообщения: 5
Откуда: г.Екатеринбург

СообщениеДобавлено: Пт Янв 16, 2004 2:00 pm    Заголовок сообщения: Вопросы "чайников" и ответы "знатоков" Ответить с цитатой

[/b]Предлагаю создать FAQ-тему для дурацких ( и умных разумеется) вопросов новичков по RTADS и созданию игр. [b]

Первые вопросы задам сам (ибо новичок) Smile

1. У меня в игре есть вода (fooditem). Как сделать, чтобы ее можно было пить, но не есть? Ведь drinkitem отсутствует?

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

С уважением, Корвин.[/list]

P.S. Почему в рубрике "материалы" "Руководство по RTADS" on-line не работают страницы приложений?
_________________
Korwin
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
GrAnd
Site Admin


Зарегистрирован: 04.02.2003
Сообщения: 299
Откуда: Россия, Москва

СообщениеДобавлено: Пт Янв 16, 2004 3:11 pm    Заголовок сообщения: Ответить с цитатой

"У меня в игре есть вода (fooditem). Как сделать, чтобы ее можно было пить, но не есть? "

obj: fooditem
verDoEat(actor) = "Это нельзя есть."
verDoDrink(actor) = {}
doDrink(actor)={"<<ZAG(actor,&sdesc)>> выпил<<iao(actor)>> <<self.vdesc>>"; self.moveInto(nil);}
;

"Почему в рубрике "материалы" "Руководство по RTADS" on-line не работают страницы приложений?"

Валентин Коптельцев ещё их не перевёл. Последние части он делает медленно, но обещал закончить, чему есть основания верить.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
GrAnd
Site Admin


Зарегистрирован: 04.02.2003
Сообщения: 299
Откуда: Россия, Москва

СообщениеДобавлено: Сб Янв 17, 2004 11:19 am    Заголовок сообщения: Ответить с цитатой

Радио:

radio: item
mes = ['Сообщ1' 'Сообщ2' 'Сообщ3' 'Сообщ4']
radiomsg =
{
local curmes;
if (rand (3)=1)
{
// Выбираем случайное сообщение
curmes := rand(length(mes));
// Выводим на экран сообщение
say(curmes);
// Удаляем из сиска
mes := mes - curmes;
}
}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Krol
Главный флеймер


Зарегистрирован: 05.05.2003
Сообщения: 56
Откуда: Набережные Челны

СообщениеДобавлено: Сб Янв 17, 2004 7:22 pm    Заголовок сообщения: Ответить с цитатой

Гранд как всегда умный!!! Razz
_________________
Нет войне! Даёшь ROCK'N'ROLL !!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Евгений Туголуков



Зарегистрирован: 23.09.2003
Сообщения: 5
Откуда: г.Екатеринбург

СообщениеДобавлено: Ср Янв 21, 2004 10:01 am    Заголовок сообщения: Ответить с цитатой

Большое спасибо, GrAnd!
_________________
Korwin
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Korwin
Гость





СообщениеДобавлено: Ср Июн 20, 2007 4:20 pm    Заголовок сообщения: Ответить с цитатой

Так. Нигде не могу найти нормально работающий пример типа:

инв: Весло, Нож, Веревка.

> Привязать нож к веслу
(Веревкой)
Вы получили самодельное копье.

Как это реализовать?

Как вариант годится и без учета веревки. >Прикрепить нож к веслу
(я знаю как проверить, чтобы веревка была в инвентаре Smile )
Вернуться к началу
uux



Зарегистрирован: 18.03.2007
Сообщения: 25
Откуда: Москва

СообщениеДобавлено: Пт Июн 22, 2007 10:31 pm    Заголовок сообщения: Ответить с цитатой

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

Вот пример (используем глагол attachVerb - определен в advr.t):

Код:

Rope: thing
noun='веревка'
sdesc="веревка"
location=startroom
;
Knife: thing
noun='нож'
sdesc="нож"
location=startroom
verDoAttachTo(actor, iobj) = {if(not actor.isCarrying(self))
                                {"Сначала нож надо взять!";
                                }
                              else
                                {if(not actor.isCarrying(Rope))
                                   {"Нечем привязывать нож.";
                                   }
                                }
                             }
;
Pole: thing
noun='палка'
sdesc="палка"
location=startroom
verIoAttachTo(actor)={if(not actor.isCarrying(self))
                        {"Сначала палку надо взять!";
                        }
                     }
ioAttachTo(actor, dobj)={if(dobj<>Knife)
                           {"Ну, и на фига привязывать к палке <<dobj.rdesc>>?";
                           }
                         else
                           {"Ты привязываешь нож к палке. Получается копье.";
                            Pole.moveInto(nil);
                            Knife.moveInto(nil);
                            Rope.moveInto(nil);
                            Spear.moveInto(actor);
                           }
                        }
;
Spear: thing
noun='копье'
sdesc="копье"
;


Для команды

> ПРИКРЕПИТЬ НОЖ К ПАЛКЕ

верификаторы будут вызываться в следующей последовательности:

Knife.verDoAttachTo(actor, iobj)
Pole.verIoAttachTo(actor)
Pole.ioAttachTo(actor, dobj)

Если нужно, чтобы распознавался глагол привязать, можно добавить его в синонимы для к attachVerb. Если надо, чтобы "прикрепить" и "привязать" не были синонимами, надо определить глагол для слова "привязать" примерно так:

Код:
TieVerb: deepverb
verb='привязать'
sdesc="привязать"
prepDefault = toPrep
ioAction(toPrep) = 'AttachTo'
;


Соответственно, для фразы "привязать палку к ножу" верификаторы надо поменять объектами - ну, ты понялWink.

Будут непонятки по примеру - пиши.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
GrAnd
Site Admin


Зарегистрирован: 04.02.2003
Сообщения: 299
Откуда: Россия, Москва

СообщениеДобавлено: Пт Июн 22, 2007 11:53 pm    Заголовок сообщения: Ответить с цитатой

uux, Спасибо за пример!
Я уже помог Евгению по аське.
В принципе, я за пару часов могу написать хак, позволяющий вводить "привязать нож к палке веревкой". В результате он будет читаться как: "привязать веревку к ножу, привязать веревку к палке"
Но для того, чтобы сделать хак более универсальным, придется придумывать специальные флаги для глаголов. Не знаю, стоит ли того.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
uux



Зарегистрирован: 18.03.2007
Сообщения: 25
Откуда: Москва

СообщениеДобавлено: Сб Июн 23, 2007 2:14 am    Заголовок сообщения: Ответить с цитатой

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


На данном этапе однозначно не стоитWink.

Кстати, наверное, можно сделать проще: определить предлог "веревкой" и глагол "привязать веревкой". Правда, это тоже сильно неуниверсально...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
AlsoKorwin
Гость





СообщениеДобавлено: Сб Июн 23, 2007 7:05 pm    Заголовок сообщения: Ответить с цитатой

uux писал(а):
GrAnd писал(а):
Но для того, чтобы сделать хак более универсальным, придется придумывать специальные флаги для глаголов. Не знаю, стоит ли того.


На данном этапе однозначно не стоитWink.

Кстати, наверное, можно сделать проще: определить предлог "веревкой" и глагол "привязать веревкой". Правда, это тоже сильно неуниверсально...


Насчет предлога - оригинальная идея (для меня).

uux, GrAnd - большое спасибо. Проблема решена. Мне кажется что этот пример неплохо было бы включить в документацию.
Вернуться к началу
uux



Зарегистрирован: 18.03.2007
Сообщения: 25
Откуда: Москва

СообщениеДобавлено: Вс Июн 24, 2007 10:49 pm    Заголовок сообщения: Ответить с цитатой

Спасибо на добром слове. У меня в примере про глагол "привязать" ошибка, конечно. Имелось в виду

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

Код:
TieVerb: deepverb
verb='привязать'
sdesc="привязать"
prepDefault = toPrep
ioAction(toPrep) = 'TieTo'
;


Первоначальный вариант (с ioAction(toPrep) = 'AttachTo') как раз сделает их синонимами. Понятно, что для нового глагола надо будет определять verIoTieTo и прочую лабудуWink.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
beat_swamp



Зарегистрирован: 31.01.2006
Сообщения: 20

СообщениеДобавлено: Пт Мар 07, 2008 2:18 pm    Заголовок сообщения: Ответить с цитатой

новый вопрос "чайника":

есть:
Код:

my_room : room
;
stul : chairItem
location = my_room
;
4el : Actor
location = stul
;


почему при команде "осмотреться" (находясь в комнате my_room) не выводится автоматом, что в комнате есть стул на котором сидит человек ???
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
fireton



Зарегистрирован: 20.08.2005
Сообщения: 22
Откуда: оттуда

СообщениеДобавлено: Вс Мар 09, 2008 8:06 pm    Заголовок сообщения: Ответить с цитатой

beat_swamp, потому что chairItem является fixedItem, а их описания не выводятся при осмотре локаций.
_________________
Тон
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
beat_swamp



Зарегистрирован: 31.01.2006
Сообщения: 20

СообщениеДобавлено: Вс Мар 09, 2008 8:29 pm    Заголовок сообщения: Ответить с цитатой

fireton писал(а):
beat_swamp, потому что chairItem является fixedItem, а их описания не выводятся при осмотре локаций.

а как поправить дело?
неужто просто в лдеск описании локации писать "... так же тут стоит стул а на стуле сидит вася" ???!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
uux



Зарегистрирован: 18.03.2007
Сообщения: 25
Откуда: Москва

СообщениеДобавлено: Пн Мар 10, 2008 5:15 pm    Заголовок сообщения: Ответить с цитатой

beat_swamp писал(а):
fireton писал(а):
beat_swamp, потому что chairItem является fixedItem, а их описания не выводятся при осмотре локаций.

а как поправить дело?
неужто просто в лдеск описании локации писать "... так же тут стоит стул а на стуле сидит вася" ???!!!


Можно и в ldesc прописать в конце (после проверки соответствующего условия):

Код:

if((stul.location=my_room) and (4el.location=stul))
  {"\bТакже тут стоит стул, а на стуле сидит Вася.";
  }


А можно установить свойство isListed для стула и персонажа в true. Именно это свойство-флаг определяет, будет ли объект упоминаться в описании комнаты, или нет.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Русский TADS -> Русифицированный ТАДС Часовой пояс: GMT + 4
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group