Перейти к содержанию
  • Добавить действие Медленно передвинуть относительно ОСЕЙ указанного предмета


    нужно создать отдельное действие которое бы позволило мне добавить в библиотеку шаблон лифта с управлением по этажам в библиотеку, на основе которого игроки бы смогли делать что-то свое, т.к. создание таких лифтов сложноватая задача, и хуже того привязанная к конкретной карте, на другой все придется делать заново.

     

    Условия:

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

     

     


    Обратная связь

    Рекомендуемые комментарии



    Electr0

    Опубликовано

    возможно нужно где-то хранить карту относительности позиций предметов друг от друга, адресность предметов обеспечивается тем что у каждого предмета свой UUID это ок, а вот остальное..

    Electr0

    Опубликовано

    так как мы не будем задавать заранее на какое значение оси карты доставить предмет, нужно перед запуском действия передвижения предмета на нужный этаж произвести расчеты и записать расчитанное ЦЕЛЕВОЕ значение оси карты во временный кеш действий кнопки.

     

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

    Electr0

    Опубликовано

    что если.. в действии заставить игрока прописать на какой этаж должен поднятся проп относительно кнопки этажа и какое расстояние между этажами. А дальше.. имея закон одинакового расстояния между этажами мы можем всегда расчитать где окажется предмет. Однако этажные кнопки приказов должны быть как-то обозначены. В таком случае обязательным правилом будет расстановка всех этажных кнопок на каждом этаже и на одинаковой высоте.

     

    Смоделируем.. лифт находится на 4 этаже, вызвали лифт на 2 этаж, в таком случае система зная что мы нажали кнопку приказа второго этажа узнает координату кнопки вызова расположенной на нужном этаже и дальше уже прибавит к координате заданное смещение и тем самым получит координату оси на карте до значения которой нужно довести проп.

    Electr0

    Опубликовано

    6 минут назад, Electr0 сказал:

    что если.. в действии заставить игрока прописать на какой этаж должен поднятся проп относительно кнопки этажа и какое расстояние между этажами. А дальше.. имея закон одинакового расстояния между этажами мы можем всегда расчитать где окажется предмет. Однако этажные кнопки приказов должны быть как-то обозначены. В таком случае обязательным правилом будет расстановка всех этажных кнопок на каждом этаже и на одинаковой высоте.

     

    Смоделируем.. лифт находится на 4 этаже, вызвали лифт на 2 этаж, в таком случае система зная что мы нажали кнопку приказа второго этажа узнает координату кнопки вызова расположенной на нужном этаже и дальше уже прибавит к координате заданное смещение и тем самым получит координату оси на карте до значения которой нужно довести проп.

    в таком случае нужно подумать что делать с этажными кнопками приказов которые ездят в кабине лифта. Нужно тогда как-то помечать что кнопка запустившая действие не является кнопкой расположенной на этаже действия.

    Electr0

    Опубликовано

    возможно лучше сделать иначе.. Добавляя действие доставки пропа на нужный этаж игрок указывает кнопку вызова лифта расположенную на целевом этаже, и указывает смещение по высоте относительно указанной кнопки. Допустим выбрал кнопку на первом этаже и указал что проп должен быть доставлен на +50 юнитов относительно ее позиции по оси Z в таком случае сервер просто найдет кнопку с указанным UUID на сервере и узнав ее позицию и позицию предмета узнает сколько шагов нужно и прочее. В таком случае не придется указывать этажи и расстояние между этажами, т.к. мы и так знаем относительно какого пропа и насколько нужно доставить предмет.

     

    Из минусов при обновлении UUID в кеше кнопки придется дополнительно залазить в действие и менять UUID и там тоже. 

    Electr0

    Опубликовано

    нужно не забыть добавить в UUID Refresh функции перед сохранение слота что у нас теперь есть действие которое содержит в себе UUID предмета который тоже надо обновить в случае смены идов.

    Electr0

    Опубликовано

    нужно будет добавить зеленую подсветку для предмета который является предметом относительно которого происходит движение предмета действия (красная подсветка)

    Electr0

    Опубликовано

    прототип 0:

    • уже способен переносить туда сюда предметы если ему указать высоту относительно предмета который выбран предметом относительности действия.

     

    что не работает:

    5 часов назад, Electr0 сказал:

    нужно не забыть добавить в UUID Refresh функции перед сохранение слота что у нас теперь есть действие которое содержит в себе UUID предмета который тоже надо обновить в случае смены идов.

     

    из-за этого пока что нельзя сохранять т.к. собьется предмет относительности действия.

     

    так же наблюдается превышения буфера текста меню т.к. название нового действия опять же очень длинное.

     

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

     

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

     

    Electr0

    Опубликовано

    прототип 1:

     

    исправлено:

    • название меню выбора предмета относительности такое же как у выбора предмета действия
    • меню выбора предмета относительности при нажатии назад возвращает на настройку кнопки, а должно на выбор действия для предмета.
    • фикс остатка подсветки предмета при закрытии меню добавления действия. (это характерно и для стройки до версии 2.5.9.6)
    • исправлено отключение подсветки предмета действия после перехода к выбору предмета относительности.

     

    осталось:

    • нельзя сохранять т.к. собьется предмет относительности действия, из-за неадаптированного рефрешера UUID
    • есть превышения буфера текста меню т.к. название нового действия опять же очень длинное. (похоже что просто так не полечить)
    • нужно произвести диагностику предиктивной проверки для выявления есть ли проблемы или нет.
    Electr0

    Опубликовано

    прототип 2:

     

    • теперь можно сохранять постройки с новым типом действия предметов.
    • диагностика предиктивной проверки проведена проблем нет.
    • есть превышения буфера текста меню т.к. название нового действия опять же очень длинное. (похоже что просто так не полечить)
    • проверить как сохраняется это все из библиотеки и в библиотеку.
    Electr0

    Опубликовано

    Значение Статус изменено на: Закрытое тестирование

    Electr0

    Опубликовано

    В рамках теста переведу свой лифт м7 на шаблонный вариант на новом действии.

    Electr0

    Опубликовано

    прототип 3:

     

    осталось:

    • Нужно запретить указывать относительным предмет самого действия
    Electr0

    Опубликовано

    Смещения относительно позиции кнопки на этаже в моем лифте:

    • Стена с кнопками: 16.5
    • Пол: -51.7
    • Потолок: 76.2
    • Кнопки: 0.0

     

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

    Electr0

    Опубликовано

    Лифт М8 Этажник 2020 создан, отлично работает из шаблонов.

    Electr0

    Опубликовано

    прототип 3:

     

    исправлено: Нужно запретить указывать относительным предмет самого действия

    Electr0

    Опубликовано

    @Clarus @Marysan нужно запланировать турпоход на тест сервер для выявления проблем

    Electr0

    Опубликовано

    прошел первый закрытый тест пока что не выявили проблем. нужны еще тесты.

    Electr0

    Опубликовано

    Значение Статус изменено на: В обработке

    Electr0

    Опубликовано

    нужно сделать расчет будущей позиции предмета на карте исходя из направления осей предмета относительности вместо текущих значений координат. таким образом действие можно будет применить логичным образом и для направлений по осям X и Y 

    Electr0

    Опубликовано

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

    Electr0

    Опубликовано

    пока голова еще работает, я думаю что можно перед стартом действия сделать расчет где окажется целевая позиция, записываем координату X Y Z куда надо поставить проп по окончанию действия, после чего мы стремимся направить туда предмет уже не по одной оси а по всем трем.

    Electr0

    Опубликовано

    нужно будет переделать всю логику заточенную на достижение цели по одной оси на три оси.

    Electr0

    Опубликовано

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

     

    в случае же с этим нужно достичь конкретную точку из любого положения. 




    Присоединяйтесь к обсуждению

    Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

    Гость
    К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
    Добавить комментарий...

    ×   Вставлено с форматированием.   Вставить как обычный текст

      Разрешено использовать не более 75 эмодзи.

    ×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

    ×   Ваш предыдущий контент был восстановлен.   Очистить редактор

    ×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Обозначения статусов

    В обработке = Мы работаем над вашим отзывом.

    Будет сделано = Ваша идея добавлена к плану будущих изменений.

    Тестируется = Изменения внесены, но требуют тестирования.

    Сделано = Ваша идея реализована!

    Отклонено = Отзыв некорректный, бред, либо уже реализовано. Если у вас есть дополнительная информация напишите комментарий и мы снова откроем этот вопрос.

×
×
  • Создать...