///////////////////////////////////////////////////////////////////// //.................................................................// //..........................ЧТО НОВОГО?............................// //.................................................................// ///////////////////////////////////////////////////////////////////// Данный файл описывает изменения внесённые в библиотеки системы RTADS. К сожалению, данный файл не был создан на ранних стадиях перевода, и потому многое из этого "исторического" процесса теперь забыто. Единственным источником скудных сведений теперь может служить раздел новости, собственные воспоминания и... архив старых версий :-) Поэтому вся информация о версиях до 20-ого релиза включительно, извлечена из этих источников и внесена задним числом. ////////////////////////////////////////////////////////////////////// //..........................Версия №22..............................// //...........................23.09.04...............................// ////////////////////////////////////////////////////////////////////// - Изменен механизм обработки фраз типа "УДАРИТЬ кулаком ПО столу". По сути дела, "по" - в данном случае не несущий смысловой нагрузки предлог. Не нужно, да и невозможно вводить его как отдельный смысловой предлог этого глагола (как, например, ioAction(withPrep)). "по" лишь меняет грамматическую структуру фразы. Теперь во время преданализа система будет преобразовывать подобные предложения. "УДАРИТЬ кулаком ПО столу" -> "УДАРИТЬ ПО кулаком столу" В результате эта фраза будет понята как "attackVerb with <кулак> <стол>". Для этого придётся ввести в глаголе свойство dispprep, содержащее список подобный предлогов. Так теперь выглядит глагол копать: digVerb: deepverb type=1 verb = 'копать' 'копай' 'рыть' 'рой' 'вырыть' 'вырой' 'выкопать' 'выкопай' 'копать в' 'копай в' 'раскопать' 'раскопай' 'разрыть' 'разрой' 'копаться в' sdesc = "копать" prepDefault = withPrep ioAction(withPrep) = 'DigWith' dispprep=['в'] ; В идеале, конечно, преобразование должно быть таким: "копаться лопатой в земле -> копать лопатой землю", но система учитывает только некоторые падежи. - добавлено свойство rpluraldesc, представляющее собой родительный падеж множественного числа. Выводиться например, в случае фразы: Ты видишь здесь 27 'камней'. - Функция комментирования через символ '>' вызывала креш системы. Исправлено. Дополнительный символ комментирования: '*' - удален ofPrep - Добавлена и используется функция Trimleft(str), удаляющая лишние пробелы в начале строки, что помагает в некоторых случаях анализа. - внес в набор библиотек файл todo.txt ////////////////////////////////////////////////////////////////////// //..........................Версия №21..............................// //...........................19.12.03...............................// ////////////////////////////////////////////////////////////////////// - TurnTo быз заменён на TurnOn, для соответствия русской грамматике. - Удалены английские лексемы большинства глаголов - Убран глагол pokeVerb - Добавлена функция ok - Добавлена функция numok (предложил Zverik) - Доработанна система преданализа, которая теперь способна перемещать предлоги к глаголам, к которым они относятся. Например: "УДАРИТЬ кулаком ПО столу" -> "УДАРИТЬ ПО столу кулаком". В результате, предложения первого вида стали опозноваться. - Введено свойство глаголов parsdef, указывающее в каком падеже выводить предпологаемое слово системе, в случае автоматического разрешения двусмысленности (parseDefault). - Введен метод gender, упрощающий определение пары пола/числа - Комнаты теперь доступны игроку для оперирования (осм комнату) - Ввод одиночной буквы "и" означает "инвентарь" - Исправлено распознование предметов с прилагательным после существительного. Типа: взять кусок пластика из прорези. ////////////////////////////////////////////////////////////////////// //..........................Версия №20..............................// //...........................24.08.03...............................// ////////////////////////////////////////////////////////////////////// Начат перевод комментариев в advr.t Введена команда "комментировать 'строка'". Работает через дополнительный символ ">" в строке и предназначен для облегчения комментирования отчётов. ////////////////////////////////////////////////////////////////////// //..........................Версия №19..............................// //...........................17.07.03...............................// ////////////////////////////////////////////////////////////////////// Исправлена ошибка в функциях перевода строки в нижний регистр и замены "ё" на "е". Состояла она в том, что введённые спецсимволы нарушали работу анализатора. Исправление также ускорило работу функций. ////////////////////////////////////////////////////////////////////// //..........................Версия №18..............................// //...........................12.07.03...............................// ////////////////////////////////////////////////////////////////////// Данные библиотеки используют пару новых функций, которые можно будет использовать с компилятором и проигрывателем версии 2.5.8. На момент описания он оффициально не появился и используется мной в тестовом режиме. Проигрыватель уже можно скачать по следующему адресу http://www.tads.org/t3dl/pksetup.exe (совмещённый для ТАДС2 и ТАДС3). Смысл самих функций (preparseExt и parseDefaultExt) заключается в том, что первая обрабатывает строки вводимые при уточнении и исправлении (на основе функции введена команда oops - "ой"), а вторая - позволяет более грамотно выводить сообщения о действиях, которые парсер додумывает за вас. Таким образом, был исправлен тот баг, что при уточнении (который <что-то> вы имеете в виду: ...?) парсер переставал равнозначно понимать заглавные и прописные буквы, а также буквы "е" и "ё". Функция glok: function(lico, sprag, type, chislo) была упрощена по синтаксису до glok: function(obj, sprag, type). В результате код advr.t стал гораздо более читаемым. Теперь функция принимает и объекты первого лица(Я,Мы). Ряд глаголов (мочь,видеть) не будут верно меняться при ед.ч. первого лица, но для множественного всё будет верно. Теперь, изменив несколько строчек, Вы можете заставить персонажа называть себя "мы". Также, исправлены действия "кинуть кому-то" "кинуть в кого-то", благодаря сообщению Павла Заикина о ошибке. ////////////////////////////////////////////////////////////////////// //..........................Версия №17..............................// //...........................15.06.03...............................// ////////////////////////////////////////////////////////////////////// Каждой функции, выставляющей неглагольные окончания, поставлена в соответствие новая, обладающая упрощённым синтаксисом. Например, вместо glsok(0, self.isHim,self.isHer,self.isThem) можно писать iao(self). Старые остались, для сохранения совместимости. Также появилась функция ZAG(obj,&properity), которая заменяет комбинацию ZA(dToS(obj,&properity)). Увидеть их можно в advr.t. Все сообщения приведены к более простому и читаемому виду. Замена "ё" перенесена в функцию dezyo. Функция loweru для перевода строки в нижний регистр, была создана в предыдущей версии. ////////////////////////////////////////////////////////////////////// //..........................Версия №16..............................// //...........................16.05.03...............................// ////////////////////////////////////////////////////////////////////// Теперь буква "ё" распознаётся как "е", а заглавные буквы как прописные. Вдохновил на решение этой проблемы Анатолий Кондратьев. Функция ZA работает теперь гораздо быстрее. foritdesc переименован в ritobjdesc. Введены свойства ditobjdesc, titobjdesc, pitobjdesc. Команда 'осм' теперь работает двояко: с объектом как 'осмотреть', без - как 'осмотреться'. Сделано за счёт введения глагола osmVerb. ////////////////////////////////////////////////////////////////////// //..........................Версия №15..............................// //...........................04.05.03...............................// ////////////////////////////////////////////////////////////////////// Стас Старков перевёл комментарии в файле stdr.t. ////////////////////////////////////////////////////////////////////// //..........................Версия №14..............................// //...........................22.04.03...............................// ////////////////////////////////////////////////////////////////////// Изменена разметка падежей. Вместо цифр теперь используются комбинации "#r","#d","#t". "#r" - обозначает родительный падеж. Прилагательное с такой пометкой, найденное после существительного, будет заменено на "of ". Это позволяет использовать словосочетания "ком слизи", "лампочка Ильича", "письмо Васе". Также можно вводить "меч из крови", "средство от блох", "опиум для народа", причём в этом случае "#r" добавлять не нужно. Введено свойство disamvdesc. О нём много в errorru.t и справке по русскоязычным функциям. Многострадальный преданализ перенесён в advr.t ////////////////////////////////////////////////////////////////////// //..........................Версия №13..............................// //...........................08.84.03...............................// ////////////////////////////////////////////////////////////////////// Понемногу вводятся лексемы глаголов в повелительном наклонении. Синонимов добавлено довольно много. Система теперь понимает слово "себя" как актёра, который должен выполнить действие. Например: Вася, посмотри на себя -> Вася, посмотри на Васю (это только внешне, на самом деле идёт ссылка на объект) ////////////////////////////////////////////////////////////////////// //..........................Версия №12а.............................// //...........................18.03.03...............................// ////////////////////////////////////////////////////////////////////// Отличается от предыдущей версии только номером, и десятком символов, исправляющих баг в несчастном механизме преданализа. ////////////////////////////////////////////////////////////////////// //..........................Версия №12..............................// //...........................17.03.03...............................// ////////////////////////////////////////////////////////////////////// Теперь злополучный механизм преданализа обрабатывает и прилагательные с меткой. Глаголам "взять","бросить","положить" теперь позволено ссылаться на множество объектов ("всё"). В глобальные переменные внесён технический флаг schanged=nil ////////////////////////////////////////////////////////////////////// //..........................Версия №11a.............................// //...........................09.03.03...............................// ////////////////////////////////////////////////////////////////////// 11-ая версия не найдена. Доработка падежного преданализа продолжилась. Были внесены изменения, для соответствия версии библиотеки adv.t 2.5.7. ////////////////////////////////////////////////////////////////////// //..........................Версия №10..............................// //...........................15.02.03...............................// ////////////////////////////////////////////////////////////////////// Небольшие изменения, улучшающие вывод сообщений синтаксического анализатора. ////////////////////////////////////////////////////////////////////// //..........................Версия №09a.............................// //...........................09.02.03...............................// ////////////////////////////////////////////////////////////////////// Механизм обработки падежей доработан. Теперь система понимает творительный и дательный падеж, а type указывает на прием глаголом этих глаголов по отдельности или вместе(1,2,3). Поддержка слов "им", "ей" и т.п. Падежи с пометкой теперь записываются вместе с другими noun, а отдельные объекты не требуются. gltvor переименован в glpad. ////////////////////////////////////////////////////////////////////// //..........................Версия №09..............................// //...........................04.02.03...............................// ////////////////////////////////////////////////////////////////////// Присвил глаголам свойство type, задающее поддержку творительного падежа. Механизм работает, но требует создания длинного и неудобного кода. Для его работы создано глобальное свойство gltvor. ////////////////////////////////////////////////////////////////////// //..........................Версия №08..............................// //...........................19.01.03...............................// ////////////////////////////////////////////////////////////////////// itobjdesc теперь выдаёт "их", "его", "её". Введён foritdesc - "им", "ей","ему". Вырезал сказку про медведей из advr.t и отправил в игру, где ей и место. Система должна работать с творительным падежом, помеченным единицей. Для этого, однако, необходимо создавать отдельный объект. ////////////////////////////////////////////////////////////////////// //..........................Версия №07..............................// //...........................12.12.03...............................// ////////////////////////////////////////////////////////////////////// Изменения минимальные - пару опечаток и настройка глагола "слушать". ////////////////////////////////////////////////////////////////////// //..........................Версия №06(а)...........................// //...........................24.11.03...............................// ////////////////////////////////////////////////////////////////////// К сожалению, шестая версия была утеряна. Сохранилась лишь её доработанная версия. Введена функция dToS, написанная Майком Робертсом по моей просьбе. На её основе создан русский эквивалент функций caps() или \^. Появился неработающий зачаток обработки падежей. Добавлен глагол talkVerb. ////////////////////////////////////////////////////////////////////// //..........................Версия №05..............................// //...........................04.10.03...............................// ////////////////////////////////////////////////////////////////////// Восстановил испорченный механизм %You%. Ведена функция ZA для перевода в верхний регистр одной буквы обычной строки в единичных кавычках. Переведен модуль extendr.t. erorru.t переименована в errorru.t. ////////////////////////////////////////////////////////////////////// //..........................Версия №04..............................// //...........................30.09.03...............................// ////////////////////////////////////////////////////////////////////// Убрал adesc, thedesc, doesdesc, isdesc, isntdesc. Ввёл лица объектов. Создал свойство глаголов vopr для показа верного вопроса о недостающем прямом объекте. Вопрос о необходимом предмете теперь учитывает предлог глагола и лицо актёра. ////////////////////////////////////////////////////////////////////// //..........................Версия №03..............................// //...........................22.09.03...............................// ////////////////////////////////////////////////////////////////////// Убрал game.txt. Введено свойство-метод itisdesc, которое должно выводить слова "это","эти" в заисимости от числа объекта. Кое-что исправленно, добавлено немножко синонимов(как и во всех остальных случаях; не буду далее упоминать об этом факте). ////////////////////////////////////////////////////////////////////// //..........................Версия №02..............................// //...........................20.09.03...............................// ////////////////////////////////////////////////////////////////////// Изменения втрой версии касаются, в основном исправления ошибок при выводе окончаний внутри стандартных сообщений. В состав библиотек включён файл erorru.t. В этом файле встроенные в интерпретатор собщения заменяются на русские эквиваленты, а также переведены уточнающие вопросы и форма вывода догадок парсера о нужном объекте для действия. ////////////////////////////////////////////////////////////////////// //..........................Версия №01..............................// //...........................13.09.03...............................// ////////////////////////////////////////////////////////////////////// Появление первой версии перевода, включающей файлы advr.t, game.txt и stdr.t. В системе уже имются функции kpstok, glok, glsok, и сообщения меняются в соответствии с полом и лицом объекта. Но происходит это не всегда правильным образом, а в тексте довольно много опечаток.