Перейти к публикации
  • функция "Захватить/Отпустить для всех объектов слота"


    3LoU_BaNaN
    • Отклонено

    Прошу реализовать функцию захвата для всех объектов в пределах слота. Т.е. при наведении на объект переносится не только сам выбранный объект, но и все остальные объекты, которые в ходят в этот сохраняемый слот. Это нужно в главную очередь для переноса убеги в целом с одного места на другое. На то есть несколько причин:

    •  Постройка находится в неудачном месте или там где потенциальных зомби мало или их тяжело отстреливать
    •  Иногда бывает, что на одном месте могут быть сохранены по 2-3 и более убег, в таком случае да бы избежать конфликтов, функция будет полезна путем переноса убег которые соприкасаются.
    •  Иногда убеги строят в плотную к границам карт, в таком случае некоторые объекты (особенно если это сохраняемые вещи) могут быть случайно помещены за границу карты, откуда их недостать, если игрок незаметив этого сохранил такие объекты, то он уже не может все отменит. Благодаря этой функции он сможет вернуть объекты на игровую зону, без просьбы на форуме про откат убежища.

     

    Важно: во избежания гриферства предоставлять данную функцию только для "своих" объектов, т.е. другие игроки смогли бы переносить чьи-то убеги.

     

    Если функция понравиться, в таком случае для удобства пользования желательно:

    1.  В разделе "Управление" создать категорию "Захватить/Отпустить"
    2.  В категорию  поместить пункты "Захват/Отпустить одного объекта" (функция которая сейчас есть, просто добавить уточнение, чтоб не возникало вопросов) и "Захватить/Отпустить объекты слота" (при наведении на один из объектов слота захватываются все объекты слота)

     

    Как-то так ;)


    Отзывы пользователей

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

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

     

    реализовывать ЭТО через захват я не буду, нагрузка на сервер нереальная если каждую секунду 30 раз передвигать (сюда входит расчет на один шаг вперед чтобы исключить попадание каждого предмета из группы в запретную зону или не правильную локацию), и второй момент есть проблема с векторным расчетом поворотов углов, для группы предметов я пока не умею делать поворот с сохранением целостности (относительность углов друг от друга). если визуализировать то кол-во трассирующих лучей в этим моменты то это просто хаос на весь экран)

    Ссылка на комментарий
    Поделиться на других сайтах

    Ну да, перемещать большие группы объектов из конкретного слота или после пометки можно включив в настройках первый пункт, тут Electr0 прав. Там неудобство только в невозможности поворота всех объектов вокруг одной точки, они каждый вокруг своей оси вращаются. А так все три причины решаются пометкой и переносом, просто менее удобно и более долго, но на то есть технические причины (даже если был бы осуществлён правильный поворот, это ещё сильнее бы увеличило нагрузку).

    Ссылка на комментарий
    Поделиться на других сайтах

    3 минуты назад, KOllapsE сказал:

    Ну да, перемещать большие группы объектов из конкретного слота или после пометки можно включив в настройках первый пункт, тут Electr0 прав. Там неудобство только в невозможности поворота всех объектов вокруг одной точки, они каждый вокруг своей оси вращаются. А так все три причины решаются пометкой и переносом, просто менее удобно и более долго, но на то есть технические причины (даже если был бы осуществлён правильный поворот, это ещё сильнее бы увеличило нагрузку).

    я пытался реализовать но не получается, объекты разлетаются друг от друга, хз если кто бы предоставил формулу

    Ссылка на комментарий
    Поделиться на других сайтах

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

    я пытался реализовать но не получается, объекты разлетаются друг от друга, хз если кто бы предоставил формулу

    У меня есть идея, как это реализовать, и я могу графически пошагово это показать, чтобы было удобнее понимать и работать. Но она основана на том же принципе "нулевых" точек, что я описывал в теме про модификацию "Захватить/Отпустить" для быстрого и ровного соединения объектов типа параллелепипеда:

    В 5 июня 2016 г. в 00:25, KOllapsE сказал:

    Думал, как осуществить всё в точности как на видео и решил, что пока лучше остановиться на полуавтоматическом варианте, где меньше расходуются ресурсы сервера, меньше комфорта для игрока, но больше контроля над объектом.

    Игрок захватывает объект, нажав цифру 4 (пункт «Захватить/Отпустить» в «Управление»).

    Открывается следующее окно меню, где 4 пункт – «Отпустить», при нажатии на который происходит отпускание объекта и возвращение в предыдущее меню (по сути, останется старый способ). Игрок смотрит на другой объект и помечает его нажатием на 1 – «Пристроить» (кнопки 2 и 3 можно оставить пустыми). Тот объект помечается, дальше идёт работа только с двумя объектами. Для каждого из них рассчитывается ближайшая (из восьми крайних точек объекта в пространстве) к нулевым координатам карты точка (т.е. расчёт и сравнение длин отрезков, все данные имеются). «Нулевая» точка захваченного объекта совмещается с «нулевой» точкой второго объекта.(он весь перемещается с сохранением углов)

    Открывается следующее окно меню с пунктами 1 - «Вдоль +Х», 2 – «Вдоль –Х» и т.п. для других осей. Допустим, выберем 1. Берётся грань второй модели, выходящая из её «нулевой» точки и параллельная оси Х этой модели. Это будет вектор а. Три грани, выходящие из «нулевой» точки ранее захваченной модели, составят векторы x, y, z. Теперь определим, какая из них ближе всего наклонена к а. Длины x, y, z меняем на длину а, сохранив их углы. Вычитая из а поочерёдно x, y, z, а потом находя длину векторов разности, узнаем наименьший результат. Он укажет на вектор, соответствующую которому грань надо выровнять с осью Х второй модели, сохранив при этом совмещение «нулевых» точек двух моделей. После этого нулевую точку ранее захваченной модели надо переместить вдоль оси Х второй модели на расстояние, соответствующее длине грани второй модели вдоль её оси Х. Если бы был выбран пункт 2 – «Вдоль –Х», то надо было бы переместить нулевую точку захваченной ранее модели на расстояние, соответствующее вектору из позапрошлого предложения вниз вдоль оси Х второй модели.

    Вот такой «зародыш» у меня пока получился. Наверняка что-то можно сделать проще, используя приёмы кодирования, но я тут ни бум-бум.
     

                    Если идея про "нулевые" точки не бред в плане осуществления и не будет шибко грузить сервер, то, используя их, можно производить массовые повороты с сохранением положения осей объектов друг относительно друга. Получится, что предложение от 3LoU_BaNaN про удобное перемещение убежищ будет осуществлено, только работать будет через функцию пометки, для которой не надо будет по 30 раз в секунду пересчитывать всё. Менее удобно, конечно, но всё же.
     

    Ссылка на комментарий
    Поделиться на других сайтах

    4 часа назад, KOllapsE сказал:

    У меня есть идея, как это реализовать, и я могу графически пошагово это показать, чтобы было удобнее понимать и работать. Но она основана на том же принципе "нулевых" точек, что я описывал в теме про модификацию "Захватить/Отпустить" для быстрого и ровного соединения объектов типа параллелепипеда:

     

                    Если идея про "нулевые" точки не бред в плане осуществления и не будет шибко грузить сервер, то, используя их, можно производить массовые повороты с сохранением положения осей объектов друг относительно друга. Получится, что предложение от 3LoU_BaNaN про удобное перемещение убежищ будет осуществлено, только работать будет через функцию пометки, для которой не надо будет по 30 раз в секунду пересчитывать всё. Менее удобно, конечно, но всё же.
     

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

    Ссылка на комментарий
    Поделиться на других сайтах

    1 час назад, Electr0 сказал:

    Это один из методов того как строить вроде, а мы говорим о том как сохранить целостность при массовых поворотах

    Я хочу узнать от тебя о том, насколько сложно будет написать код для расчёта этих "нулевых" точек предметов и будет ли такой расчёт сильно грузить сервер. Если всё ок, то я опишу принцип, по которому можно производить повороты структур из нескольких объектов + могу сделать картинки для наглядности.

     

    В общем, сможешь ли ты сделать такое:


     

    Для каждого из них рассчитывается ближайшая (из восьми крайних точек объекта в пространстве) к нулевым координатам карты точка (т.е. расчёт и сравнение длин отрезков, все данные имеются). «Нулевая» точка захваченного объекта совмещается с «нулевой» точкой второго объекта.(он весь перемещается с сохранением своих прежних углов)


     

     

    Если да, то, используя ещё немного тригонометрии вдобавок, можно будет запилить

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

     поворот с сохранением целостности (относительность углов друг от друга)


     

    Ссылка на комментарий
    Поделиться на других сайтах

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

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

    Ну да, это проблема. Ладно, я картинки  сделаю, может понятно будет как работает.
     

    Ссылка на комментарий
    Поделиться на других сайтах

    Это не говорит мне на каком принципе это можно сделать), без разницы сложно это или нет, мне просто нужен способ хотя-бы из математики чтоб понять как сохранить относительную позицию и углы друг от друга но при этом повернуть эту группу в пространстве

    Ссылка на комментарий
    Поделиться на других сайтах

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

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

    Ок, напишу-нарисую и скину сюда
     

    Ссылка на комментарий
    Поделиться на других сайтах



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

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

    Гость
    Добавить комментарий...

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

      Разрешено не более 75 эмодзи.

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

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

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


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

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

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

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

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

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

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