Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
04.04.2008 11:05

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

noname

не качается авторкит

не могу скачать авторский набор ртадса (2.9mb)

проигрыватель квестов у меня есть (1.1mb)

у меня нет флэшгета
(или регета, как там правильно?)

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

жажду опробовать ваш движок

пока есть опыт программинга
на дельфях
урке
qsp
(на всех - по чуть-чуть)

Неактивен

0    0    #2
05.04.2008 20:06

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

Re: не качается авторкит

noname написал:

и ещё:

насчёт всяческих заранее описанных глаголов:

работа проделана большая, за что спасибо и всяческий респект, НО

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

[SNIP]

автору такие моменты предусмотреть сложно.

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

noname написал:

p.s.
где можно получить список всех команд, доступных игроку в игре
со всеми допускаемыми интерпретатором формами
(реакцию на них я в advr.t найду)

Список всех команд есть в этой главе мануала: http://www.rtads.org/man/TADSSTD.HTM (список глаголов можно найти, используя текстовый поиск по строке "Стандартные определения объектов-глаголов"). Правда, два момента: (1) всех интерпретируемых форм там нет, только основные синонимы. (2) Переводилась эта глава в 2004 году, поэтому ГрАнд с тех пор мог добавить какие-то новые глаголы (но в любом случае их будет немного).

Неактивен

0    0    #3
06.04.2008 23:16

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

Re: не качается авторкит

noname написал:

чего я хотел сказать:

Кащей понимает команду 'встать' НО не понимает 'встать с кровати' - это особенность интерпретатора или игры?

так же он понимает команду 'идти на восток' НО не понимает 'идти в коридор' - это в РТАДСЕ вроде бы можно сделать... попробую разобраться- как.

"Встать с кровати" - тоже можно сделать. Для этого, например, доопределяем глагол "встать" следующим образом:

Код:

modify standVerb
   verb = 'встать' 'стоять' 'встань' 'встать с' 'встань с'
   doAction='Stand'

А для кровати

Код:

Bed: fixedItem
sdesc="кровать"
verDoStand(actor)={if(actor.location<>self)
                                 {// Если актер не на кровати, ругаемся
                                  "<<ZAG(actor, &sdesc)>> не на кровати!";
                                 }
                             }
doStand(actor)={"Хорошо, <<actor.sdesc>> встал<<yao(actor)>> с кровати.";
                        }

