Разве 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' ;
то все прекрасно...
Неактивен
Надо написать
class vial: item
тогда все будет нормально. Тебе нужно понять разницу между классом объектов и экземпляром класса. Ты создал экземпляр класса item. А тебе надо создать класс-наследник от item.
Неактивен
Меня больше удивило, что TADS позволяет наследование от экземпляра класса... Бред полный с точки зрения ООП.
Неактивен
Ну уж не больший бред, чем отсутствие инкапсуляции. Но авторы игр все же не программисты...
Хм. Ты про то, что нельзя скрывать методы и свойства?
Неактивен