Перейти к основному содержимому

14.12. Как сделать два разных предмета с одинаковыми названиями?

В: Как сделать два разных предмета с одинаковыми названиями? Например, есть два старых меча. Но у одного параметр атаки +3, а у другого +5. Нужно, чтобы в окне предметов выводились одинаковые названия "Старый меч", но когда щёлкаешь по одному, выводились его параметры, а по другому — другие параметры.

О: К сожалению, сделать два "разных" предмета с одинаковыми названиями не получится. В QSP можно получать только название выделенного предмета (с помощью функции $selobj).

Однако, мы можем прописать в названии некие отличительные данные предмета и скрыть эти данные от игрока. Для этого:

  • включаем распознавание html, прописав, например, на самой первой локации в игре команду:
    usehtml=1
  • в названиях предметов прописываем их отличительные особенности, используя несуществующие (пользовательские) html-теги:
    addobj 'Старый меч<atack power="3">'
    addobj 'Старый меч<atack power="5">'

На экране игрок увидит одинаковые названия "Старый меч", однако плеер будет работать с их полными названиями. Для примера, код локации-обработчика выделения предмета:

if $selobj='Старый меч<atack power="3">':
clr
pl "Старый меч"
pl "Сила атаки: +3"
end
if $selobj='Старый меч<atack power="5">':
clr
pl "Старый меч (с зазубринами)"
pl "Сила атаки: +5"
end
qSpider

Если вы используете пользовательские теги в qSpider, убедитесь, что они правильно интерпретируются плеером.