Forum.iFiction.Ru

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

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

Вы не зашли.

   #1
17.01.2008 20:45

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

---

Опять баг в RTADS?!

Нашел баг в библиотеках, самый настоящий. Не знаю, известен ли он или нет, но я проверил навскидку несколько игр («Кащей», «Оружие Ли Гуана», «Дримор») и во всех них он присутствует. Вот его суть:

Если использовать команду с глаголом, прямым и непрямым объектом («ударить гоблина киркой», «отпереть дверь письмом», «копать землю совком»), то если допустить ошибку в прямом или непрямом объекте, а затем следующей командой её исправить, то выводится сообщение об ошибке «Я не понимаю это предложение». Если после этого команду в точности повторить, то ошибки уже не будет. Вот пример (из Кащея):

>копать землю соком
К сожалению, слово "соком" мне неизвестно.

>копать землю совком
Я не понимаю это предложение.

>копать землю совком
Ты попробовал порыть там и сям во дворе... Но это ни к чему не привело.


И так везде. Судя по симптомам, баг находится в таких дебрях библиотеки advr.t, что при попытке его поймать может взорваться голова. Я, конечно, попробую копнуть, но эти функции, которые разбирают и преобразовывают русские команды… они СТРАШНЫЕ :-)

Неактивен

   #2
17.01.2008 21:36

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

Тон

Re: Опять баг в RTADS?!

Подтверждаю, баг присутствует.
Проверял в двух играх, "Кащее" и "Оружии".

О как.

Неактивен

   #3
17.01.2008 23:04

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2056

---

Re: Опять баг в RTADS?!

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

Неактивен

   #4
18.01.2008 05:39

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

меньше слов

Re: Опять баг в RTADS?!

Flint написал:

Нашел баг в библиотеках, самый настоящий.
...
И так везде. Судя по симптомам, баг находится в таких дебрях библиотеки advr.t, что при попытке его поймать может взорваться голова. Я, конечно, попробую копнуть, но эти функции, которые разбирают и преобразовывают русские команды… они СТРАШНЫЕ :-)

Знаю о нем, но руки не доходили, так как никто не жаловался smile Абсолютно согласен, эти функции страшные даже для меня smile   Я не программист, я упрямый хакер. В смысле, пишу хаки. Попробую разобраться на досуге.

Неактивен

   #5
18.01.2008 22:46

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

меньше слов

Re: Опять баг в RTADS?!

Разобрался.
Необходимо в функции preparseExt и preparse (для совместимости) добавить в начале кода следующую строчку:
global.ready := nil;

Неактивен

Powered by PunBB
© copyright 2001–2018 iFiction.Ru