ТОМ2 - платформа для парсерных игр

Объявление

Открыт сайт tom2-game.ru.


Последнюю версию платформы можно скачать здесь.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ТОМ2 - платформа для парсерных игр » Поддержка, FAQ, приёмы разработки » main.tml - свойство предмет_по_месту


main.tml - свойство предмет_по_месту

Сообщений 1 страница 7 из 7

1

Alexandr написал(а):

Но здесь есть одна тонкость. Если предмет можно перемещать, то могут возникнуть казусы. Например, если рудокоп вынесет лампу из склада на лужайку и поставит её на землю, то описание:
Тихая лужайка, заросшая травой по пояс. На полу стоит лампа.
может сбить с толку или рассмешить игрока.
Поэтому, если предмет не перемещаем, то смело меняйте свойство предмет_по_месту на любое своё, а если предмет можно переместить, то тоже меняйте свойство, но будьте предельно аккуратны.

В таких случаях нужно переопределять свойство для каждой локации, или классов локаций:

Код:
unique Лампа
{ ...
  this.предмет_по_месту[Склад] = "на полу стоит лампа"
  this.предмет_по_месту[Лужайка] = "в траве видна лампа"
  ...
}

2

ASBer написал(а):

В таких случаях нужно переопределять свойство для каждой локации, или классов локаций:

Не работает.

Код:
include "std.lib\Main.tml"

локация космос
{ cls = место
  title = "космос"
  this.описание = "пробный космос - идеальная чистота и пустота. Даже притяжения нет."
  
  уникальное вилка
  { cls = предмет
    title = "вилка"
    this.предмет_по_месту = "Тут находится {this}"
    this.предмет_по_месту[космос] = "в вакууме летает {this}"
  }
  
  this + ГГ
}

Неужели придётся наворачивать через условия? :'(

3

Alexandr написал(а):

Не работает.

Мдя... осмотрел код, действительно нету...

Добавлю в версию 0.9.4.9

4

Перенёс обсуждение

5

ASBer написал(а):

Мдя... осмотрел код, действительно нету...
Добавлю в версию 0.9.4.9

Исправлено, работает!  :mybb:

6

Надо заметить, что вариант

Код:
this.предмет_по_месту = "Тут находится {this}"
this.предмет_по_месту[космос] = "в вакууме летает {this}"

будет работать.

В то время как вариант

Код:
this.предмет_по_месту[космос] = "в вакууме летает {this}"
this.предмет_по_месту = "Тут находится {this}"

не работает!

Это неочевидно, но дело в том что последнее присвоение без скобок затирает все ранее присвоенные значения свойства.

7

ASBer написал(а):

Это неочевидно, но дело в том что последнее присвоение без скобок затирает все ранее присвоенные значения свойства.

Видел описание этого в справке ТОМа, помню. Поэтому и написал в таком порядке.  :)  На сколько я помню, чтобы изменить основное значение не затрагивая частных, надо написать

Код:
this.предмет_по_месту[] = "Тут находится {this}"

Вы здесь » ТОМ2 - платформа для парсерных игр » Поддержка, FAQ, приёмы разработки » main.tml - свойство предмет_по_месту