Нашел баг в библиотеках, самый настоящий. Не знаю, известен ли он или нет, но я проверил навскидку несколько игр («Кащей», «Оружие Ли Гуана», «Дримор») и во всех них он присутствует. Вот его суть:
Если использовать команду с глаголом, прямым и непрямым объектом («ударить гоблина киркой», «отпереть дверь письмом», «копать землю совком»), то если допустить ошибку в прямом или непрямом объекте, а затем следующей командой её исправить, то выводится сообщение об ошибке «Я не понимаю это предложение». Если после этого команду в точности повторить, то ошибки уже не будет. Вот пример (из Кащея):
>копать землю соком
К сожалению, слово "соком" мне неизвестно.
>копать землю совком
Я не понимаю это предложение.
>копать землю совком
Ты попробовал порыть там и сям во дворе... Но это ни к чему не привело.
И так везде. Судя по симптомам, баг находится в таких дебрях библиотеки advr.t, что при попытке его поймать может взорваться голова. Я, конечно, попробую копнуть, но эти функции, которые разбирают и преобразовывают русские команды… они СТРАШНЫЕ :-)
Неактивен
Я встречался с таким же точно багом в совсем другом парсере, и рискну предположить, что баг вызван тем же: при проходе "ошибочного" варианта устанавливается какая-то переменная, она обнуляется только после обработки второй команды.
Т.е. забыли в каком-то месте обнулить флажок.
Неактивен
Flint написал:
Нашел баг в библиотеках, самый настоящий.
...
И так везде. Судя по симптомам, баг находится в таких дебрях библиотеки advr.t, что при попытке его поймать может взорваться голова. Я, конечно, попробую копнуть, но эти функции, которые разбирают и преобразовывают русские команды… они СТРАШНЫЕ :-)
Знаю о нем, но руки не доходили, так как никто не жаловался Абсолютно согласен, эти функции страшные даже для меня
Я не программист, я упрямый хакер. В смысле, пишу хаки. Попробую разобраться на досуге.
Неактивен