subject: Вопросы и ответы
30.08.2018 17:00
RSS-bot (tavern,2)
Redneb: Всем добрый день. Сейчас пишу игру и застрял на одном вопросе. Игрок может управлять электропитанием на компьютере. Управление реализовано через диалог. Игрок может или выключить или включить питание. Первоначально игрок не может это сделать, так как связь с электроподстанцией повреждена. Ситуация первая. Питание выключено. Связь повреждена. При попытке включить или выключить питание выдается сообщение об ошибке. Это я смог сделать. Ситуация вторая. Питание выключено. Связь восстановлена. При попытке включить питание должно выводится сообщение, что питание включено. Не могу здесь разобраться, как сделать изменение фразы в диалоге при изменении переменной. Спасибо.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12345/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
30.08.2018 17:10
RSS-bot (tavern,2)
peter: Привет! Проще всего -- прилепить конкретный маленький пример, и кто-нибудь исправит его. На словах очень сложно что-то сказать. Если совсем абстрактно то есть например такая штука как cond: https://github.com/instead-hub/instead/blob/master/doc/stead3-ru.md#%… И можно одну из фраз прятать а вторую -- показывать.... Можно сам вывод фразы оформить в виде функции... Короче, на примере все будет ясно...
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12346/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
31.08.2018 09:10
RSS-bot (tavern,2)
Redneb: Пример следующий: >! global { >! power_on = false; >! }; >! >! dlg { >! nam = 'main'; >! noinv = true; >! title = [[Терминал управления станцией]]; >! enter = [[Это терминал управления станцией. На нем пожно посмотреть статусы всех систем.]]; >! phr = { >! {true, 'Мониторинг питания', >! {true, 'Статус', 'Включено резервное питание'}, >! {true, 'Управление','Вывирете действие', >! {true, 'Включить', cond = function() >! if power_on then >! p [[Питание включено]]; >! else >! p [[Ошибка]]; >! end >! end;}, >! {true, 'Выключить','Ошибка'}, >! {true, 'Назад', function() pop() end;}, >! }, >! {true,'Назад', function() pop() end;}, >! }, >! {true, 'Выйти', function() wakout 'MR_7' end;}; >! }; >! }; >! Я думал следующее: есть глобальная переменная, которая отвечает за вывод определенной фразы. Сейчас мне выводит ошибку: >! Error: ./stead//stead3/stead.lua:2322: Call from global context. >! stack traceback: >! [C]: in function 'error' >! ./stead//stead3/stead.lua:2313: in function 'pr' >! ./stead//stead3/stead.lua:2322: in function 'p' >! main3.lua:32: in function 'cond' >! ...rivat/GameDis/Game for Kril 2018/./stead//stead3/dlg.lua:305: in function 'check' >! ...rivat/GameDis/Game for Kril 2018/./stead//stead3/dlg.lua:374: in function 'select' >! ...rivat/GameDis/Game for Kril 2018/./stead//stead3/dlg.lua:221: in function 'ph_display' >! ...rivat/GameDis/Game for Kril 2018/./stead//stead3/dlg.lua:211: in function 'display' >! ./stead//stead3/stead.lua:2028: in function 'look' >! ./stead//stead3/stead.lua:1819: in function 'display' >! ./stead//stead3/stead.lua:1964: in function 'cmd' >! ./stead//stead3/stead.lua:2772: in function <./stead//stead3/stead.lua:2761>
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12348/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
31.08.2018 09:20
RSS-bot (tavern,2)
Redneb: Спасибо, это то что было нужно. Хотел получить следующее: если связь с электростанцией не восстановлена, power_on = false и выводится сообщение при попытке включения "Ошибка". После восстановления связи power_on = true и выводится сообщение "Питание восстановлено". Теперь все работает как нужно.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12351/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
31.08.2018 09:20
RSS-bot (tavern,2)
peter: На всякий случай, вот пример реализации включить/выключить. Может это нужно? {true, 'Включить', function() p 'Включил'; power_on = true end, cond = function() return not power_on end }, {true, 'Выключить',function() p 'Выключил'; power_on = false end, cond = function() return power_on end },
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12350/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
31.08.2018 09:20
RSS-bot (tavern,2)
peter: Опиши, что именно хочешь получить? Пока просто заметил вот это: {true, 'Включить', cond = function() if power_on then p [[Питание включено]]; else p [[Ошибка]]; end end;}, Заменил на просто вывод в зависимости от power_on: {true, 'Включить', function() if power_on then p [[Питание включено]]; else p [[Ошибка]]; end end;}, Добавил еще: require "fmt" std.phrase_show = false Для более чистого вывода. require "fmt" std.phrase_show = false global { power_on = false; }; dlg { nam = 'main'; noinv = true; title = [[Терминал управления станцией]]; enter = [[Это терминал управления станцией. На нем пожно посмотреть статусы всех систем.]]; phr = { {true, 'Мониторинг питания', {true, 'Статус', 'Включено резервное питание'}, {true, 'Управление','Вывирете действие', {true, 'Включить', function() if power_on then p [[Питание включено]]; else p [[Ошибка]]; end end;}, {true, 'Выключить','Ошибка'}, {true, 'Назад', function() pop() end;}, }, {true,'Назад', function() pop() end;}, }, {true, 'Выйти', function() wakout 'MR_7' end;}; }; };
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12349/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
31.08.2018 09:30
RSS-bot (tavern,2)
Redneb: Спасибо. Буду пробовать дальше.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12355/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
31.08.2018 09:30
RSS-bot (tavern,2)
peter: P.S. true в начале фраз не обязательно писать... Вот еще пример развитого диалога: https://github.com/instead-hub/instead/blob/master/doc/examples/stead…
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12354/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
31.08.2018 09:30
RSS-bot (tavern,2)
peter: Ага, если хочешь, заходи в чат телеграм или jabber -- там всегда кто-нибудь может отвечать оперативней.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12353/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
31.08.2018 09:30
RSS-bot (tavern,2)
peter: А так смотри, есть cond. Cond - это условие, которое определяет -- показать фразу или нет. В фразе текст вопроса и ответа можно делать функциями. Фразы можно включать и выключать по тегам.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12352/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
06.09.2018 16:30
RSS-bot (tavern,2)
Redneb: Добрый день. Возник вопрос по использованию :disable()/:enable() у объектов. Пример следующий: >! require "fmt" >! fmt.para = true >! require "dbg" >! require "noinv" >! >! game.act = 'Не работает'; >! game.use = 'Это не поможет'; >! game.inv = 'Зачем мне это?'; >! >! obj { >! nam = 'углубление'; >! dsc = [[ Возле основания фигуры есть небольшое {углубление}.]]; >! act = [[Такое ощущение, что сюда чего-то можно вставить.]]; >! >! }; >! >! obj { >! nam = 'странная фигура'; >! seen = false; >! dsc = [[В углу комнаты стоит {странная фигура}.]]; >! act = function(s) >! if s.seen then >! p [[Фигура из серого камня.]]; >! else >! s.seen = true; >! p [[Я осмотрел фигурк со всех сторон. Фигура сделана из серого камня. Возле основая есть небольшое углубление]]; >! end; >! end; >! obj = {'углубление'}; >! >! }; >! >! room { >! nam = 'main'; >! title = 'Комната'; >! dsc = [[Я нахожусь в небольшой комнате.]]; >! obj = {'странная фигура'}; >! }; Так вот, есть объект (углубление), который вложен в другой объект (странная фигура). Мне хотелось, что описание вложенного объекта появлялось только после осмотра основного. Т.е. игрок не видит его сразу, а после того, как осмотрел, увидел. Пытался реализовать через :disable()/:enable() как у переходов, но ничего не получается. Может я вообще не правильно пытаюсь сделать. Спасибо
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12375/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
06.09.2018 16:50
RSS-bot (tavern,2)
Irremann: Сделай вложенный объект. Обрати внимание на список obj в "столе": >! obj { >! nam = 'Стол'; >! dsc = 'В центре комнаты стоит {большой стол}.'; >! act = function(s) >! p 'Издалека похож на деревянный, но сделан конечно из имитирующего пластика.'; >! open(s); >! end; >! obj = {'Терминал', 'Счета', 'Комм', 'Таблетки', 'Лупа'}; >! }:close();
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12376/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
06.09.2018 19:10
RSS-bot (tavern,2)
peter: В этом примере :close(). Соответственно надо делать open(), чтоб открыть стол. Просто покажи код, который не работает, но который ты хочешь чтоб работал и мы исправим.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12377/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
07.09.2018 11:30
RSS-bot (tavern,2)
Redneb: Спасибо, разобрался как сделать через close\open. Я просто не в том месте их писал.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12378/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
10.09.2018 14:00
RSS-bot (tavern,2)
spline: Как-то было возможно заставить инстед выдать сообщение "Пожалуйста, подождите..." пока завершаются некоторые операции, но не могу найти в документации как это делается. Не подскажете как это работает и какой функцией реализуется?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12379/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
10.09.2018 15:00
RSS-bot (tavern,2)
spline: Спасибо. В доке и правда не описано =) А я уж думал, что это я разучился поиском пользоваться.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12381/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
10.09.2018 15:00
RSS-bot (tavern,2)
peter: std.busy(true) вызываем пока что то делаем, например, в цикле std.busy(false) -- когда закончили вычисления std.busy вызывать лучше не очень часто, а то сам busy будет замедлять вычисления. :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12380/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
02.10.2018 15:20
RSS-bot (tavern,2)
Ruido: Пытаюсь разобраться в документации... глава про Декорации. > "5.2 Использование тегов вместо имен > Если вам не нравится придумывать уникальные имена для однотипных де- > коративных объектов, вы можете использовать для таких объектов теги. Теги > задаются атрибутом tag и всегда начинаются с символа ‘#’: > obj { > tag = ’#цветы’; > dsc = [[Тут есть {цветы}.]] > }" Поясните пожалуйста в чём отличие от: > "5.1 Один и тот же объект в нескольких комнатах > Вы можете создать один объект, например, ‘дерево’ и помещать их в разные > комнаты. > obj { > nam = ’дерево’; > dsc = [[Тут стоит {дерево}.]]; > act = [[Все деревья выглядят похожими.]]; > }" Вроде потом в комнатах я и буду везде писать или 'дерево' или ’#цветы’ О каком придумывание уникальных имен идет речь в пункте 5.2?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12390/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
02.10.2018 22:50
RSS-bot (tavern,2)
peter: Дело вот в чем. Если сделать дерево, и поместить его в разные комнаты, то это будет одно и то же дерево. Иногда это подходит, например, все деревья выглядят одинаково и с ними нельзя взаимодействовать. Но бывает иначе. Тогда придется делать разные деревья и придумывать им уникальные имена типа: дерево1 дерево2, ещё_дерево итд. А теги - это локальное имя, которое действует в рамках комнаты, поэтому можно назвать разные предметы одним и тем же именем. Например в комнате есть #мусорка. В другой комнате #мусорка. Но это разные мусорки с разным содержимым. Надеюсь, ответил вразумительно. :) Насчёт примеров, я с ходу не скажу, но многие игры на стед3 с life методами. Инстедоз последний. Проводник. Библиотека.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12391/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
13.12.2018 04:50
RSS-bot (tavern,2)
Irremann: Что-то я туплю немного, помогите с кодом. В общем такая структура, есть определённый объект, в который вложены другие объекты. Какие именно объекты и сколько их вложено заранее неизвестно. Например: obj { nam = 'Альфа'; obj = {'Первый', 'Второй'}; }; Как мне получить nam и disp вложенных объектов только по их месту в списке? Как получить количество вложенных объектов?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12748/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
13.12.2018 07:30
RSS-bot (tavern,2)
peter: https://github.com/instead-hub/instead/blob/master/doc/stead3-ru.md#%…
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12749/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:17
RSS-bot (tavern,2)
peter: http://lua-users.org/wiki/LuaXml Там смотреть SLAXML Кажется его я использовал.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13029/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:17
RSS-bot (tavern,2)
zanatar: Здравствуйте. Порекомендуйте, пожалуйста, какой-нибудь простой способ (желательно с готовым решением), по работе с xml в instead. Требуется поиск в документе по тегам и вывод на печать данных(текста) из под тега. Я не слишком хорошо разбираюсь в lua, попытки установки сторонних модулей, типа LuaXML, зачастую оборачиваются ошибками то на этапе их установки, то на этапе инициализации :( Заранее благодарю.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13028/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:21
RSS-bot (tavern,2)
Bhudh: Уже убрал проигрывание `'theme/needed_obj_sound.ogg'` в `game.oninv` и засунул его в `act` объекта. Безо всяких проверок.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12992/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:21
RSS-bot (tavern,2)
peter: Ну там можно еще проявить фантазию. Например сделать свойство у объекта click и если v.click не пустой - играть его.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12991/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:21
RSS-bot (tavern,2)
Bhudh: Уже убрал проигрывание `'theme/needed_obj_sound.ogg'` в `game.oninv` и засунул его в `act` объекта. Безо всяких проверок.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12992/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:21
RSS-bot (tavern,2)
Bhudh: Дополнение: если в `'needed_obj'` есть не только `inv`, но и `act`, придётся делать проверку и в первой функции:
game.afteract = function( s, v )
if not v^'needed_obj' then
snd.play('theme/click.ogg')
end
end
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12990/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:21
RSS-bot (tavern,2)
peter: Ну там можно еще проявить фантазию. Например сделать свойство у объекта click и если v.click не пустой - играть его.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12991/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:21
RSS-bot (tavern,2)
Bhudh: Сделал так:
game.afteract = function( s, v )
-- чтобы не потерять звука кликов по ссылкам
snd.play('theme/click.ogg')
end
game.oninv = function( s, v )
if v^'needed_obj' then
snd.play('theme/needed_obj_sound.ogg')
else
snd.play('theme/click.ogg')
end
end
Сработало!
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12989/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:21
RSS-bot (tavern,2)
Bhudh: Дополнение: если в `'needed_obj'` есть не только `inv`, но и `act`, придётся делать проверку и в первой функции:
game.afteract = function( s, v )
if not v^'needed_obj' then
snd.play('theme/click.ogg')
end
end
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12990/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:21
RSS-bot (tavern,2)
Bhudh: Можно и в `game.oninv`, наверное. Спасибо, попробую.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12988/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:21
RSS-bot (tavern,2)
Bhudh: Сделал так:
game.afteract = function( s, v )
-- чтобы не потерять звука кликов по ссылкам
snd.play('theme/click.ogg')
end
game.oninv = function( s, v )
if v^'needed_obj' then
snd.play('theme/needed_obj_sound.ogg')
else
snd.play('theme/click.ogg')
end
end
Сработало!
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12989/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:22
RSS-bot (tavern,2)
spline: Именно перед не получится, но тебе, по идее, и после сгодится. Пропиши в game.afterinv же.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12987/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:22
RSS-bot (tavern,2)
Bhudh: Можно и в `game.oninv`, наверное. Спасибо, попробую.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12988/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:22
RSS-bot (tavern,2)
Bhudh: Спасибо. Как-то так и подумал. Жаль, конечно, что `onact` на звуки не влияет, кастомизации было бы больше. Но если делать `inv`, его придётся делать в каждом объекте отдельно. Их не так чтобы много, но дублирование кода… (Даже если это вызов функции.) В `game.inv` никак нельзя прописать обязательность выполнения перед `inv` объекта?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12986/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:22
RSS-bot (tavern,2)
spline: Именно перед не получится, но тебе, по идее, и после сгодится. Пропиши в game.afterinv же.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12987/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:22
RSS-bot (tavern,2)
peter: То-есть, в теме snd.click = А в игре, например, в life методе. Или afterwalk/act/inv итд.... Ну или ещё где :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12985/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:22
RSS-bot (tavern,2)
Bhudh: Спасибо. Как-то так и подумал. Жаль, конечно, что `onact` на звуки не влияет, кастомизации было бы больше. Но если делать `inv`, его придётся делать в каждом объекте отдельно. Их не так чтобы много, но дублирование кода… (Даже если это вызов функции.) В `game.inv` никак нельзя прописать обязательность выполнения перед `inv` объекта?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12986/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:22
RSS-bot (tavern,2)
peter: Наверное, в данном случае проще вообще убрать звук кликов в теме и играть их самому с помощью snd.play, какой нужен.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12984/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:22
RSS-bot (tavern,2)
peter: То-есть, в теме snd.click = А в игре, например, в life методе. Или afterwalk/act/inv итд.... Ну или ещё где :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12985/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:22
RSS-bot (tavern,2)
Bhudh: Вопрос: Можно ли поставить отдельный звук на отдельный элемент инвентаря (конкретно — объект `menu`) так, чтобы он заменял дефолтный? `snd.play()` в `act` срабатывает после звука щелчка. Пробовал ставить `theme.set('snd.click', ...)` в `onact`, не помогает.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12983/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:22
RSS-bot (tavern,2)
peter: Наверное, в данном случае проще вообще убрать звук кликов в теме и играть их самому с помощью snd.play, какой нужен.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12984/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
27.03.2019 14:22
RSS-bot (tavern,2)
Bhudh: Вопрос: Можно ли поставить отдельный звук на отдельный элемент инвентаря (конкретно — объект `menu`) так, чтобы он заменял дефолтный? `snd.play()` в `act` срабатывает после звука щелчка. Пробовал ставить `theme.set('snd.click', ...)` в `onact`, не помогает.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/12983/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
30.03.2019 09:00
RSS-bot (tavern,2)
Svargov: Доброго времени! Возможно ли сделать (имеются ли уже игры Инстеда) контекстное меню действий, всплывающее над "активным" словом в тексте?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13040/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
30.03.2019 09:30
RSS-bot (tavern,2)
peter: Только в теории, через декораторы. Практически, никто это не делал. Насколько я помню, делали контекстное меню в области инвентаря, но было это давно, еще на stead2. Технически, повторюсь, это возможно. Но нет тех людей, которым это интересно (включая меня :))
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13041/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
30.03.2019 10:10
RSS-bot (tavern,2)
Svargov: > Но нет тех людей, которым это интересно (включая меня :)) Это-то понятно ;) При том, что метапарсер функционально и есть контекстное меню... Но "цифровая фотография не имеет души", "когда я читаю книгу я люблю шелест страниц и запах типографской краски..." :)))
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13042/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
30.03.2019 12:31
RSS-bot (tavern,2)
peter: Насчет декораторов, есть такой модуль в stead3-modules. Там можно рисовать что угодно под и над текстом - включая ссылки. Вот так, в теории, можно сделать контекстное меню. Но я бы его вывел в область инвентаря или сцену. Клик на предмет - список операция в зоне изменился. А чем прицнипиально не устраивает proxymenu? :) Раз метапарсер -- контекстное меню, то прокси-меню и подавно. Но там тоже - глаголы не меняются - фиксированный базис.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13045/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
30.03.2019 12:31
RSS-bot (tavern,2)
peter: Парсер, прокси меню, инстед = это всегда постоянный базис - действия -> предметы. CYOA или контекстное меню - не постоянный базис. Разница объективно есть. А уже что лучше/хуже - дело личное :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13044/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
30.03.2019 12:31
RSS-bot (tavern,2)
peter: > При том, что метапарсер функционально и есть контекстное меню... На эту тему можно вечно спорить. Для меня важно, чтобы базис команд в игре был постоянным. Классич контекстное меню это, во первых, разный базис в зависимости от ситуации (предмет-> действие (кот. может быть любым)). А во-вторых, это ОКНА! Но, конечно, это лично мое восприятие. Если найдётся тот человек, кому это нужно реально, то в теории -- это можно сделать как на декораторах, так и в виде меню в области инвентаря. Или даже прямо на сцене.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13043/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
30.03.2019 19:21
RSS-bot (tavern,2)
Svargov: > А чем принципиально не устраивает proxymenu? я только начал изучать инстед, никаких принципиальных возражений предъявить не могу )
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13046/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
30.03.2019 19:41
RSS-bot (tavern,2)
peter: Прокси-меню выглядит примерно так: http://instead-games.ru/game.php?ID=38 Правда игра на старом API, но суть не меняется.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13047/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
12.04.2019 15:50
RSS-bot (tavern,2)
Ruido: Объясните пожалуйста как работает данный код: "obj { nam = 'Стол2'; dsc = 'В левом углу стоит дубовый {стол} с ящиками.'; act = function(s) p 'Я запрыгнул на стол.'; open(s); end; obj = {'Фото'}; }:close();" По функционалу, он включает объект фото в сцену. Объект фото не был виден, затем нажали на стол. И объект "фото" появился в сцене. Но я запутался. Ведь :close() относится к самому объекту Стол2. И мне казалось, что именно объект Стол2 должен быть закрыт и недоступен и невидим для игрока. Объясните пожалуйста, как получается, что клоуз у объекта Стол2, но отключает он вложенный объект Фото
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13093/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
12.04.2019 17:00
RSS-bot (tavern,2)
peter: ``` obj { nam = 'Стол2'; dsc = 'В левом углу стоит дубовый {стол} с ящиками.'; act = function(s) p 'Я запрыгнул на стол.'; open(s); end; obj = {'Фото'}; }:close(); ``` Закрыт стол. Это значит, что его содержимое невидно, но сам стол - виден. Это как если бы это была коробка. Закрыта она или открыта -- она видна. Не видно только содержимое коробки. Если это плохо воспринимается, можно воспользоваться disable. Вот если Фото сделать disable, то чтобы оно было видно надо делать enable именно на него. Надеюсь, объяснил понятно. :)
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13094/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
17.04.2019 00:01
RSS-bot (tavern,2)
Irremann: Пока не забыл, что делаю, напишу на форуме. Объявляю: local fnt = sprite.fnt('theme/7847.ttf', (theme.get 'win.fnt.size'+70)); Потом пишу в комнате: dsc = '_'..fmt.imgl(fnt:text('э', '#B22222'))..'та история начинается'; Пока вроде все понятно, но откуда взялись такие большие вертикальные отступы над и под буквицей "Э"? Кто подскажет как починить?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13108/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
17.04.2019 02:30
RSS-bot (tavern,2)
Bhudh: Боюсь, это связано с базовой высотой буквы в шрифте (можно потестить и поставить вместо "э" другие буквы, с "хвостиками", например "р" или "у") и починить это можно лишь отрицательными значениями margin для отдельных строк. Но INSTEAD такого, вроде бы, не предусматривает…
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13109/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
17.04.2019 02:40
RSS-bot (tavern,2)
Irremann: Да, это шрифт виноват. Уже проверил на другом шрифте. Надеюсь завтра Петр подскажет как полученную картинку подрезать.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13110/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
17.04.2019 07:50
RSS-bot (tavern,2)
peter: Хорошо бы ещё кэш прикрутить. Но как демонстрация -- норм. pad = сколько откусить от краёв. ``` require "sprite" require "theme" require "fmt" fmt.para = true local fnt = sprite.fnt('1.ttf', (theme.get 'win.fnt.size'+70)); obj { nam = '$letter'; act = function(s, t) local sp = fnt:text(t, '#B22222') -- спрайт local w, h = sp:size() -- размер local pad = 16 local nsp = sprite.new(w - pad * 2, h - pad * 2) -- мЕньший спрайт sp:copy(pad, pad, w - pad * 2, h - pad * 2, nsp); -- копируем в него return fmt.imgl(nsp) -- вернули то, что вышло end; } room { nam = "main"; dsc = "_{$letter|B}уковка."; } ```
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13111/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
17.04.2019 12:31
RSS-bot (tavern,2)
kerber: Немного модифицировал вышеприведённый код. ```lua require "sprite" require "theme" require "fmt" fmt.para = true local fnt = sprite.fnt('1.ttf', (theme.get 'win.fnt.size'+70)); obj { nam = '$letter'; { cache = { } }; act = function(s, t) if s.cache[t] then return fmt.imgl(s.cache[t]) end local sp = fnt:text(t, '#B22222') local w, h = sp:size() local padu, padr, padd, padl = 10,10,0,5; -- Отступы сверху, справа. снизу, слева. Для обрезки используйте отрицательные числа. local nsp = sprite.new(w + padr + padl, h + padd + padu) sp:copy(-padl, -padu, w + padl + padr, h + padu + padd, nsp); s.cache[t] = nsp return fmt.imgl(nsp) end; } room { nam = "main"; dsc = [[_{$letter|Б}]]..[[уковка. вопа па ралрпдпнп нпгн пщгнп щгнп щгнпщ епнпнп агнпщ щпгнеинпашн еаишеагнеаиеинеаеге ена ншанешашена шнеашнеешнеаш ешнеа ш неа шнеа шен щп щгнпгщнпщгнп щгнпщгнпн щгнп щн щгнпщгнпщн щгнп щ гнпщгнп ща 6е 7щ6прпп нпщещ6 пщнп нп гнпгнпнгщгн щнпн щнп щгнпнп гнп гнпнгщгн 7н шнне щге е6ее 76е 76ее6уковка. вопа па ралрпдпнп нпгн пщгнп щгнп щгнпщ епнпнп агнпщ щпгнеинпашнеаишеагнеаиеинеаеге ена]]; } ```
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13112/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
21.04.2019 21:41
RSS-bot (tavern,2)
Irremann: @kerber, буквица работает прекрасно. Камрады, я точно помню это где-то обсуждалось, но нем могу найти. Как написать проверку на то, находишься ли сейчас в диалоге или нет. Аналог isDialog из стид2. Пробовал писать, что-то типа: if dprint(here():type 'dlg') then Но так оно не работает.
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13114/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
21.04.2019 22:51
RSS-bot (tavern,2)
peter: ``` if here():type 'dlg' then ```
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13115/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
08.09.2020 10:05
RSS-bot (tavern,2)
Ruido: Скажите пожалуйста, как в массив добавить элемент? /или заменить существующий. —-$Name: Тест$ —-$Version: 0.1$ —-$Author: Ruido$ require "fmt" fmt.para = true game.act = 'Гм...'; game.use = 'Не сработает.'; game.inv = 'Зачем это мне?'; require "dbg" global { array = {66, 2, 3, 4} }; room { nam = 'main'; disp = "Центральная площадь"; dsc = [[Маленькая площадь маленького городка.]]; obj = {'яблоко', "проверка массива"}; } obj { nam ='яблоко'; dsc = [[За {яблоко} ранее утро.]]; act = function () p [[Объект добавлен в массив.]]; **add('333'|array[1])** end; }; obj { nam ='проверка массива'; dsc = [[Тут происходит {проверка массива}.]]; act = function () p(array[1]) end; };
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13469/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
08.09.2020 11:05
RSS-bot (tavern,2)
spline: Добавить элемент очень просто: ```lua table.insert(array, 'element') ``` Заменить тоже не сложно: ```lua array[1] = 'new value' ```
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13470/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
08.09.2020 14:05
RSS-bot (tavern,2)
Ruido: Спасибо. А как сделать так чтобы массив вывел все свои элементы? Не act = function () p(array[1]) p(array[2]) p(array[3]) p(array[4]) p(array[5]) p(array[6]) p(array[7]) end; а какой-то одной командой без привязки к количеству элементов?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13471/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
08.09.2020 15:05
RSS-bot (tavern,2)
spline: > @Ruido написал: > Спасибо. А как сделать так чтобы массив вывел все свои элементы? ```lua for i = 1, #array do p(array[i]) end ```
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13472/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
24.09.2020 10:05
RSS-bot (tavern,2)
Ruido: Маленькая проблема. Пишу диалог. Без 'govorilTraktir' = true - всё работает. С ней - ругается. Сама переменная объявлена в глобальных. {'К делам. До свиданья.', function() p [[До свиданья!^ Всегда рад! Всегда рад!]]; walkout(); 'govorilTraktir' = true; end}, Что не так с кодом?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13483/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
30.09.2020 16:05
RSS-bot (tavern,2)
Artur_Aiwasan: > @Ruido написал: > Маленькая проблема. Пишу диалог. Без 'govorilTraktir' = true - всё работает. С ней - ругается. Сама переменная объявлена в глобальных. > > {'К делам. До свиданья.', function() p [[До свиданья!^ > Всегда рад! Всегда рад!]]; walkout(); 'govorilTraktir' = true; end}, > > > Что не так с кодом? А на что ругается и как?
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13484/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
01.10.2020 00:05
RSS-bot (tavern,2)
peter: govorilTraktir = true без кавычек
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13485/#…
--------------------------------------------------------------------------------
subject: Вопросы и ответы
03.11.2020 21:05
RSS-bot (tavern,2)
Irremann: Просто присваиванием же. Добавить еще один элемент к массиву можно так: array[#array+1] = '333' Если вопрос еще актуален конечно =).
Ссылка: http://instead-games.ru/forum/index.php?p=/discussion/comment/13496/#…
--------------------------------------------------------------------------------