Очень хочу посоветоваться с уважаемым сообществом в целом и с Грандом в частности вот по какому вопросу. Мне сильно не хватает в RTADS возможности задавать части предметов.
Например, кружка. У кружки есть ручка плюс рисунок на боку. Хочется, чтобы их можно было исследовать отдельно. При этом они, понятное дело, должны перемещаться вместе с кружкой. Также было бы неплохо имет возможность создавать отделяющиеся части (например, снять наконечник с копья). Опять же, хочется иметь возможность создать набор частей тела, перемещающихся с актером ("дернуть бомжа за нос").
Для фиксированных предметов такой проблемы, практически, нет. Никто не мешает насоздавать кучу предметов прямо в комнате. Но с переносимыми объектами - беда.
Я крутил adv.t так и эдак, похоже малой кровью не обойтись. Объекты-компоненты должны находиться процедурами поиска доступных и видимых объектов, с ними должны быть запрещены некоторые действия ("взять ручку кружки" отдельно от кружки, например).
Также, непонятно с уточнениями. Есть ружье и есть револьвер. У каждого из них есть курок. Можно, конечно, ввести описание вида "курок ружья" и "курок револьвера", но раз уж мы их прикрепляем и так, то лишние определения вроде бы можно упразднить...
Кто что думает? Возможно ли такое сделать без особых изысков?
Неактивен
GrAndrey написал:
А части как фиксированные предметы с location равным целому объекту?
А они не будут показываться как содержимое контейнеров, скажем? Плюс проблемы с отделением и уточнениями - остаются. А еще я думал, что хорошо бы сделать так, чтобы у объектов-частей было бы некое описание, которое выводилось бы при осмотре объекта-целого. Скажем, compdesc = "Курок ружья взведен. "
Было бы удобно.
Или все это от лукавого?
Неактивен
Gremour написал:
Порождай детали от fixeditem и присваивай им в качестве location главный предмет. Они будет переносится с ним вместе и не будут отображаться в списках.
Если компоненты нужно отделять, сделать их как просто item, но придется подмодифицировать функции типа listcontcont, чтобы не печатали лишнего. Или подыгрывать флаг isListed для деталей, обнуляя его когда деталь прикреплена к предмету. Прикрепление/открепление, естественно, делается на обработчиках соответствующих глаголов.
Спасибо, буду думать. Некоторых плюшек не получится сделать, но в целом... Надо класс специальный написать что ли...
Неактивен
Советую программисткие замашки ограничивать. Получается программирование ради программирования, наворот системы для того, чтобы использовать один частный её случай. А игра в итоге страдает.
Да понятное дело. Однако, трудно отказаться от мышления, сложившегося в течении многих лет.
Все от узости мышления...
Неактивен
А вот как сделать класс предметов с предопределенными частями? Скажем, у меня в нескольких комнатах есть окна, а в них, естественно, оконные стекла. Можно ли не определять "оконное стекло" в каждой комнате, а сделать класс "окно", в котором есть и стекла, и форточки (к примеру). Или таки наш друг copy-paste?
Неактивен
Сделать можно. Есть оператор new для динамического порождения объекта.
О! Вот оно. Спасибо.
Злоупотреблять не собираюсь - действительно надо...
Неактивен