[RU] INSTEAD'овые помощности.

Автор: arbtttrn6

[#1 Убрать название сцены]
Для скрытия названия сцены используется:
instead.notitle = true;


[#2 Убрать разделители в горизонтальном инвентаре]
Вот вы написали в файле темы:
inv.mode = horizontal
Но хотите заменить или вовсе убрать вертикальные разделители в виде символа |.
Для этого следует написать:
instead.hinv_delim = ' ';
Где в кавычках желаемое. Аналогично можно изменить разделитель инвентаря:
instead.inv_delim = '\n';
Или разделитель путей, куда может пойти игрок:
instead.ways_delim = ' | ';


[#3 Убрать показ путей]
Чтобы убрать показ путей, кликнув по коим игрок переходит в другие сцены, необходимо написать:
instead.noways = true;


[#4 Убрать инвентарь]
Чтобы убрать показ инвентаря, необходимо написать:
instead.noinv = true;
Для сокрытия инвентаря в диалогах или других комнатах можно подключить модуль noinv:
require "noinv"; room { nam = "main"; noinv = true; dsc = "Это комната с отключённым инвентарём."; }


[#5 Отключить изображения]
Чтобы убрать изображения, нужно записать:
instead.nopic = true;
Также можно воспользоваться записью game для установки изображения по-умолчанию (или убрать его):
game.pic = ' ';
Вообще, game можно использовать для установки различных действ по-умолчанию, например: game.act, game.inv, game.use. Например, когда хотите добавить разнообразия на отрицательные реакции, чтобы в случайном порядке выводились разные реакции.

[#6 Изменить префикс у фраз диалогов]
Чтобы убрать или изменить префикс у фраз диалогов, кой обычно в виде дефиса, нужно записать:
std.phrase_prefix = ' ';
Где в кавычки можно записать всё, что понравится.

[#7 Вызвать обработчик/атрибут объекта]
Для вызова атрибута объекта можно использовать std.call(objekt, metod, parametry), например:
std.call(_"dver_01", "dsc") -- Выведет dsc у объекта с именем dver_01 std.call(_(t.Objekt), "dsc") -- _( ) Если, например, нужно обратиться по переменной, коя содержит имя объекта
Можно вызывать обработчики объектов также вот так:
jabloko:act() -- Если объект как функция _"jabloko":act() -- Если обращение по имени
Прочитать об этом можно в разделе 7.5 "Возвращаемые значения обработчиков" в доке инстеда, ссылка на кою в разделе "Ссылки" этой страницы.

[#8 Изменить размер отступа между динамической и статической частями сцены]
Чтобы изменить отступ между постоянным и временным текстом сцены, нужно изменить:
std.scene_delim = "^"
Где ^ означает одинарный отступ.

[#9 Спрятать/убрать курсор мыши]
Для сокрытия курсора мыши используется следующая функция:
instead.mouse_show(false)
При этом в меню INSTEAD'а курсор будет виден.

[#10 Рамка на картинки предметов]
Например, вы хотите, чтобы избираемый вами предмет инвентаря, в зависимости от некой переменной, получал сверху рамочку. Мне это понадобилось в той игре, где управление было не INSTEAD-"типичное"; Т.е. применял предметы я не на текстовые ссылки, а на спрайты, клики по коим я ловил. А предметами были объекты menu -- там-то и появилась необходимость показывать "активное" действие. Тогда:
IconoSetter = function(fIconoime, fStatus) if status == fStatus then return p (fmt.img('gfx/'..fIconoime..'.png;gfx/o_selectoborder.png')); else return p (fmt.img('gfx/'..fIconoime..'.png')); end; end
Где status -- переменная "состояния выбора" (определённому значению соответствует определённый предмет), а fStatus есть желаемое для наступления условия значение status'а. fIconoime есть название файла нужной иконки, а o_selectoborder.png -- картинка рамки. Таким образом "выделение" предметов инвентаря таким образом будет в разы быстрее и чище:
menu { nam = "Lopata"; disp = function() IconoSetter("lopata", 0) end; -- По-умолчанию lopata.png, а при status == 0 -- с рамочкою inv = function() status = 0 end; }

Ссылки

Тут находится исходный код INSTEAD'a, где можно поглядеть это и другие штуки.

Дока по INSTEAD'у в его GitHub-репозе.

Заметки, размещённые непосредственно на этом сайте.


Главная