Плохо! Плохо!:  0
Страница 7 из 7 ПерваяПервая ... 567
Показано с 61 по 65 из 65

Тема: Помощь c плагинами(JS)

  1. #61
    Маститый Аватар для Yuryol
    Информация о пользователе
    Регистрация
    06.03.2014
    Адрес
    Красноярск
    Сообщений
    1,049
    Записей в дневнике
    31
    Репутация: 47 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от AntiGM Посмотреть сообщение
    Чтоб не плодить одноразовых тем на форуме, спрошу тут. МБ не затеряется сообщение.
    Использую плагин: https://forums.rpgmakerweb.com/index...nerator.51808/
    А если быть точнее то его дополненную версию :https://forums.rpgmakerweb.com/index...-5#post-770247
    Так вот автор добавил в настройки плагина тег для инвентов, чтоб те при появлении не заслоняли проходы.
    Код:
    <NoPassageBlock: 1>
    Может ли мне кто нибудь подсказать, как и где мне подправить плагин, чтоб этот тег выполнял прямо противоположную функцию, то есть ивент с этим тегом появлялся только в проходах и заслонял входы в комнаты.
    В оригинальной теме уже давно не было сообщений, и думаю мне там не ответят, а у нас на форуме много толковых ребят.
    Вот я и надеюсь что вы мне поможете.

    Я изначально по наивности думал, что смогу поправить всё сам, просто поменяв значения с True на Felse и наоборот, там где происходит описание проверки ивента на нахождение в проходе. Но всё оказалось сложнее. Посему прошу вашей помощи.
    мельком глянул,времени и мозгов нет чтоб запустить,переписать и потестить, но судя по всему после строчки
    Код:
    if (NoPassageBlock === true) {
    идет проверка на клетки вокруг ивента,т.е. в случаях загораживания прохода ивент не появляется.
    НО при этом НЕ в проходах ивенты продолжают появляться,так эти проверки никак не влияют на случаи расположения ивента НЕ в проходах.

    поэтому кроме того что возвращаем "тру" (return true) а не "фальш" для появления ивентов в проходах

    Код:
    if (NoPassageBlock === true) {
        // check passability to the left
        if (this.isWallRoofOrRubble(x - 1, y) === false && this.isWallRoofOrRubble(x - 1, y + 1) === true
          && this.isWallRoofOrRubble(x - 1, y - 1) === true) {
          return true;
        }
        // check passability to the right
        if (this.isWallRoofOrRubble(x + 1, y) === false && this.isWallRoofOrRubble(x + 1, y + 1) === true
          && this.isWallRoofOrRubble(x + 1, y - 1) === true) {
          return true;
        }
        // check passability up
        if (this.isWallRoofOrRubble(x, y - 1) === false && this.isWallRoofOrRubble(x + 1, y - 1) === true
          && this.isWallRoofOrRubble(x - 1, y - 1) === true) {
          return true;
        }
        // check passability down
        if (this.isWallRoofOrRubble(x, y + 1) === false && this.isWallRoofOrRubble(x + 1, y + 1) === true
          && this.isWallRoofOrRubble(x - 1, y + 1) === true) {
          return true;
        }
      }
    также добавляем пару строк после последней проверки, чтобы в осталньых случаях возвращалась "Ложь"
    Код:
    (else {return false;}
    получится что-то типа этого.

    Код:
    if (NoPassageBlock === true) {
        // check passability to the left
        if (this.isWallRoofOrRubble(x - 1, y) === false && this.isWallRoofOrRubble(x - 1, y + 1) === true
          && this.isWallRoofOrRubble(x - 1, y - 1) === true) {
          return true;
        }
        // check passability to the right
        if (this.isWallRoofOrRubble(x + 1, y) === false && this.isWallRoofOrRubble(x + 1, y + 1) === true
          && this.isWallRoofOrRubble(x + 1, y - 1) === true) {
          return true;
        }
        // check passability up
        if (this.isWallRoofOrRubble(x, y - 1) === false && this.isWallRoofOrRubble(x + 1, y - 1) === true
          && this.isWallRoofOrRubble(x - 1, y - 1) === true) {
          return true;
        }
        // check passability down
        if (this.isWallRoofOrRubble(x, y + 1) === false && this.isWallRoofOrRubble(x + 1, y + 1) === true
          && this.isWallRoofOrRubble(x - 1, y + 1) === true) {
          return true;
        } else {
          return false;
        }
      }
    повторяю - не запускал,не разбирался, не тестил, просто предположение

  2. #62
    Пользователь Аватар для AntiGM
    Информация о пользователе
    Регистрация
    04.11.2014
    Сообщений
    49
    Репутация: 1 Добавить или отнять репутацию

    По умолчанию

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

  3. #63
    Пользователь Аватар для AntiGM
    Информация о пользователе
    Регистрация
    04.11.2014
    Сообщений
    49
    Репутация: 1 Добавить или отнять репутацию

    По умолчанию

    Забавно, что в теме за 40 дней ни одного сообщения.
    Тогда позвольте я прерву это молчание, ибо у меня ещё один вопрос.
    Вопрос по плагину "OrangeTimeSystem" Что бы я не делал я не могу изменить скорость времени. Те настройки что есть в плагине не реагируют на мои изменения.
    Возможно проблема не в самом плагине а в одном из аддонов для него, дополнительно я использую "OrangeTimeSystemVariables" и "OrangeHudClock"
    Но в любом случае я не могу изменить скорость течения времени, она остаётся на сумашедшем уровне.
    Это скрин настроек плагина.

    Дальше идёт скрин настроек "OrangeTimeSystemVariables"


    И последний скрин это скрин настроек "OrangeHudClock"


    Как видите ничего особенного, но никакие манипуляции не приводят к желаемому результату, а именно уменьшение скорости течения времени.

  4. #64
    Супер-модератор Аватар для dirge
    Информация о пользователе
    Регистрация
    25.02.2013
    Сообщений
    855
    Репутация: 72 Добавить или отнять репутацию

    По умолчанию

    мм, не понял, что ты делаешь для замедления времени, но чтобы замедлить время нужно увеличить продолжительность секунды "secondLength", секунды все равно будут считаться до 60, но скорость этого отсчета зависит именно от этого значения. При значении в 1000, это будет чуть медленнее реальной секунды, в общем играйся с этим значением.
    Протестил у себя в проекте - все работает.
    Последний раз редактировалось dirge; 15.11.2017 в 12:58.

  5. #65
    Пользователь Аватар для AntiGM
    Информация о пользователе
    Регистрация
    04.11.2014
    Сообщений
    49
    Репутация: 1 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от dirge Посмотреть сообщение
    мм, не понял, что ты делаешь для замедления времени, но чтобы замедлить время нужно увеличить продолжительность секунды "secondLength", секунды все равно будут считаться до 60, но скорость этого отсчета зависит именно от этого значения. При значении в 1000, это будет чуть медленнее реальной секунды, в общем играйся с этим значением.
    Протестил у себя в проекте - все работает.
    Спс за ответ, я разобрался на следующий день. Проблема была в "OrangeHudClock" скорость течения времени изменялась, но плагин работал неверно и не отображал изменения. Я просто не догадался что этот плагин требовал ядро Орандж Худ, да и в плагине об этом ни слова не было написано. После установки ядра для худов всё стало работать корректно.

Страница 7 из 7 ПерваяПервая ... 567

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •