Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
13.02.2008 11:47

Flint
Участник
Зарегистрирован: 06.09.2007
Сообщений: 148

---

Патчи к 25beta

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

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

Пробуйте пока, буду через неделю.

Неактивен

0    0    #2
13.02.2008 12:15

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Re: Патчи к 25beta

В TADS "патчи" лучше оформлять с помощью функций replace и modify. И Гранду будет проще вносить эти изменения в релиз...

И еще. IFWIKI не является хранилищем файлов. Если файл не относится к одной из статей, то он будет удален безжалостно и нафик. Если некуда выложить файл, то существует масса специализированных сервисов.

Отредактировано fireton (13.02.2008 12:21)

Неактивен

0    0    #3
13.02.2008 13:32

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Патчи к 25beta

fireton, скачал, сноси.

Неактивен

0    0    #4
13.02.2008 13:39

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Re: Патчи к 25beta

Ну, пусть полежит пока. smile Может, автор одумается и выложит его таки в другое место. wink

Андрей, когда нам ждать релиз библиотеки? Что касается меня, то я его действительно жду.

Неактивен

0    0    #5
13.02.2008 14:52

Gremour
Участник (+1)
Откуда: Беларусь
Зарегистрирован: 09.11.2004
Сообщений: 234

Re: Патчи к 25beta

Локализовал ошибку с атакой. Код:

Код:

#include <advr.t>
#include <stdr.t>
#include <errorru.t>

startroom: room
    sdesc = "Комната"
    ldesc = "Просто комната"
;

stick: item
    location = startroom
    sdesc = "палка"
    rdesc = "палки"
    ddesc = "палке"
    vdesc = "палку"
    tdesc = "палкой"
    pdesc = "палке"
    noun = 'палка' 'палки' 'палке' 'палку' 'палкой' 'палкою' 'палке#d' 'палкой#t' 'палкою#t'
    ldesc = "Палка"
    isHer = true
;

mutant: item
    location = startroom
    sdesc = "мутант"
    rdesc = "мутанта"
    ddesc = "мутанту"
    vdesc = "мутанта"
    tdesc = "мутантом"
    pdesc = "мутанте"
    noun = 'мутант' 'мутанта' 'мутанту' 'мутантом' 'мутанте' 'мутанту#d' 'мутантом#t'
    ldesc = "Мутант"
    isHim = true
;

slime: item
    location = startroom 
    sdesc = "слизь мутанта"
    rdesc = "слизи мутанта"
    ddesc = "слизи мутанта"
    vdesc = "слизь мутанта"
    tdesc = "слизью мутанта"
    pdesc = "слизи мутанта"
    adjective = 'мутанта' 'мутанта#r'
    noun = 'слизь' 'слизи' 'слизью' 'слизи#d' 'слизью#t'
    ldesc = "Слизь мутанта"
    isHer = true
;

>ударить мутанта палкой
Я не вижу здесь объект "мутанта палкой"


Причина: свойство adjective объекта slime. Если его закомментировать, команда работает как надо.

Это лечится вообще? Слизь мутанта жизненно важна, и ограничивать лексемы только словом "слизь" очень нехорошо.

P.S. К тому же, местонахождение слизи не влияет на парсинг фразы. Достаточно просто декларировать объект с такой лексемой.

Отредактировано Gremour (13.02.2008 15:09)

Неактивен

0    0    #6
13.02.2008 16:22

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Re: Патчи к 25beta

Вот еще пожелание. Если у комнаты не определить свойство out, то при попытке выйти игра выдает стандартное "Этим путем не пройти". Дело в том, что в определении класса room есть такое:

Код:

out   = { return self.noexit; }

Мне кажется, что можно несколько усложнить обработку данной функции. Возможно ли сделать обработку по умолчанию таким образом: если в комнате один выход, то out выдаст этот один выход. Если выходов определено несколько, то выдаваемая строка будет чем-то вроде "Здесь несколько выходов, уточните, куда вы хотите выйти."

