Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме QSP.su

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

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

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

О:

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

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

  • включаем распознавание html, прописав, например, на самой первой локации в игре команду:

    usehtml=1
  • в названиях предметов прописываем их отличительные особенности, используя несуществующие html-теги:

    addobj "Старый меч<atack:+3>"
    addobj "Старый меч<atack:+5>"

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

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