Вопросы начинающих

  1. ‹ Older
  2. 5 months ago

    Vtroll

    Oct 2016 User since 2016
    Edited 5 months ago by Vtroll

    peter Можно и формировать имя на лету:

    _G["room"..tostring(i)"]()

    Это вызов глобальной ф-ции

    небольшая ошибка. работает так:
    _G["room"..tostring(i)]()

  3. 3 months ago

    Ruido

    Jan 5 User since 2016

    Подскажите пожалуйста как сделать так, чтобы в многоуровневом диалоге, при повторном общение с персонажем кидало не на последнюю ветку общения, в на самый верхний уровень? Прикладываю код.

    Там в начале при разговоре с мальчиком три фразы. Допустим выбрали вторую. Перешли на другую ветку диалога. Там выбрали первую фразу. Снова новая ветка диалога. Там выбрали последний вариант и закончили тем самым общение.
    Теперь можем снова тыкнуть на мальчишку и запустить с ним диалог. И у меня выходит возврат к тому списку фраз на котором покинули диалог, а нужно чтобы показывались опять три фразы которые были в самом начале (но уже прочитанные фразы снова не возникали).

  4. Irremann

    Jan 5 Постоялец User since 2014

    Поставь на начальные три фразы tag = 'начало' например. На выходе из диалога, впиши pjump 'начало'; перед back(); Тогда разговор будет переводить в начальную ветку и сразу завершаться.

  5. Ruido

    Jan 5 User since 2016

    Помогло. Спасибо.

  6. Допустим в игре за время перемещения между комнатами, затрачивается какое-то время.
    Следовательно время в игре увеличивается.

    Допустим, нам нужно переместиться из комнаты "А" в комнату "В".
    Но, перед перемещением игра проверит время и, если оно будет больше 21.00 - потребует сделать привал.

    Привал я понимаю как переход в специальную комнату, где будет совершён пересчёт переменных.
    И после нажатия Далее... необходимо вернуться опять в комнату "А".
    Время будет установлено на 06.00 и переход в комнату "В" станет возможным.

    Какой командой лучше совершать такой возврат?
    Ведь изначально неизвестно, где будет момент действия игры к 21.00

  7. Irremann

    Jan 6 Постоялец User since 2014

    В привальной комнате я бы просто сделал путь:

    way = {vroom('>> Далее', from())};

    Или добавил объект в сцену:

    obj = {vway("next", "{>> Далее.}", from())};

    Можно еще xact впилить, но не советую =).

    В общем нужная тебе команда from(); смотри подробнее в документации.

  8. skiminok1986

    Jan 6 Постоялец Курган User since 2014
    Edited 3 months ago by skiminok1986

    Есть ещё один вариант. Сделать примерно так в комнате привала:

    act = function(s, w)
       if w == "done" then
          back()
       end
    end,
    obj = {vobj("done", "{>> Далее}")},

    По крайней мере так бы сделал я =)

  9. Irremann

    - как работает from() я не понял, в документации команда упоминается всего два раза, и как ей пользоваться я не разобрался.

    skiminok1986

    - а вот Ваш вариант мне подошёл, как работает не совсем понимаю, но ведь главное работает =) Использую этот принцип, в том числе и для возврата из комнат поединков.
    Спасибо Вам за оперативную помощь. Буду обращаться...

  10. skiminok1986

    Jan 11 Постоялец Курган User since 2014

    Vault Factory, функция from() возвращает предыдущую сцену. Функция back() совершает переход в предыщую сцену.

  11. 2 months ago

    kolobod

    Feb 11 User since 2014

    Всем добрейший день! Такой вопрос внезапно возник к опытным людям.
    Если вещи в инвентаре отображаются не словами-ссылками, а картинками - можно ли как-то сделать, чтобы при наведении на них, картинка подсвечивалась или менялась? Ну как со с словом-ссылкой - когда наводишь на него мышкой, цвет меняется и игрок сразу понимает, что это некий активный элемент и тут нужно кликнуть. Что-то подсказывает, что логика INSTEAD такое позволяет, но допетрить не могу.

  12. Irremann

    Feb 11 Постоялец User since 2014

    Кажется если только ловить координаты курсора. В общем сложно.

  13. Antokolos

    Feb 11 Омск User since 2014

    Я такое делал в игре Большая Свинья: http://instead-games.rooker.ru/game.php?ID=220
    Правда, там объекты были не в инвентаре, а как специальный графический объект, который может быть в произвольном месте на экране.
    Там относительно сложный код на основе переработанного и дополненного модуля VN.
    Запощу чуть попозже код с новой версией библиотеки, там много нового появилось с тех пор.

  14. Antokolos

    Feb 11 Омск User since 2014

    Вот пример:
    https://yadi.sk/d/bj-eEC403DszoC

  15. kolobod

    Feb 12 User since 2014

    Antokolos Вот пример:
    https://yadi.sk/d/bj-eEC403DszoC

    Спасибо большущее, попробую разобраться!

  16. Antokolos

    Feb 12 Омск User since 2014

    kolobod , пожалуйста :) Но это, скорее, как констатация факта, что это возможно, не факт, что пригодится.
    По сути, да, там ловятся координаты курсора мыши, на их основании определяется, попали мы в картинку или не попали, а затем картинка заменяется другой.
    kerber рассказывал ещё про маски, когда факт попадания или непопадания в объект определяется на основании того, находится ли курсор над позицией маски с определённым цветом (к примеру, под картинкой яблока находится маска, где красный кружок расположен в том месте, где расположено яблоко на исходной картинке). Картинку объекта, кстати, можно менять динамически, и Инстед это подхватит. Тут можно посмотреть пресловутые покадровые анимации во Фронтире, который сделан вообще без использования модуля sprite, там просто имя файла картинки меняется.

  17. v.v.b.

    Feb 20 Постоялец Нижний Новгород User since 2014

    вопрос. как принудительно заставить инстед перерисовать всё, не перезаходя в текущую комнату?

  18. peter

    Feb 20 Administrator Земля(Москва) User since 2014

    У меня мозг забит 3.0. Но что то вроде stead.need_scene() было. Поищи в луа по need_scene

  19. 8 weeks ago

    Oreolek

    Feb 28 User since 2014

    как принудительно заставить инстед перерисовать всё, не перезаходя в текущую комнату?

    а если вызвать look() в текущей сцене ещё раз?

  20. 7 weeks ago

    Подскажите пожалуста,как создать динамически изменяемое название предмета в инвентаре,чтобы выводилось значение переменной.disp я написал,но в документации не нашел как в текстовое статическое описание вставить значение переменной.Это возможно?

  21. MaJoR KolZ

    Mar 5 Постоялец Харьков User since 2014
    disp = function(self)
       p( "Текст до " .. self.variable .. " текст после" )
    end,

    function-end блок заключает кусок кода который будет выполнятся каждый раз, когда движку потребуется disp — что удовлетворяет потребности в "динамическом изменении". Необходимо выводить текст — для этого существует функция "p", что принимает в качества аргумента текст который будет выводить — он заключен в круглых, операторных, скобках.

    Две точки ".." — операция соединения текста.

    self.varibale — обращение к переменной с именнем variable в этом объекте.
    Многие используют более короткое имя "s"для обозначения объекта:
    disp = function(s)
       p( s.variable )
    end,

  22. Newer ›

or Sign Up to reply!