Итак, первая порция моих патчей. Прошу прощение за скупость описаний, банально не успеваю, потому что сегодня уезжаю на неделю в Харьков.
sayPrefixCount
было:
Ты видишь два спички.
стало:
Ты видишь две спички.
было:
>спросить стол о погоде
Ты думаешь, что стол ничего не знает об этом!
стало:
>спросить стол о погоде
Стол безмолвен.
было:
>сесть на пол
Хорошо, ты теперь сидишь на полу.
>восток
Ты никуда не пойдёшь пока не слезешь с пола.
стало:
>сесть на пол
Хорошо, ты теперь сидишь на полу.
>восток
Ты никуда не пойдёшь пока не встанешь с пола.
было:
>набрать
Что ты хочешь печатать?
>набрать воды в банку
Я не понимаю это предложение.
стало:
>набрать
Что ты хочешь печатать?
>набрать воды в банку
Вы набрали воды в банку.
[Метод ‘FillIn’]
было:
>сесть
(стул)
Хорошо, ты теперь сидишь на стуле.
стало:
>сесть
(на стул)
Хорошо, ты теперь сидишь на стуле.
Несколько мелких исправлений к глаголам: синонимы, указание умолчательных предлогов и падежей. Например, «выглянуть в» к lookThru.
Ну, и самое интересное - исправления к parseAskobjActor:
было:
>спросить Петю
Об чем Вы хотите спросить этого персонажа?
>положить спичку
Во что Вы хотите положить это?
>ударить Петю
С помощью чего Вы хотите напасть на это?
стало:
>спросить Петю
О чем ты хочешь спросить его?
>положить спичку
Во что ты хочешь положить её?
>ударить Петю
С помощью чего ты хочешь напасть на него?
То есть учитывается текущее лицо и подбирается правильное местоимение.
Что я еще хочу исправить:
сейчас:
>положить карандаш
Во что ты хочешь положить его?
>на стол
Ты не можешь положить что-либо в стол.
хочется:
>положить карандаш
Куда ты хочешь положить его?
>на стол
Готово.
>положить карандаш
Куда ты хочешь положить его?
>в стол
Ты не можешь положить что-либо в стол.
сейчас:
>набрать
Что ты хочешь печатать?
>налить
(воду)
(в банку)
Вы набрали воды в банку.
хочется:
>набрать
(воду)
(в банку)
Вы набрали воды в банку.
[Если присутствует неопределенность, не просить сразу уточнить объект, а попробовать устранить неопределенность по второстепенным предлогам тоже. Т.е. если «набрать» в смысле печатать (ioAction(onPrep) = 'TypeOn') в комнате ничего нельзя, но можно «набрать» в смысле налить (ioAction(inPrep) = 'FillIn'), то использовать «налить».]
Долго думал, каким образом эти исправления выложить, ведь они во многих местах. Поэтому выкладываю diff-файлы к advr.t (от 07.02.08 17:19) и errorru.t (от 06.02.08 02:25). Применяются они утилиткой patch.
patch advr.t advr.diff
Если юникса под рукой нет, то win-версию проги можно взять здесь http://unxutils.sourceforge.net/
КАЧАТЬ ПАТЧИ ТУТ http://ifwiki.ru/files/25PATCH.rar
Пробуйте пока, буду через неделю.
Неактивен
В TADS "патчи" лучше оформлять с помощью функций replace
и modify
. И Гранду будет проще вносить эти изменения в релиз...
И еще. IFWIKI не является хранилищем файлов. Если файл не относится к одной из статей, то он будет удален безжалостно и нафик. Если некуда выложить файл, то существует масса специализированных сервисов.
Отредактировано fireton (13.02.2008 12:21)
Неактивен
Ну, пусть полежит пока. Может, автор одумается и выложит его таки в другое место.
Андрей, когда нам ждать релиз библиотеки? Что касается меня, то я его действительно жду.
Неактивен
Вот еще пожелание. Если у комнаты не определить свойство out
, то при попытке выйти
игра выдает стандартное "Этим путем не пройти". Дело в том, что в определении класса room есть такое:
out = { return self.noexit; }
Мне кажется, что можно несколько усложнить обработку данной функции. Возможно ли сделать обработку по умолчанию таким образом: если в комнате один выход, то out
выдаст этот один выход. Если выходов определено несколько, то выдаваемая строка будет чем-то вроде "Здесь несколько выходов, уточните, куда вы хотите выйти."
Как мне кажется этого можно добиться, если вместо { return self.noexit; }
присвоить всем свойствам-направлениям nil
(чтобы можно было проверять), а выдачу "Этим путем не пройти" реализовать в процедуре, обрабатывающей выход (сделать там проверку на nil
). Тогда для out
можно сделать свою обработку.
Что думаете?
Неактивен
GrAndrey написал:
А что делать, когда единственный выход это вход?
Не понял. Выйти через него, конечно.
Неактивен
И вообще, автор должен быть внимательным и трудолюбивым. Добавить одно направление можно быстро и не задумываясь.
C твоим таглайном не согласуется.
Но вообще да. Тебе виднее... Наткнулся на то, что в "Кащее" выйти приводит к "Этим путем не пройти". С другой стороны, офигеешь определять out в каждой комнате. Везде надо что-то свое. А придумать универсальную заглушку как-то не получается...
Неактивен
Андрей, посмотри личку.
Неактивен