std.prog: INSTEAD программирование

From: Wol4ik (syscall,22) 04.07.17 21:37 UTC
To: All
Subject: Работа с глобальными переменными
Прочитал всю документацию про переменные типа global, и все места, где упоминаются переменные. Возможно я недопонимаю, так как раньше работал только с процедурными языками, а не с ООП. Вопрос в следующем. Я в самом начале задаю некие глобальные переменные

global {
hot = 100; -- тепло, главный показатель ГГ
power = 100; -- бодрость, главный показатель ГГ
reason = 99; -- рассудок, способность принимать решения, вниманимательность, адекватность
}

Эти переменные используются для свёрнутого описания статуса ГГ, чтобы они появлялись на экране только при двойном клике на объект инвентаря "статус", таки образом

obj { -- описание объекта "статуc ГГ"
nam = 'статус';
dsc = 'Это {статус}, просмотр статуса возможен при двойном клике на надписи "статус"';
tak = 'Просмотр статуса возможен при двойном клике на надписи "статус"';
inv = function(s)
p (hot, '% - тепло^');
p (power, '% - бодрость, способность действовать^');
p (reason, '% - рассудок^');
end
} -- конец описания объекта "статуc ГГ"

И это работает. Однако, часто возникает необходимость, при попадании в какую-либо локацию (room), изменить значения этих переменных. По условию, или принудительно без всяких условий. Я не понял как это делается. Простая запись, типа

hot = 83; -- тепло изменилось со 100 на 83
power = 79; -- бодрость изменилась со 100 на 79
reason = 51; -- рассудок изменился с 99 на 51

Instead3 не выдает ошибки, но и не меняет значения переменных при попадании в эту комнату. Двойной клик на объект инвентаря "статус" выдает на экран первичное значение переменных. Друзья, подскажите, что я делаю не так.
[4 / 110]