Как мне кажется этого можно добиться, если вместо { return self.noexit; } присвоить всем свойствам-направлениям nil (чтобы можно было проверять), а выдачу "Этим путем не пройти" реализовать в процедуре, обрабатывающей выход (сделать там проверку на nil). Тогда для out можно сделать свою обработку.

Что думаете?

Неактивен

0    0    #7
13.02.2008 18:11

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Патчи к 25beta

А что делать, когда единственный выход это вход?

Неактивен

0    0    #8
13.02.2008 18:28

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Re: Патчи к 25beta

GrAndrey написал:

А что делать, когда единственный выход это вход?

Не понял. Выйти через него, конечно.

Неактивен

0    0    #9
13.02.2008 19:18

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Патчи к 25beta

Код:

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

И вообще, автор должен быть внимательным и трудолюбивым. Добавить одно направление можно быстро и не задумываясь.

Неактивен

0    0    #10
13.02.2008 19:28

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Re: Патчи к 25beta

И вообще, автор должен быть внимательным и трудолюбивым. Добавить одно направление можно быстро и не задумываясь.

C твоим таглайном не согласуется. smile

Но вообще да. Тебе виднее... Наткнулся на то, что в "Кащее" выйти приводит к "Этим путем не пройти". С другой стороны, офигеешь определять out в каждой комнате. Везде надо что-то свое. А придумать универсальную заглушку как-то не получается...

Неактивен

0    0    #11
13.02.2008 19:44

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Патчи к 25beta

Gremour написал:

>ударить мутанта палкой
Я не вижу здесь объект "мутанта палкой"


Причина: свойство adjective объекта slime. Если его закомментировать, команда работает как надо.

Да, я в курсе. В моем случае
>взять с трупа кирку
Я не вижу здесь объект "трупа кирку".


Проблема в том, что "трупа" - прилагательное и получается неподходящее сочетание прилагательного и существительного. Это можно проверять. Либо вообще запретить использовать прилагательное с флагом "#r" перед существительным. Тем более не своим.

Неактивен

0    0    #12
13.02.2008 20:09

Gremour
Участник (+1)
Откуда: Беларусь
Зарегистрирован: 09.11.2004
Сообщений: 234

Re: Патчи к 25beta

Это ошибка в алгоритме парсинга или несостыковка твого метода обхода падежей? Почему парсер не выбирает существительное в первую очередь (или во вторую)? Зачем хватается за прилагательное как единственный вариант? Может, есть негласное ограничение -- совпадающих с существительными в игре прилагательных не должно быть?

Удаление прилагательного с флагом "#r" из "слизи мутанта" не помогает.

Ошибка неприятная, т. к. в игре большого размера с задействованием актёров-гномов, например, есть много вещей тех же гномов, к которым игрок захочет обратиться (вполне справедливо) использую полную лексему. Это какой-то КОШМАР!

Отредактировано Gremour (13.02.2008 20:14)

Неактивен

0    0    #13
13.02.2008 23:39

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Патчи к 25beta

http://rtads.org/libr25beta.rar - обновил.
Теперь не понимает только "ударить палкой слизь мутанта".
"ударить мутанта палкой" и "ударить палкой мутанта" - без проблем

Неактивен

0    0    #14
13.02.2008 23:56

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Re: Патчи к 25beta

Андрей, посмотри личку.

Неактивен

0    0    #15
14.02.2008 13:06

Gremour
Участник (+1)
Откуда: Беларусь
Зарегистрирован: 09.11.2004
Сообщений: 234

Re: Патчи к 25beta

Спасибо.

Неактивен

0    0    #16
18.02.2008 16:25

luciofulci
Участник
Зарегистрирован: 20.11.2007
Сообщений: 7

Re: Патчи к 25beta

Большое спасибо smile

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru