Разве noun не наследуется? Кажется, я это уже применял - и все работало.
Но вот сейчас, когда я писал код для goraph, появился тупой глюк.
Итак, код простейший:
#include <advr.t> #include <stdr.t> #include <errorru.t> startroom: room sdesc = "Спальная комната" ldesc = "Единственная комната моей квартиры." ; vial: item location = nil sdesc = "пузырёк" rdesc = "пузырька" ddesc = "пузырьку" vdesc = "пузырёк" tdesc = "пузырьком" pdesc = "пузырьке" noun = 'пузырек' 'пузырька' 'пузырьку' 'пузырьком' 'пузырьке' 'пузырьку#d' 'пузырьком#t' ldesc = "На свету небольшой пузырёк длиной с палец поблескивает гранями." isHim = true ; vial1: vial location = startroom ;
Получаем:
>смотреть
Спальная комната
Единственная комната моей квартиры.
Ты видишь здесь пузырёк.
>взять пузырёк
Я не вижу здесь объект "пузырек".
>взять пузырек
Я не вижу здесь объект "пузырек".
>
Это что?
Пробовал с разными версиями русских библиотек.
Самое интересное, что если в наследнике явно прописать noun:
vial1: vial location = startroom noun = 'пузырек' 'пузырька' 'пузырьку' 'пузырьком' 'пузырьке' 'пузырьку#d' 'пузырьком#t' ;
то все прекрасно...
Неактивен
Спасибо )
Я понимаю разницу между классом и экземпляром класса - просто не знал, что в TADS существуют классы как таковые. Меня ввела в заблуждение фраза, которую я где-то прочел, что в TADS нет разницы между классами и объектами. Этого человека надо найти и покарать
Неактивен
uux написал:
Чего его искать? Это я (правда, вместе с Майклом Робертсом;).
Ну, ты же только переводил в этом предложении, так что вина целиком на Робертсе ) Но он непогрешим по определению - как создатель TADS
fireton написал:
Меня больше удивило, что TADS позволяет наследование от экземпляра класса... Бред полный с точки зрения ООП.
Ну уж не больший бред, чем отсутствие инкапсуляции. Но авторы игр все же не программисты...
Неактивен