Достоинство такого определения: так сделать проще. Недостаток (хотя кому какwink: игра начнет понимать конструкции вида "встань кровать", "встать кроватью" и т. д.

Альтернативный вариант - определить глагол 'встать с' как отдельный глагольный объект (например, с использованием compoundWord, чтобы "слепить" глагол с предлогом).

noname написал:

ух, столько всего читаю, делаю, а тут ещё этот РТАДС. чтоб на нём чё-то качественное сделать нужно долго помурыжиться... так например Дримор на КРИЛ-2006 тогда ещё скачивал- имел глюки с общением с шаманом, недочёты Кащея я перечислил (смысловые недочёты тоже есть- но тут уж движок ни при чём). отсюда вывод: русских полностью отдебаженных и вылизанных до блеска игр на РТАДС я пока не видел. что настораживает.

Ну, я и вообще очень мало видел (если видел вообщеwink полностью отдебаженных и вылизанных до блеска русских IF-игр, даже менюшных. Парсерная игра по определению намного более трудоемкая в создании, чем меню.
Из близких к совершенству в плане вылизанности - "Ожидание утра" и тот же "Кащей".

noname написал:

в моём пробном квесте меня интересует больше всего поведение НеПиСей.
а пугает больше всего разнообразие форм общения игрока с персонажами в РТАДС:
>шаман, возьми посох
>спросить продавца о видеокарте
>говорить с продавцом (и далее- строчки в вода в "Love")

Общение с неписями - кошмар любого автора-парсерщикаwink. Даже англоязычного. На самом деле, создание мало-мальски реалистичных персонажей - пожалуй, объективно самый сложный аспект квестописания. Именно поэтому в последнее время нарастает тенденция (хотя лично я к ней отношусь отрицательно) подменять "полноценное" общение с персонажем командой "talk to" - "поговорить с" либо менюшными диалогами.

noname написал:

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

С этим не поспоришьwink.

Отредактировано uux (06.04.2008 23:17)

Неактивен

0    0    #4
07.04.2008 06:42

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

Re: не качается авторкит

noname написал:

Достоинство такого определения: так сделать проще. Недостаток (хотя кому какwink: игра начнет понимать конструкции вида "встань кровать", "встать кроватью" и т. д.

Альтернативный вариант - определить глагол 'встать с' как отдельный глагольный объект (например, с использованием compoundWord, чтобы "слепить" глагол с предлогом).

а во втором варианте можно "защититься" от "встать с кроватью"?

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

noname написал:

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

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

Идея действительно хорошая.

Неактивен

0    0    #5
07.04.2008 22:30

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

Re: не качается авторкит

Flint написал:

noname написал:

привязать провод верёвкой к столбу
и
привязать проводом верёвку к столбу

различимы с точки зрения интерпретатора или нет?

С точки зрения интерпретатора TADS эти предложения некорректны. В команде может быть только прямой и косвенный объект, то есть можно писать "привязать веревку к столбу" или "привязать провод веревкой", но не так, как у тебя.

Если переформулировать вопрос и сравнивать такие фразы:
привязать провод верёвкой
и
привязать проводом верёвку

то они будут различны в данном случае. Но, к сожалению, если падежные формы будут совпадать, то парсер может ошибиться.
Например, в моей игре "Любовь":

>дать водки бомжу
Я не знаю как дать что-либо бутылке водки.

То есть этот механизм не совсем надежен.

Можно еще, например, определить "веревкой" как предлог и создать глагол "привязать веревкой"... Но, пока не накопите опыта программирования в TADS, извращаться таким образом не советуюwink.

Неактивен

0    0    #6
07.04.2008 23:07

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

Re: не качается авторкит

Flint написал:

uux написал:

Можно еще, например, определить "веревкой" как предлог и создать глагол "привязать веревкой"... Но, пока не накопите опыта программирования в TADS, извращаться таким образом не советуюwink.

Тогда еще придется определять "привязать провод" (чтобы работало "привязать провод веревкой к столбу") и "привязать к столбу", короче жопа :-)

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

Неактивен

0    0    #7
07.04.2008 23:08

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

Re: не качается авторкит

noname написал:

и если эти 1-ю фразу интерпретёр считает аналогичной 2-й, то дело- дрянь...

Вообще не должен, но глюки иногда бывают...

Неактивен

0    0    #8
09.04.2008 05:24

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

Re: не качается авторкит

noname написал:

мог бы отхлебнуть водки и сказать что-нить по этому поводу, типа: "гарна горiлка"

вообще это такая очень тонкая претензия: к образу ГГ

хотя я толком не знаю, может автор его таким неженкой и видел,

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

Почему неженкой? Особой чувствительности я что-то в ГГ не заметил.

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

noname написал:

и ещё:
лишние убийства/загрузки теоретически могли бы попортить атмосферу игры,
но это претензия не к твоему квесту а вообще-
ИМХО: даже моментальное убийство- плохо, поскольку процесс "отката" не способствует вживанию в игровой мир

Теоретически да, но на практике соглашусь с Flint'ом - в эру многократного undo проблема кажется несколько надуманной.

Неактивен

0    0    #9
12.04.2008 07:36

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

Re: не качается авторкит

noname написал:

нет повести печальнее на свете...

в данном случае я просто создал пару локаций. без всякого сюжета и плана. меня устроил бы любой вариант работы команд, НО они УЖЕ работают некорректно.

p.s.
и эта ошибка присутствует и в Кащее, и, я подозреваю, во всех русских РТАДС-квестах, если автор не переписал команду "бежать" самостоятельно

Ну, и в чем проблема переопределить самому?wink

noname написал:

да, я обеими руками ЗА то, чтоб парсер принимал 'е' и 'ё' за одинаковые буквы во вводе пользователя, но неужели это даётся такой ценой? я хочу, чтоб яблоко было 'зелёное', его кушал 'ёж', и в результате у него возникнут определённые ощущения в 'нёбе', которое он может потрогать языком и попробовать вылечить и т п
p.s.
а ещё в детском журнале Трамвай читал необычные приключения буквы Ё. что-то в духе Кэролловской Алисы.

noname, простите, конечно, но Вы с удовольствием распространяетесь о глюках RTADS, но не хотите разбираться с глюками в собственной голове. "Поддержка" буквы Ё включается в RTADS одним движением руки, и Вам уже описывали, как. Если это для Вас так важно, что Вам мешает это сделать самостоятельно?

noname написал:

было бы удобно задавать русские названия локациям и объектам.
вот объект сейф. пусть и называется сейф, нет мне приходится выдумывать английское название, и помнить, что это слово означает сейф. в случае наличие в игре различных но похожих объектов это не очень удобно. да и вообще в больших проектах это всегда крайне не удобно- помнить, как ты назвал зеркало mirror или looking_glass, как именно ты описал объект box - ящик или коробка и т д

А что мешает обзывать их транслитом? С большими же проектами априори крайне неудобно работать по сравнению с маленькими проектамиwink. И возможность обзывть объекты русскими буквами - отнюдь не панацея. Варианты борьбы: IDE - пока утопия; самому вести базу данных объектов (хотя бы на бумаге).

noname написал:

и ещё:
где найти список всех классов объектов

конкретно мне нужен lockablecontainer

http://www.rtads.org/man/TADSSTD.HTM - эту ссылку я Вам тоже уже давал, кстати, когда речь шла о списке всех понимаемых системой глаголов.

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

Неактивен

0    0    #10
12.04.2008 07:52

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

Re: не качается авторкит

noname написал:

вопрос:
- в мануале приводится пример случайного блуждания персонажа с проверкой выходов.
- МОЖНО ли с помощью какой-либо функции проверить доступность какого-либо действия, получить список доступных действий для персонажа не-игрока.
НАПРИМЕР:
массив VV содержит список глаголов для данного персонажа
массив NN содержит список объектов, присутствующих в игре + пустой объект
хочу в цикле перебрать каждую пару VV[x],NN[y] и если VV[x]+NN[y] не только клеится в корректную команду, но ещё и выполнимо при текущих обстоятельствах - заношу это действие в список LL[z]. затем случайным образом с равной вероятностью выбираю одно из действий на выполнение.

суть ВОПРОСа в том: есть ли какая-либо функция для проверки возможности действия VV[x]+NN[y] ?
(если нет, то и не надо - в таком виде она мне нужна только на промежуточном этапе подготовки квеста- потом всё равно прийдётся писать свою функцию выбора действия )

Специальной функции нет. Можно поступить так: отключить вывод на экран, затем вызвать верификатор и проверить, выводит ли он что-либо на экран:

Код:

old_stat:=outhide(true);  // Отключаем вывод на экран
[i]Вызов верификатора[/i]
new_stat:=outhide(old_stat);  // Включаем вывод на экран обратно
if(not new_stat)
...   // Вывода на экран от верификатора не было -> действие допустимо
else
...  // Вывод на экран был -> действие недопустимо

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

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

Неактивен

0    0    #11
12.04.2008 08:35

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

Re: не качается авторкит

noname написал:

noname, простите, конечно, но Вы с удовольствием распространяетесь о глюках RTADS, но не хотите разбираться с глюками в собственной голове. "Поддержка" буквы Ё включается в RTADS одним движением руки, и Вам уже описывали, как. Если это для Вас так важно, что Вам мешает это сделать самостоятельно?

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

На самом деле, в описанном тобой выше примере даже урезание отменять не потребуется: достаточно определить для яблока лексическое свойство "зеленое" (а не "зелёное"), и что бы игрок не ввел - с Ё или без Ё - игра его поймет.

Мне сразу в голову это не пришло - видно, с глюками в мозгу и у меня все в порядкеwink.

Отредактировано uux (12.04.2008 08:36)

Неактивен

0    0    #12
12.04.2008 13:26

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

Re: не качается авторкит

noname написал:

смысл поста ясен
упомянутый пример сейчас пишу самостоятельно
благо у меня всего 6-ть объектов и 8-мь команд (из них долько 2-а требуют более одного аргумента)

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

Информация вот здесь:

http://www.rtads.org/man/TADSADPT.HTM, далее текстовым поиском на странице по шаблону "Получение информации о текущей команде".

С информацией о падежах и т. п. хуже - системной функции для этого в TADS нет. Что навскидку приходит в голову - из функции preparse сохранить в промежуточной переменной строку в том виде, в каком ее ввел игрок, а потом разбираться с падежами. Но это муторно.

Неактивен

0    0    #13
12.04.2008 13:30

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

Re: не качается авторкит

noname написал:

но как быть с ксиззи???
может я его куда-нить не туда вставляю,
или где-то чего-то ещё нужно изменить?

На первый взгляд, все должно компилироваться нормально. Единственное, что приходит на ум - файл, где определен ксиззи, не включен в число компилируемых, либо каким-то образом этот фрагмент оказался между комментариями. Если совсем затык - шли на мыло uux собака mail точка ru, буду разбираться.

Неактивен

0    0    #14
12.04.2008 13:35

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

Re: не качается авторкит

noname написал:

uux написал:

Специальной функции нет.

а вот и есть! надеюсь, она мне не снится. вот она:

Молодец! Уел меня.smile

noname написал:

checkreach
checkreach: function(loc, actor, v, obj): проверяет, может ли актер (персонаж) actor манипулировать объектом obj при помощи глагола v, находясь в комнате loc. Функция используется на этапе валидации (проверки корректности) команды. Эта функция разрешает дальнейшую обработку команды, если obj - это объект специального типа (numObj или strObj), если этот объект находится в инвентаре актера actor, а также в том случае, если он внесен в список reachable комнаты loc. Во всех прочих случаях возвращается выводится сообщение об ошибке, что на этапе валидации автоматически означает отказ от дальнейшей обработки.

впрочем, неуверен, что именно она проверяет: взять кровать по её мнению тоже можно?...

В общем случае она проверяет, что актер и объект находятся в одной и той же комнате и что при этом актер видит объект (возможны более сложные специальные случаи - например, для глагола "спросить о" невыполнение данных условий не будут мешать заимодействию с объектом, но мы их пока касаться не будем). Грубо говоря, она проверяет, надо ли выдавать ошибку типа "Я не вижу здесь этого".  Таким образом, если игрок и кровать находятся в одной комнате, функция не будет возражать против "взять кровать".

Неактивен

0    0    #15
12.04.2008 16:33

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

Re: не качается авторкит

noname написал:

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

Скачал. Скомпилировал. Все работает, "ксиззи" распознается.

Вопрос: может, ты добавил код для xyzzy и, не закрывая и не сохраняя файла в редакторе, сразу стал компилировать и запускать игру?

Попробуй сейчас еще раз.

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

Отредактировано uux (12.04.2008 16:44)

Неактивен

0    0    #16
12.04.2008 17:25

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

Re: не качается авторкит

noname написал:

всё перепроверял тысячу раз.
библиотеки смотрел насчёт переопределения глагола.
НО
после твоего поста- неожиданно разобрался!

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

в менюхе Build- Settings- Source показывал на пред папку.
как получилось: пишу квест в папке ...\001, затем очередную версию копирую в 002 и т п
итого на тот момент у меня было 4-ре версии

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

огромное тебе СПАСИБИЩЕ, uux Коптельцев Валентин.
(Ведь это ты?)

Да, это яwink. Пожалуйста. Если еще будут вопросы - обращайся.

Кстати, наткнулся чуть выше на следующую жалобу:

noname написал:

а регистр букв- вообще чудная вещь:

-keyedLockable - одна большая буква
-islocked - ни одной

по логике Си было бы KeyedLockable и IsLocked
так или иначе к регистрам привыкнуть не просто, как и к кавычкам, но я таки сделаю что-нибудь серьёзное.

При желании распознавание регистра символов в компиляторе можно отключить вообще. В Workbench'е идем в Build->Settings, тыкаемся во вкладку Advanced и включаем флажок Ignore case (in object names, functions, etc.). Все, вопрос с регистром решен раз и навсегда!

Неактивен

Powered by PunBB
© copyright 2001–2020 iFiction.Ru