# Re: Работа с глобальными переменными
std.prog
Wol4ik(syscall,22) — Wol4ik
2017-07-05 05:34:59
>>Instead3 не выдает ошибки, но и не меняет значения переменных при попадании в эту комнату. Двойной клик на объект инвентаря "статус" выдает на экран первичное значение переменных.>>
Бился пол ночи, смотрел коды игр из репозитория. Решил проблему созданием фиктивного описания сцены
dsc = function(s)
hot=72;
power=89;
reason=51;
end;
# Работа с глобальными переменными
std.prog
Wol4ik(syscall,22) — All
2017-07-04 22:37:17
Прочитал всю документацию про переменные типа 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 не выдает ошибки, но и не меняет значения переменных при попадании в эту комнату. Двойной клик на объект инвентаря "статус" выдает на экран первичное значение переменных. Друзья, подскажите, что я делаю не так.